主要内容:
- 1. int 整数
- 2. bool 布尔值
- 3.字符串
1.整数
- 常见操作:+-*/ // % 其中 //的意思是 取整除返回商的整数部分。
- bit_length() 一个数的二进制长度
a = 15 #15 的二进制表示是1111 print (a.bit_length()) # 4
2.bool
- True => 1 False => 0
s = "" if s : print ("wahaha")
while 1: # 1和True效率: 1的效率比True高一点点 print("还我钱!")
-
可以当做False来用的数据: 0 "" [] {} () None
3. 字符串
把字符连成串. 在python中⽤用', ", ''', """引起来的内容被称为字符串
3.1 索引:
# 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]) print (s1[-1]) # -1 表示倒数. print (s1[-5]) # 倒数第五个
注:索引超范围的报错 IndexError: string index out of range
3.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]) # 这是取到倒数第一个
- 跳着截取 切片语法: str[start:end:step] start: 起始位置 end: 结束位置 step:步 (如果是整数, 则从左往右取. 如果是负数. 则从右往左取. 默认是1 ,若果为负数,成逆序效果)
# 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.3 字符串的操作
- 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("验证失败")
- strip() # 去掉左右两端的空格
s = " 有志者事竟成 " 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("光")) #注意去除的是两端,中间的去不掉 结果:阳光很刺眼的阳
- 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)
- split() 根据括号中内容去切,当什么也不写,默认用空白去切
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 ("周润发 周星驰周杰伦周笔畅") # 意思是换行
另外: 切割的内容在边上会出现空字符串
s = ("周润发周星驰周杰伦周笔畅") lst = s.split("周润发周星驰周杰伦周笔畅") # 切割的内容在边上. 会出现空字符串 print (lst) # 结果是: ['', '']
s = ("周润发周星驰周杰伦周笔畅") lst = s.split("周星驰周杰伦周笔畅") # 切割的内容在边上. 会出现空字符串 print (lst) # 结果是: ['周润发', '']
- startswith() & endswith()
s = "今天的内容非常简单.你们信吗? 作业也很容易. 就是整理不太好" s1 = s.startswith("太好了") s2 = s.endswith ("太好了") s3 = s.startswith("今天的") s4= s.endswith ("不太好") print (s1) print (s2) print (s3) print (s4)
- count & 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("疙瘩汤") #如果找不到就报错
- 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)
-
len() 求长度. 内置函数
s = "我是上帝, 你也是上帝" print(len(s)) # 内置函数len(字符串) 返回给你字符串的长度
- join()
lst = ["汪峰", "吴君如", "李嘉欣", "陈慧琳", "关之琳"] # 遍历列表. 把列表中的每一项用"_" 做拼接 s = "_".join(lst) # 把列表转化成字符串 print(s,type(s)) #汪峰_吴君如_李嘉欣_陈慧琳_关之琳 <class 'str'>
s1 = "汪峰_吴君如_李嘉欣_陈慧琳_关之琳" lis = s1.split("_") # 把字符串转化成列表 print(lis,type(lis)) #['汪峰', '吴君如', '李嘉欣', '陈慧琳', '关之琳'] <class 'list'>
print("*".join("马化腾") # 马*化*腾
-
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)
-
for循环中出现的报错类型 TypeError
# TypeError: 'int' object is not iterable for i in 10: print(i) #报错