# python基础数据类型
# 1. int 整数
# 2.str 字符串.不会用字符串保存大量的数据
# 3.bool 布尔值. True, False
# 4.list 列表(重点) 存放大量的数据
# 5.dict 字典 key: value 查找会比较快
# 6.set 集合 无序 不能重复
# 7.bytes 一堆字节。 我们程序处理的最小单位
# 8.tuple 元组 不可变的列表
1.整数(int)
在python3中所有的整数都是int类型. 但在python2中如果数据量比较⼤. 会使⽤long类型. 在python3中不存在long类型
int的操作,xxx.bit_length() 可计算,返回二进制长度
1 a=8 2 print(a.bit_length()) # .bit_length() 返回二进制长度
2.布尔值(bool)
取值只有True, False. bool值没有操作.
转换:
1 # bool-int False - 0 True - 1 2 # int - bool 0 - False 非零 - True 如: 3 x = False 4 print(int(x)) #输出为 0 5 6 while 1: 7 print("循环循环") 8 # str - bool 空字符串是 False 不空是 True
3.字符串(str)
把字符连成串. 在python中用', ", ''', """引起来的内容被称为字符串.
3.1. 索引. 索引就是下标. 切记, 下标从0开始
1 # 索引 2 # 0 1 2 3 4 5 6 7 8 9 10 11 12 从 0开始计数 3 # 人生苦短 , 我 用 p y t h o n 4 s = "人生苦短,我用python" 5 print(s[10]) 6 print(s[12]) 7 print(s[-7]) # 倒数 8 print(s[-1]) 9 print(s[-14]) # 没有14 超出范围会报错 10 print(s[14]) # 超出范围会报错
3.2.切片.从字符串中获取新的字符串
语法: str[start: end] 规则: 顾头不顾腚, 从start开始截取. 截取到end位置. 但不包括end.
1 # s1 = "人生苦短,我用python" 2 # print(s1[0:3]) # 语法 print(str[start:end]) 顾头不顾腚 所以这里无s1[3] 3 # print(s1[3:5]) 4 # print(s1[7:13]) # 最后一位是s1[12] 顾头不顾腚 要取最后得往后一个即s1[13] 5 # print(s1[8:14]) # 超出范围仍输出 ython 相当于取到最大 6 # print(s1[:]) # 从头到尾 没有限定末尾 可以取完 7 # print(s1[1:]) # 从s1[1]到末尾 8 # print(s1[:5]) # 从开始到s1[5] 9 10 # s2 = s1[3] + s1[4] + s1[5] + s1[6] + s1[7] 11 # print(s2) 12 # print(s1[3:-1]) # 顾头不顾腚 无法取到最后一个 13 # print(s1[:-8]) # 从开头到倒数第八个 14 # print(s1[-8:-1]) # 倒数第八获取到倒数第一个 但获取不到倒数第一 15 # print(s1[:-1]) # 同理切片到倒数1 但不显示 16 # print(s1[-5:]) #到末尾
跳着截取:
1 # 跳着截取 2 # s[start: end: step] step步长 如果是正数从左到右。 如果是负数就是从右到左 3 s3 = "RNG牛逼,RNG牛逼" 4 print(s3[::2]) # 从头到尾 每隔两个获取 RG逼RG逼(注意这里没限定末尾 可以取到逼) 5 print(s3[3:9:2]) # 从3取到9隔2取一 牛,N 6 print(s3[-5::-2]) # 从倒着5到开头 倒着隔2取1 R逼GR 7 print(s3[-1:-9:-1]) #从倒1倒倒9 倒着隔1取1 逼牛GNR,逼牛 (顾头不顾腚 取不到G)
4.字符串的相关操作
注意,字符串是不可变的对象,所以任何操作队员字符串都不会有任何影响!
4.1.大小写转换
语法:xxx.capitalize() 首字母大写,如:
1 s = "rng牛b" 2 # s.capitalize() 3 # print(s) #无变化 需要重新获取 4 # s1 = s.capitalize() 5 # print(s1) #大写首字母
xxx.lower() 把字符串转换成小写.
xxx.upper()把字符串转换成大写.
1 s = "rng牛B" 2 # 大小写转换 3 s2 = s.lower() # xxx.lower() 全转换成小写 4 print(s2) 5 6 s3 = s.upper() # xxx.upper() 全转换成大写 7 print(s3)
1 while 1: 2 content = input("请输入你要喷的内容,输入exit退出:") 3 if content.upper()=="EXIT": 4 break 5 print(content)
xxx.swapcase() 大小写互相转换
1 s4 = s.swapcase() # 大小写相互转换 2 print(s4)
另一种转换小写
1 a = "人生苦短,我用Python!" 2 a1 = a.casefold() # 转换成小写,于lower区别在:lower()对某些字符支持不够好. 3 # casefold()对所有字⺟母都有效. 比如东欧的⼀些字⺟ 4 print(a1) 5 6 a3 = "БBß" # 俄美德 7 print(a3) 8 print(a3.lower()) # бbß 9 print(a3.casefold()) # бbss
被特殊字符隔开的单词首字母大写
1 # 每个被特殊字符隔开的单词首字母大写 2 s = "chinese中国china" # 中文也算特殊字符 3 print(s.title()) # Chinese中国China 4 5 s1 = "i$can,i&up " 6 print(s1.title()) # I$Can,I&Up
4.2.居中填充 .center(长度值,填充字符)
如:
1 # # 居中 2 z = "周杰伦" 3 print(z.center(11 ,"*")) # 拉长成为11,原字符居中,其他用"*"补充
4.3. 去空格 空白 .strip()
1 k = " \n\n\n\t王力宏下周将开展演\唱会 \n\n\n\n\t " 2 k1 = k.strip() 3 k2 = k.rstrip() 4 k3 = k.lstrip() 5 print(k3) # 去掉左边空格 6 print(k2) # 去掉右边空格 7 print(k1) # 去掉两边空格
登陆模拟 规范用户输入
1 # 登录模拟 忽略空格 规范用户输入 strip() 用于登录模拟 2 username = input("请输入用户名:").strip() 3 password = input("请输入密码:").strip() 4 if username == "小白" and password == "123": 5 print("输入正确!") 6 else: 7 print("输入错误")
去掉指定字符
1 # strip() 去掉指定字符 2 g = "1232456gjjjag" 3 print(g.strip("1232456"))
4.4.替换字符 .replace()
替换指定字符:
1 # replace(xxx,xxxx) 替换指定字符 2 x = "good better best" 3 print(x.replace(" ",","))
字符中xx替换成xxx替换x次
1 x1 = "hello_you_are_so_beautiful" 2 x2 = x1.replace('o','xxx',2) # 替换 x1字符中的 o 替换两次 3 print(x2) 4 5 # hellxxx_yxxxu_are_so_beautiful
4.5.字符串切割 .split()
1 # split() 字符串切割 2 b = "one,two,three,four,five,six" 3 b1 = b.split(",") # 五个 , 分割成六段 4 print(b1) 5 6 # ['one', 'two', 'three', 'four', 'five', 'six']
注意:如果沿边切割,一定会出现空字符
1 s = """湿人 2 学者 3 渣渣 4 """ 5 print(s.split('\n')) # ['湿人', '学者', '渣渣', ''] 出现空字符 贴边切会出现! 6 7 # 如果切割符在左右两端. 那么⼀定会出现空字符串.深坑请留意 8 9 # ['湿人', '学者', '渣渣', '']
4.6.格式化输出 %s .format()
如:
1 s1 = "我叫%s,%s岁,现居%s,做%s相关的工作。"%("小白","22","深圳","编程",) # 常用 2 s2 = "我叫{},{}岁,现居{},做{}相关的工作。".format("小白","22","深圳","编程") # 按位置格式化 3 s3 = "我叫{1},{2}岁,现居{0},做{3}相关的工作。".format("深圳","小白","22","编程") # 指定位置 4 s4 = "我叫{name},{age}岁,现居{address},做{job}相关的工作。".format(address='深圳',job='编程',age='22',name='小白') # 指定关键词 5 print(s1) 6 print(s2) 7 print(s3) 8 print(s4) 9 10 ''' 11 我叫小白,22岁,现居深圳,做编程相关的工作。 12 我叫小白,22岁,现居深圳,做编程相关的工作。 13 我叫小白,22岁,现居深圳,做编程相关的工作。 14 我叫小白,22岁,现居深圳,做编程相关的工作。 15 '''
4.7.判断查找 .startswith() .endswith() .find()
如:
1 c = "勇士们都很喜欢赛丽亚和爆杠深渊深渊" 2 c1 = c.startswith("勇士") # 判断是否以 勇士 开头 =》True False 3 c2 = c.endswith("深渊") # 判断是否以 深渊 结尾 =》True False 4 print(c1) 5 print(c2) 6 7 ''' 8 True 9 True 10 '''
.find()查找字符出现的位置,若没有返回 -1
1 # .find() 查找字符出现的位置,若没有返回 -1 2 c4 = c.find("深") 3 c5 = c.find("dnf") 4 print(c4) # 13 5 print(c5) # -1
.find()切片查找
1 # .find() 切片查找 2 c6 = c.find("丽",3,10) # 在 c[3]-c[10]查找 丽 的位置 3 print(c6) # 8
.index()查找索引的位置
1 # # .index() 查找索引位置 2 c7 = c.index("赛丽亚") 3 c8 = c.index("dnf") # substring not found 找不到 报错 所以常用 .find()查找 4 print(c7) 5 print(c8)
4.8.内置函数 求字符串长度 len()
如:
1 # len()内置函数 求字符串长度 2 n = "Yes I Can!" 3 n1 = len(n) # 内置函数 理解成类似 print() 4 print(n1) # 10
4.9.迭代对象 for
在这之前试试while获取每一个字符再输出
1 z = "今天是周六,阳光明媚,可惜我感冒了" 2 count = 0 3 while count<len(z): # len(z)是字符串长度,count是索引 4 print(z[count]) 5 count += 1 6 ''' 7 今 8 天 9 是 10 周 11 六 12 , 13 阳 14 光 15 明 16 媚 17 , 18 可 19 惜 20 我 21 感 22 冒 23 了 24 25 '''
再看看用for会如何呢
1 # 用for循环 语法:for 变量 in 可迭代对象: 2 for z1 in z: # 把z的每一个元素赋值给前面的z1变量 3 print(z1) 4 5 # 可知能达到同样的效果
continue...