常见的基本数据类型:
- 1. int 整数
- 2. bool 布尔. 判断. if while
- 3. str 字符串, 一般放小量的数据.
- 4. list 列表. 可以存放大量的数据
- 5. dict 字典, 以key:value的形式存储数据
- 6. set 集合(数学)
- 7. tuple 元组 不可变
1.整数
常见操作:+-*/ // % 其中 //的意思是 取整除返回商的整数部分。
bit_length() 一个数的二进制长度
a = 15 #15 的二进制表示是1111 print (a.bit_length()) # 4
2.bool
类型转换
a = "10" b = int(a) print(a,type(b)) #把字符串转化成int
a = 10 s = str(a) print(s,type(s)) #把int转化成str
(1) 结论: 想转化成xxx数据类型 xxx(目标)
a = 10 b = bool(a) print(b)
c = True d = str(c) print(type(d))
a = False print(int(a))
(2) 结论: True => 1 False => 0
s = "" if s : print ("wahaha")
while 1: # 1和True效率: 1的效率比True高一点点 print("还我钱!")
(3) 可以当做False来用的数据: 0 "" [] {} () None
3. 字符串
把字符连成串串. 在python中⽤用', ", ''', """引起来的内容被称为字符串
(1)索引:一排数字. 反应第某个位置的字符 索引的下标从0开始. 使用[]来获取数据
# 0 1 2 3 4 5 6 s1 = "百二秦关终属楚" print (s1[0]) print (s1[1]) print (s1[2]) print (s1[3]) print (s1[6]) print (s1[7]) #string index out of range 越界,报错 print (s1[-1]) # -1 表示倒数. print (s1[-5]) # 倒数第五个
(2 切片, 我们可以使⽤用下标来截取部分字符串串的内容
语法: str[start: end] 规则: 顾头不顾尾, 从start开始截取. 截取到end位置. 但不包括end
# 0 1 2 3 4 5 6 s1 = "百二秦关终属楚" print (s1[0:3]) # 从0 获取到3 但不包括3 结果: 百二秦 print (s1[3:6]) # 关属楚 print (s1[4:7]) # 最大是7 ,但要想取到7 必须上限到8 print (s1[2:10]) # 如果给的有边值已经超过了7那么相当于取到最后 print (s1[2:]) #从第二个取到最后,右边的那位可以不给 print (s1[:5]) #从头取的话左边可以不给 print (s1[:]) # 原样输出 print (s1[-1:-5]) # 默认方向是从左到右,从-1取不到-5 print (s1[-5:-1]) #同样取不到最后一个字, print (s1[-5:]) # 右边什么都不写 ,取到最后 print (s1[:-1]) # 这是取到倒数第一个
跳着截取
步长: 如果是整数, 则从左往右取. 如果是负数. 则从右往左取. 默认是1
切片语法: str[start:end:step] start: 起始位置 end: 结束位置 step:步
# 0 1 2 3 4 5 6 7 8 9 s = "破釜沉舟百二秦关终属楚" print (s[1:7:2]) #从第一个开始取,取到第7个(不包括7)每两个取一个 print (s[:6:2]) #从头取到第6个,每两个取一个 print (s[4::2]) #从第四个取到最后,每两个取一个 print (s[::2]) #从头取到尾,每两个取一个 print (s[-1:-6:-2]) #从右往左取,步长是-1,效果成逆序 print (s[::-2]) #步长可以决定取的方向 print (s[-6::-2])
可以用来判断是否是回文
s = "上海自来水来自海上" # 回文 s1 = s[::-1] if s == s1: print("是回文") else: print("不是回文")
(3)字符串的相关操作方法:
1. lower () ,全部转换成小写
upper() 转化成大写. 忽略大小写的时候
s = "Alex is not a good man! Sally is a good man" s1 = s.lower() print (s1) # 结果 alex is not a good man! sally is a good man
s = "Alex is not a good man! Sally is a good man" s2 =s.upper() print (s2)
while True : content = input ("请输入你要喷的内容(输出Q退出)") if content.upper() == "Q" : break print (content) #在输入时不需要区分大小写
应用:
#应用, 校验用户输入的验证码是否合法 verify_code = "abDe" user_verify_code = input("请输⼊入验证码:") if verify_code.upper() == user_verify_code.upper(): print("验证成功") else: print("验证失败")
2.strip() # 去掉左右两端的空格, 用户输入的内容都要去空白
s = " 有志者事竟成 \t" print (s) s1 = s.strip() print (s1)
应用:
# 模拟用户登录 #用户的输入时无法保证合法的例如有空格,需要进行处理和判断 username = input ("请输入用户名:").strip() password = input ("请输入密码:").strip() if username == "Alex"and password == "1234": print ("成功") else : print ("失败")
另外:
s = "阳光很刺眼的阳光" print(s.strip("光")) #注意去除的是两端,中间的去不掉 结果:阳光很刺眼的阳
3. replace(old, new) 字符串替换
s = "alex_wusir_ritian_taibai_evaj_eggon" s1 = s.replace("taibai","taihei") s2 = s.replace ("i","SB",2) #意思是将字符串中的i换成SB,换两个 print (s1) print (s2)
4. split(",") 字符串切割, 根据,进⾏行行切割 ,结果是lst
s = "alex_wusir_ritian_taibai_evaj_eggon" lst = s.split("ritian") # 刀有多宽 就要损失掉多少 print(lst) #结果是:['alex_wusir_ritian_', '_evaj_eggon']
s = "alex_wusir_ritian_taibai_evaj_eggon" lst = s.split("_") # 刀有多宽 就要损失掉多少 print(lst) #结果是:['alex', 'wusir', 'ritian', 'taibai', 'evaj', 'eggon']
print ("周润发\n周星驰周杰伦周笔畅") # \n 意思是换行
另外;
s = ("周润发周星驰周杰伦周笔畅") lst = s.split("周润发周星驰周杰伦周笔畅") # 切割的内容在边上. 会出现空字符串 print (lst) # 结果是: ['', '']
s = ("周润发周星驰周杰伦周笔畅") lst = s.split("周星驰周杰伦周笔畅") # 切割的内容在边上. 会出现空字符串 print (lst) # 结果是: ['周润发', '']
5. startswith() 判断是否以xxx开头 .endswith() # 是否以xxx'结尾
s = "今天的内容非常简单.你们信吗? 作业也很容易. 就是整理不太好" s1 = s.startswith("太好了") s2 = s.endswith ("太好了") s3 = s.startswith("今天的") s4= s.endswith ("不太好") print (s1) print (s2) print (s3) print (s4)
6. find() 查找
# 0 1 2 3 4 5 s = "胡辣汤炸鸡啤酒烤鸭酱肘锅包肉炸鸡炸鸡炸鸡" s1 = s.count ("炸鸡") # 用来计数 print (s1) #结果4 s2 = s.find ("疙瘩汤") #如果找不到就返回-1 print(s2) #结果是-1 s3 = s.find ("啤酒") print (s3) #结果是 5 s4 = s.index("疙瘩汤") #如果找不到就报错
7. isdigit() 判断是否是数字组成
s = "I am sylar, I'm 14 years old, I have 2 dogs!" count = 0 for c in s: if c.isdigit(): #判断是否是数字组成 count = count + 1 print(count)
8. len() 求长度. 内置函数
s = "我是上帝, 你也是上帝" print(len(s)) # 内置函数len(字符串) 返回给你字符串的长度
(4) for 迭代
- for 变量 in 可迭代对象:
- 循环体(break, continue)
- else:
- 当循环结束的时候执行else
s = "朱元璋朱棣" count = 0 while count < len (s): # 遍历字符串的第一种办法 print (s[count]) count =count + 1
s = "朱元璋朱棣朱建峰" # for循环 # for 变量 in 可迭代对象: # 把可迭代对象中的每一个元素 分别赋值给前面的变量, 可以方便可迭代对象的遍历 for c in s: print(c)
另外:
# TypeError: 'int' object is not iterable for i in 10: print(i) #报错