一.数据类型
数字
int(整型)
在64位系统上,整数的位数为64位,取值范围为-2^63~2^62,即-9223372036854775808~9223372036854775807
long(长整型)
Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。在Python3里不再有long类型了,全都是int
float (浮点型)
即小数
>>>age=21 >>print(type(age)) #type()是查看数据类型的方法 <class 'int'> >>>height=166.6 >>>print(type(height)) <class 'float'>
字符串
在Python中,加了引号的字符都被认为是字符串!
>>> name = "砆石自琢" #双引号 >>> msg ='''My name is 砆石自琢, I am 21 years old!''' # 3个单引号 >>> hometown = 'liuzhou' #单引号
多行字符串必须用多引号
字符串特性:
1.按照从左到右的顺序定义字符集合,下标从0开始顺序访问,有序
2.可以进行切片操作
3.不可变,字符串是不可变的,不能像列表一样修改其中某个元素,所有对字符串的修改操作其实都是相当于生成了一份新数据。
字符串的使用(参考https://www.cnblogs.com/A-FM/p/5691468.html)
1.转移字符
2.字符串运算符
3.字符串格式化
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
>>> info = ''' ------------ info of %s ----------- Name : %s #代表 name Age : %s #代表 age hometown : %s #代表 hometown ------------- end ----------------- ''' % ("砆石自琢","砆石自琢", "21", "liuzhou") >>> print(info) ------------ info of 砆石自琢 ----------- Name : 砆石自琢 #代表 name Age : 21 #代表 age hometown : liuzhou #代表 hometown ------------- end -----------------
str.format()通过 {} 和 : 来代替以前的 %
>>> info = ''' ------------ info of{} ----------- Name :{} #代表 name Age :{} #代表 age hometown :{} #代表 hometown ------------- end ----------------- '''.format("砆石自琢","砆石自琢", "21", "liuzhou") >>> print(info) ------------ info of砆石自琢 ----------- Name :砆石自琢 #代表 name Age :21 #代表 age hometown :liuzhou #代表 hometown ------------- end -----------------
4.字符串内建函数
方法 | 描述 |
---|---|
string.capitalize() |
把字符串的第一个字符大写 |
string.center(width) |
返回一个原字符串居中,并使用空格填充至长度 width 的新字符串 |
string.count(str, beg=0, end=len(string)) |
返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 |
string.decode(encoding='UTF-8', errors='strict') |
以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除 非 errors 指 定 的 是 'ignore' 或 者'replace' |
string.encode(encoding='UTF-8', errors='strict') |
以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace' |
string.endswith(obj, beg=0, end=len(string)) |
检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False. |
string.expandtabs(tabsize=8) |
把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。 |
string.find(str, beg=0, end=len(string)) |
检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1 |
string.index(str, beg=0, end=len(string)) |
跟find()方法一样,只不过如果str不在 string中会报一个异常. |
string.isalnum() |
如果 string 至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False |
string.isalpha() |
如果 string 至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False |
string.isdecimal() |
如果 string 只包含十进制数字则返回 True 否则返回 False. |
string.isdigit() |
如果 string 只包含数字则返回 True 否则返回 False. |
string.islower() |
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False |
string.isnumeric() |
如果 string 中只包含数字字符,则返回 True,否则返回 False |
string.isspace() |
如果 string 中只包含空格,则返回 True,否则返回 False. |
string.istitle() |
如果 string 是标题化的(见 title())则返回 True,否则返回 False |
string.isupper() |
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False |
string.join(seq) |
以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 |
string.ljust(width) |
返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串 |
string.lower() |
转换 string 中所有大写字符为小写. |
string.lstrip() |
截掉 string 左边的空格 |
string.maketrans(intab, outtab]) |
maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。 |
max(str) |
返回字符串 str 中最大的字母。 |
min(str) |
返回字符串 str 中最小的字母。 |
string.partition(str) |
有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string. |
string.replace(str1, str2, num=string.count(str1)) |
把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次. |
string.rfind(str, beg=0,end=len(string) ) |
类似于 find()函数,不过是从右边开始查找. |
string.rindex( str, beg=0,end=len(string)) |
类似于 index(),不过是从右边开始. |
string.rjust(width) |
返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串 |
string.rpartition(str) |
类似于 partition()函数,不过是从右边开始查找. |
string.rstrip() |
删除 string 字符串末尾的空格. |
string.split(str="", num=string.count(str)) |
以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串 |
string.splitlines(num=string.count('\n')) |
按照行分隔,返回一个包含各行作为元素的列表,如果 num 指定则仅切片 num 个行. |
string.startswith(obj, beg=0,end=len(string)) |
检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查. |
string.strip([obj]) |
在 string 上执行 lstrip()和 rstrip() |
string.swapcase() |
翻转 string 中的大小写 |
string.title() |
返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) |
string.translate(str, del="") |
根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 del 参数中 |
string.upper() |
转换 string 中的小写字母为大写 |
string.zfill(width) |
返回长度为 width 的字符串,原字符串 string 右对齐,前面填充0 |
string.isdecimal() |
isdecimal()方法检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。 |
字符串拼接
>>> print(name+hometown)
砆石自琢liuzhou
>>> print(name*10)
砆石自琢砆石自琢砆石自琢砆石自琢砆石自琢砆石自琢砆石自琢砆石自琢砆石自琢砆石自琢
字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接
字符串转成数字
>>> age = int("21")
数字转成字符串
>>> age = str(21)
布尔类型
两个值 , True(真), False(假), 主要用记逻辑判断
二.注释
代码注释分单行和多行注释, 单行注释用#,多行注释可以用三对双引号“”” “””
批量注释与取消:Ctrl+/键
>>> #and"""""" >>> """name='砆石自琢' age=22 print(name) print(age)"""
代码注释原则:
1.不用给全部代码加注释,只需要在自己觉得重要或不好理解的部分加注释即可
2.注释可以用中文或英文,但绝对不要拼音
3.注释不光要给自己看,还要给别人看,所以请认真写