一.基本的数据类型;
①.int ==> 整数.
②.str ==> 字符串,可以保存少量的数据.
③.bool ==> 布尔值,判断真假,用True,False表示.
④.list ==> 列表,可以存储大量数据,用[]表示.
⑤.tuple ==> 元组,只读列表,不发生改变,用()表示.
⑥dict ==> 字典,保存键值对,可以存储大量数据.
⑦.set ==> 集合,保存大量数据,不可以重复
二.整数 int()
bit_length().返回一个二进制数的长度(就是将数字变成二进制数,然后计算数的长度.)
三.布尔值 bool()
取值只有True,False.
转换问题:想把xx转换成yy ==> yy(xx)
str => int int(str)
int => str str(int)
int => bool bool(int) 0是False,非0是True
bool => int int(bool) True是1,False是0
str => bool bool(str) 空字符串是False,不空是True
bool => str str(bool) 把bool的只转换成相应的"值"
注意:可以表示False的有:0,"",[],tuple(),{},None.所有的空为False,非空为True.
四.字符串 str()类型;
把字符连城串,由',",''',"""括起来的内容称为字符串.
字符串是不可改变的数据类型,无论怎么操作,源字符串都不会发生改变,每次操作都会返回新的字符串.
1.索引与切片;
㈠索引:从0开始,使用[下标]可以获取到每一个字符,还可以倒着数.
例;
list = "像我这样好看的人少之又少" print(list[0]) print(list[1]) print(list[11]) print(list[-1]) #-1表示从后向前数 print(list[-5]) 结果: 像 我 少 少 人 Process finished with exit code 0
注意;索引不能超过边界,否则报错
㈡切片;可以使用[下标]来截取部分字符串的内容
语法;str[start:end]
规则;从左往右,顾头不顾尾-从start开始截取,截取到end,但又不包括end.
例1;
list = "婚姻是一座围城城外的人想进去城里的人想出来" # print(list[1:5]) #从1切到5,但是不包括5 # print(list[1:]) #从1开始切,切到尾 # print(list[:9]) #从头开始切,切到9 # print(list[:]) #从头到尾,原样输出 # # print(list[-1:-3]) #从-1到-3没有结果,从左往右 结果; 姻是一座 姻是一座围城城外的人想进去城里的人想出来 婚姻是一座围城城外 婚姻是一座围城城外的人想进去城里的人想出来
例2;
list1 = "一二三四五六七八九拾" print(list1[-5:-1]) #从倒数第五个取到倒数第一个 print(list1[-2:]) #从倒数第二个取到最后 print(list1[:-6]) #取到倒数第6个 答案: 六七八九 九拾 一二三四
list1 = "一二三四五六七八九拾" print(list1[-1:-5]) #-1:-5什么都没有,因为从左往右获取 print(list1[-1:-5:-1]) #步长是-1,这个时候从右往左获取 print(list1[-3::-3]) #从倒数第三个开始,到最开始,每三个取一个 结果: 拾九八七 八五二
注意;步长:如果是整数或者没写,则从左往右获取:如果是负数,则从右往左获取,默认是1
切片语法:str[start:end:step]
start:起始位置,
end:结束位置
step:步长
2.字符串的相关操作
①大小写的转化
***upper(小写变成大写),lower(大写边小写)
注意;casefold():也是大写变成小写,但是和lower的区别是,lower对某些字符不支持,比如东欧,德语等.casefold对多余字母有效.
例:
s = "woshizhenhaokan" s1 = s.upper() print(s1) s3 = "WOSHIZHENHAOKAN" s2 = s3.lower() print(s2) 结果: WOSHIZHENHAOKAN woshizhenhaokan
②.***strip():默认去掉左右两端空格,空白\t,\n
例1:
s = " alex is a gay " s1 = s.strip() # 默认去掉空格. 空白\t \n print(s1) 结果: alex is a gay
例2:去掉指定的内容
list = "boy I am a boy and tom a boy" list1 = list.strip("boy") print(list1) 结果; I am a boy and tom a
③.***replace(old,new):把xxx替换成xxxxx.
例1:
s = "泰坦尼克号, 西虹市首富, 小猪佩奇, 冒险王" s1 = s.replace("冒险王", "西西里的美丽传说") s2 = s.replace("佩奇", "wusir") print(s1) print(s2) 答案: 泰坦尼克号, 西虹市首富, 小猪佩奇, 西西里的美丽传说 泰坦尼克号, 西虹市首富, 小猪wusir, 冒险王
例2 :
s = "alex_wusir_taibai_ritian" s1 = s.replace("_","") print(s1) s8 = "sylar_alex_taibai_wusir_eggon" s9 = s8.replace("i", "sb", 2) # 换两次 print(s9) 答案: alexwusirtaibairitian sylar_alex_tasbbasb_wusir_eggon
④.split():切割,返回列表,(用多长的刀,就要损失掉多少)
例1:
s = """我家大门常打开 开放怀抱等你 后面是什么歌词 我忘了""" lst = s.split("\n") print(lst) 答案: ['我家大门常打开', '开放怀抱等你', '后面是什么歌词', '我忘了']
例2:
s = "我今天下午要去吃饭饭" lst = s.split("下午") print(lst) #刀多大,切多少 s = "我今天下午要去吃饭饭" lst = s.split("我今天下午要去吃饭饭哈哈哈哈") # 没切 print(lst) #因为要切的字符数多余原字符数量. 答案: ['我今天', '要去吃饭饭'] ['我今天下午要去吃饭饭']
⑤.startswith():判断是否以xxx开头.
例:
s = "alex is a gay" print(s.startswith("tory")) # 以xxx开头 print(s.endswith("girl")) # 以xxx结尾 答案: False False
endswith():以xxx结尾
⑥.find(),count(),index()
find();查找xxx在字符串中出现的位置,只找第一次.
count():计算xx在字符串中出现的次数.
index():求索引位置,如果找不到索引,程序报错.
例:
print(s.count("dream")) print(s.find("a") print(s.index("z")) 答案: 1 3 报错
⑦len():查看字符串长度,python的内置函数,len()和print()是一样的
例:
list = "我长得真是好看,太tm帅了" list1 = len(list) ********* print(list1) 答案: 13
⑧isdigit():是否由数字组成.
isalpha():是否由字母组成.
isalnum():是否由数字和字母组成
isnumeric():可以进行中文识别
例:
s = "abcdefg1@" print(s.isdigit()) # %d print(s.isalpha()) # 字母 print(s.isalnum()) # 是否由数字和字母组成 答案: False False False
3.格式化输出
4.迭代:
我们可以使用for循环来便利(获取)字符串中的每一个字符语法:
for 变量 in 可迭代对象:
pass
可迭代对象:可以一个一个往外取值的对象.
例"