基础数据类型概述
1. 编码
1. 最早的计算机编码是ASCII. 美国人创建的. 包含了英文字母(大写字母, 小写字母). 数字, 标点等特殊字符!@#$%
128个码位 2**7 在此基础上加了一位 2**8
8位. 1个字节(byte)
2. GBK 国标码 16位. 2个字节(双字节字符)
3. unicode 万国码 32位, 4个字节
4. utf-8: 英文 8 bit 1个字节
欧洲文字 16bit 2个字节
中文 24bit 3个字节
8bit => 1 byte
1024 byte = > 1kb
1024 kb => 1mb
1024mb => 1gb
1024gb = > 1tb
2. 基本数据类型的概述
int 整数
str 字符串, 存储少量的数据
bool 布尔
list 列表, ["大阳哥", "东阳哥", ]
tuple 元组. 只读列表, 不能改
dict 字典; 一对一对的存储数据. key:value {"赵阳":"大阳哥", 'jay':"周杰伦"}
set 集合. 存储不重复的内容
3. int, bool, str
int 方法操作:
bit_length() 求二进制长度:
bool: 类型转换
1. 你想转换成什么. 就用什么把目标包裹起来
2. 带空的是False, 不带空的True
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 a=True 2 b=False 3 c=int(b) 4 d=int(a) 5 print(c) #bool类型转换数字 得出False为0 True为1 6 print(d) 7 while 1: # 1的效率比true 稍微高一点点 8 print("alex是个大xx") 9 s = "" # "" 空字符串表示False, 非空字符串表示:True 10 if s: 11 print("哈哈") 12 else: 13 print("呵呵") 14 15 #空的东西都是False, 非空的东西都是True 16 m = None # 空 连空气都不如. 真空, False 17 if m : 18 print("a") 19 else: 20 print("b")
str
1. str索引和切片:
索引:起始下标是0(从左到右), (-1)从右到左
切片: s[起始位置: 结束位置: 步长]
特点:顾头不顾尾
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 s='123a4b5c' 2 s1=s[2] 3 s2=s[3:6] 4 s3=s[::2] 5 s4=s[1:7:2] 6 s5=s[7:] 7 s6=s[5::-2] 8 print(s6)
2. 字符串的常用操作: 常用方法
字符串不可变.
1. upper() 转换成大写
2. strip() 去掉空格
3. replace() 替换
4. split() 切割
5. format() 格式化输出
6. startswith() 判断是否以xxx开头
7. find() 查找. 找不到返回-1
8. len() 内置函数. 直接使用. 不用点操作 求字符串的长度
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 s = "alex and wusir and taibai" 2 s1 = s.capitalize() # 首字母大写 3 print(s) # 原字符串不变 4 print(s1) 5 s = "al麻花藤ex and wu sir sir se" 6 print(s.title()) #每个特殊字符隔开的英文单词首字母都大写,中文也算特殊字符 7 8 9 print(s.upper())#把字母都转换成大写 10 print(s.lower())#把字母都转换成小写 11 #在程序需要判断不区分大小写的时候. 肯定能用上 12 while True: 13 content = input("请喷:") 14 if content.upper() == 'Q': 15 break 16 print("你喷了:", content) 17 18 s = "taiBai HenBai feicahngBai" 19 print(s.swapcase()) # 大小写转换 20 21 22 s = "麻花藤" 23 print(s.center(9, "*")) #居中字符串并扩展字符串,'此处为填充内容' 24 25 26 27 username = input("用户名:").strip() # 去掉空格. 28 password = input("密码:").strip() # 去掉空格 29 if username == 'alex' and password == '123': 30 print("登录成功") 31 else: 32 print("登录失败") 33 34 s = "*******呵a呵呵呵****************" 35 print(s.strip("*")) # strip去掉的是左右两端的内容. 中间的不管 36 37 s = "alex wusir alex sb taibai" 38 s1 = s.replace("alex", "晓雪") # 原字符串不变 39 print(s1) 40 # 去掉上述字符串中的所有空格 41 s2 = s.replace(" ", "")#替换 42 print(s2) 43 s3 = s.replace("alex", "sb", 2)#选择替换数量 44 print(s3) 45 46 s = "alex_wuse_taibai_bubai" 47 lst = s.split("_taibai_") # 刀是_ 切完的东西是列表. 列表装的是字符串 48 print(lst) 49 50 s = "我叫{}, 我今年{}岁了, 我喜欢{}".format("sylar", 18, "周杰伦的老婆") 51 print(s) 52 53 54 s = "我叫{1}, 我今年{0}岁了, 我喜欢{2}".format("sylar", 18, "周杰伦的老婆") 55 print(s) 56 57 s = "我叫{name}, 我今年{age}岁了, 我喜欢{mingxing}".format(name="sylar", mingxing="汪峰的老婆", age=18) 58 print(s)#可以指定位置 59 60 s = "汪峰的老婆不爱汪峰" 61 62 print(s.startswith("汪峰")) # 判断字符串是否以xxx开头 63 print(s.endswith("爱妃")) # 判断字符串是否以xxx结尾 64 print(s.count("国际章")) # 计算xxx在字符串中出现的次数 65 66 print(s.find("汪峰", 3)) # 计算xxx字符串在原字符串中出现的位置, 如果没出现返回 -1 67 print(s.index("国际章")) # index中的内容如果不存在. 直接报错 68 69 s = "abc123" 70 print(s.isdigit()) # 判断字符串是否由数字组成 71 print(s.isalpha()) # 是否由字母组成 72 print(s.isalnum()) # 是否由字母和数字组成 73 74 s = "二千136万萬" 75 print(s.isnumeric()) # 数字 76 s = "你今天喝酒了么" 77 i = len(s) # print() input() len() python的内置函数 78 print(i) 79 80 i = s.__len__() # 也可以求长度 len()函数执行的时候实际执行的就是它 81 print(i) 82 83 #把字符串从头到尾进行遍历 84 s = "晓雪老师.你好漂亮" 85 print(len(s)) # 长度是:8 索引到7 86 1. 使用while循环来进行遍历 87 count = 0 88 while count < len(s): 89 print(s[count]) 90 count = count + 1 91 92 2. 用for循环来遍历字符串 93 优势:简单 94 劣势:没有索引 95 for c in s: # 把s中的每一个字符交给前面的c 循环 96 print(c)
3. 迭代
for 变量 in 可迭代对象:
循环体
else: