python学习—-基本数据类型

内置数据类型与标准库数据类型唯一的区别在于,对于后者,我们必须首先导入相关的模块,并且必须使用模块名对数据类型名进行限定。

Python中的标识符与关键字

我们学习每一种编程语言,都是从最开始的标识符(还有传说中的Hello World),关键字开始的,学习Python也不例外。

Python标识符必须符合三条规则:

  1. 1.标识符区分大小写,只要是Unicode编码的字母就好了。其实这种问题,在实际编程过程中不会有问题的;
  2. 2.Python标识符不能与Python关键字同名;
  3. 3.关于下划线(_)的使用,名的开头和结尾都使用下划线的情况(_)应该避免使用;在Python内部定义了各种特殊方法和变量,使用的就是这样的名称;

Integral类型

Python提供了两种内置的Integral类型:int和bool。

布尔表达式

0与False表示False,其它任意整数与True都表示True。在数字表示中,True表示1,False表示0;

整数

默认是十进制的;二进制数以0b引导,八进制以0o引导,十六进制数以0x引导。

浮点类型

Python提供了3种浮点值:内置的float与complex类型,以及来自标准库的decimal.Decimal类型,这3种数据类型都是固定。如果我们确实需要高精度,那么可以使用来自decimal模块的decimal.Decimal类型。

浮点数

导入sys模块,sys.float_info对象有许多浮点类型的属性。

复数

复数这种数据类型是固定的,其中存放的是一对浮点数,一个表示实数部分,另一个表示虚数部分。

Decimal类型

要创建Decimal类型,必须先导入decimal模块。十进制数使用decimal.Decimal()函数创建的,该函数可以接受一个整数或字符串作为参数;

字符串

字符串是使用固定不变的str数据类型表示的,其中存放Unicode字符序列。str数据类型可以作为函数进行调用,用于创建字符串对象—-参数为空时返回一个空字符,参数为非空字符串类型时返回该参数的字符串形式,参数为字符串时返回该字符串的拷贝。str()函数也可以用作一个转换函数。
使用r修饰的字符串,在这种字符串内部,所有字符都按其字面意义解释,因此不再需要进行转义。
字符串很长,包含多行,不使用三引号包含的字符串,有两种方法:

  1. 1.t = “i love you” + \
    “i love you, baby.”.
  2. 2.s = (“i love you”
    “together; i love you.”).

由于.py文件默认使用UTF-8 Unicode编码。
内置函数ord()将字符转换成Unicode编码中某个字符的整数值。
内置函数chr()将Unicode编码中某个字符的整数值转换成Unicode编码。

字符换比较

支持<,<=,==,!=,>与>=

字符串分步与步距

可以使用[]来存取操作字符串中的单个字符。
负索引是很有用的,尤其是-1,这个值总是代表字符串的最后一个字符。
提取分片:
seq[start]
seq[start:end]
seq[start:end:step]
seq可以是任意序列,比如列表,字符串或元组。
在涉及很多字符串时,使用+进行连接、使用+=进行追加等操作并不是特别高效,如果需要连接大量的字符串,通常最好使用str.join()方法。

字符串操作符与方法

字符串是固定序列,所有用于固定序列的功能都可用于字符串,包括使用in进行成员关系测试。

使用len()返回字符串中的字符数

join()方法以一个序列作为参数(字符串列表或字符串元组),并将其连接在一起存放在一个单独的字符串中。

[python]  view plain  copy
 print ?
  1. >>> test = ["jelly""think""|""思想的果冻""www.jellythink.com"]  
  2. >>> " ".join(test)  
  3. 'jelly think | 思想的果冻 www.jellythink.com'  

join()方法也可以与内置的reversed()函数一起使用,以实现对字符串的反转。但是,通过步距也可以更精确地获取同样的结果,比如:s[::-1]

‘*’操作符提供了字符串复制功能

在用于字符串时,如果成员关系操作符in左边的字符串参数是右边字符串参数的一部分,或者相等,就返回True。

[python]  view plain  copy
 print ?
  1. >>>test = "JellyThink"  
  2. >>>"Jelly" in test  
  3. True  

str.index和str.find

如果需要在某个字符串中找到另一个字符串所在的位置,有两种方法:

  1. 使用str.index()方法。返回子字符串的索引位置,或者在失败时产生一个ValueError异常;
  2. 使用str.find()方法。该字符串返回字符串的索引位置,或者在失败时返回-1;

这两个函数都有两个可选参数,指定开始位置和结束位置。

strip

strip()可以剥离两边的空白字符,有lstrip()和rstrip()。可以使用一个字符串作为参数来调用剥离方法,这样参数中出现的每个对应字符都会被消除。

replace

str.replace()方法来在字符串内进行替换,这一方法以两个字符串作为参数,并返回该字符串的副本(其中第一个字符串的所有出现都被第二个字符串所替换)。

split

分割字符串使用str.split()方法。并以待分割的字符串作为第一个参数,以要分割的最大子数据段数为可选的第二个参数。

使用str.format()方法进行字符串格式化

str.format()方法会返回一个新字符串,在新字符串中,原字符串的替换字段被适当格式化后的参数所替代。
每个替换字段都是由包含在花括号中的字段名标识的。如果字段名是简单的整数,就将被作为传递给str.format()方法的一个参数的索引位置。因此,在这种情况下,名为0的字段被第一个参数所代替,名为1的字段则被第二个参数所代替。
如果试图连接字符串与数字,那么python将产生TypeError异常,但是使用str.format()方法可以很容易地做到这一点。

[python]  view plain  copy
 print ?
  1. >>>"{who} turned {age} this year".format(who="she", age=88)  
  2. 'she turned 88 this year'  
  3. >>>"The {who} was {0} last week".format(12, who="boy")  
  4. 'The boy was 12 last week'  

字段名可以引用集合数据类型,比如,列表;在这种的情况下,我们可以包含一个索引来标识的数据项。

[python]  view plain  copy
 print ?
  1. >>>stock = ["paper""envelopes""notepads""pens"]  
  2. >>>"we have {0[1]} and {0[2]} in stock".format(stock)  
  3. 'we have envelopes and notepads in stock'  

Python字典中存储的key-value项,也可以用于str.format()方法。

其它知识补充

字符编码

与UTF-8不同的是,UTF-16文本应该以一个字节顺序标记开始,以便用于读取该文本的代码可以判定字节对是big-endian还是little-endian.
str.encode()方法可以返回一个字节序列——实际上是一个bytes对象。使用这一方法,可以更好地理解不同编码格式之间的差别。
对于str.encode()方法,还有两点值得注意。第一个参数(编码名称)是大小写不敏感的,第二个参数指定错误处理方式,如果为”ignore”,”replace”,那么可以将任何字符串编码为ASCII格式。
str.encode()方法的对应方法是bytes.decode()或者bytearray.decode(),该方法将返回一个字符串,其中使用给定的编码格式对字节进行解码。
在Python中,至少有两个Python包可用于检测文件的编码格式。

csv处理

Python有一个强大的csv处理模块。

猜你喜欢

转载自blog.csdn.net/angel69devil/article/details/52583174