第三章 数据类型之整型、布尔、字符串
-
整型的长度
py2中有:int/long
-
在32位机器上,整数的位数为32位,取值范围为-231~231-1,即-2147483648~2147483647
-
在64位系统上,整数的位数为64位,取值范围为-263~263-1,即-9223372036854775808~9223372036854775807
-
超出长度之后就会变为long类型。
py3中有:int (int/long)
-
-
整除
py2和py3中整除是不一样。
注意:在python2中使用除法时,只能保留整数位,如果想要保留小数位,可以先导入一个模块。
from __future__ import division
value = 3/2
print(value)
3.2 布尔(bool)
-
布尔值就是用于表示真假。true和false。
-
其他类型转换成布尔值为false:
-
0
-
""
-
[]
-
()
-
{}
-
set()
-
none
-
-
其他类型转换成布尔值为false:
-
除了以上其他转换都是true
-
3.3 字符串(str)
字符串是写代码中最常见的,python内存中的字符串是按照:unicode 编码存储。对于字符串是不可变。
字符串自己有很多方法,如:
-
upper() #全部大写 isupper() #
v = 'alex' v1 = v.upper() print(v1) v2 = v.isupper() # 判断是否全部是大写 print(v2)
-
小写:lower
v = 'alex' v1 = v.lower() print(v1) v2 = v.islower() # 判断是否全部是小写 print(v2) ############ 了解即可 v = 'ß' # 将字符串变小写(更牛逼) v1 = v.casefold() print(v1) # ss v2 = v.lower() print(v2)
-
判断是否是数字: isdecimal
v = '1' # v = '二' # v = '②' v1 = v.isdigit() # '1'-> true; '二'-> false; '②' --> true v2 = v.isdecimal() # '1'-> true; '二'-> false; '②' --> false v3 = v.isnumeric() # '1'-> true; '二'-> true; '②' --> true print(v1,v2,v3) # 以后推荐用 isdecimal 判断是否是 10进制的数。 # ############## 应用 ############## v = ['alex','eric','tony'] for i in v: print(i) num = input('请输入序号:') if num.isdecimal(): num = int(num) print(v[num]) else: print('你输入的不是数字')
-
strip() #去除两边空格 +\t+\n + 指定字符串
.lstrip() #去除左边空格
.rstrip()#去除右边空格
v1 = "alex " print(v1.strip()) v2 = "alex\t" print(v2.strip()) v3 = "alex\n" print(v3.strip()) v1 = "alexa" print(v1.strip('al'))
-
replace("被替换的字符/子序列","要替换为的内容") .
replace("被替换的字符/子序列","要替换为的内容",几次).
# 示例一 a = "abc23" b = a.replace("ab","12") print(b) # 12c23 # 示例二 a = "abc23abab" b = a.replace("ab","12",2) print(b) # 12c2312ab
-
split('根据什么东西进行分割') #从左往右分割
split('根据什么东西进行分割', 几次) #从左往右分割
rsplit('根据什么东西进行分割') #从右往左分割
rsplit('根据什么东西进行分割', 几次) #从右往左分割
partition('3') # 将指定字符串分为三分:前面,自己,后面
# 示例一 a = "abc23abab" b = a.split("b") print(b) #['a', 'c23a', 'a', ''] # 示例二 a = "abc23abab" b = a.split("b",2) print(b) # ['a', 'c23a', 'ab'] # 示例三 a = "abc23abab" b = a.rsplit("b") print(b) # ['a', 'c23a', 'a', ''] # 示例三 a = "abc23abab" b = a.rsplit("b",2) print(b) # ['abc23a', 'a', ''] v1 = v.partition('3') # 将指定字符串分为三分:前面,自己,后面 print(v1)
-
startswith() # 判断是否以什么开头
endswith() #判断是否以什么结尾
# 示例一 a = "abc23abab" b = a.startswith("a") print(b) # true # 示例二 a = "abc23abab" b = a.endswith("b") print(b) # true
-
encode() # 指定的编码格式编码字符串
name = '李杰' # 解释器读取到内存后,按照unicode编码存储:8个字节。 v1 = name.encode('utf-8') print(v1) v2 = name.encode('gbk') # b'\xe6\x9d\x8e\xe6\x9d\xb0' b为字节 print(v2) # b'\xc0\xee\xbd\xdc'
-
format format_map # 字符串格式化的功能。
基本语法是通过 {} 和 : 来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序。
a = "{} {}".format("hello", "world") # 不设置指定位置,按默认顺序 print(a) # 'hello world' a = "{0} {1}".format("hello", "world") # 设置指定位置 print(a) # 'hello world' a = "{1} {0} {1}".format("hello", "world") # 设置指定位置 print(a) # 'world hello world' v= '我是{0},谢谢谢 {1}'.format('alex',19) print(v) v= '我是{x1},谢谢谢 {xx}'.format_map({'x1':'alex','xx':19}) print(v) # v1 = "我是{0},年龄{1}".format('alex',19) v1 = "我是{0},年龄{1}".format(*('alex',19,)) print(v1) # v2 = "我是{name},年龄{age}".format(name='alex',age=18) v2 = "我是{name},年龄{age}".format(**{'name':'alex','age':18}) print(v2)
-
join() # 将序列中的元素以指定的字符连接生成一个新的字符串。
name = 'abcd' # a_b_c_d result = "+".join(name) # 循环每个元素,并在元素和元素之间加入连接符。 print(result) # a+b+c+d
-
center() 该方法返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。
str = 'runoob' str.center(20, '*') '*******runoob*******' str.center(20) ' runoob '
-
rjust() 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。
str = "this is string example....wow!!!" print (str.rjust(50, '*')) # ******************this is string example....wow!!!
-
count 计算子序列出现的次数
v = 'aealeax' v1 = v.count('ea') print(v1)
-
find,找索引位置(从左到右找到第一个),存在则返回索引位置,不存在则返回 -1 index, 找索引位置(从左到右找到第一个),存在则返回索引位置,不存报错
v = 'alexex' index = v.find('u') print(index
上一篇: 因为调皮