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 str 1. str索引和切片: 索引:起始下标是0(从左到右), (-1)从右到左 切片: s[起始位置: 结束位置: 步长] 特点:顾头不顾尾例
a = 3 # 1+1= 10 +1 = 11print(a.bit_length()) # 二进制长度
# 字符串转换成数字# s = "128"# i = int(s)# print(type(i))## ss = str(i)# print(type(ss))# # 综上可以得出. 你想转换成什么就用什么把目标括起来## # bool类型转换成数字 True: 1 False:0# b = False# c = int(b)# print(c) # int转换成bool 零: False 非零: True# a = 0# b = bool(a)# print(b) # while 1: # 1的效率比true 稍微高一点点# print("alex是个大xx") # s = "" # "" 空字符串表示False, 非空字符串表示:True# if s:# print("哈哈")# else:# print("呵呵") # 空的东西都是False, 非空的东西都是True # m = None # 空 连空气都不如. 真空, False# if m :# print("a")# else:# print("b")
# s = "我爱周杰伦他媳妇" # print(s[0])# print(s[1])# print(s[2])# print(s[3])# print(s[4]) # print(s[-1])# print(s[-2])# print(s[-3])# print(s[-4]) # 通过索引获取到的内容. 还是一个字符串# 切片可以对字符串进行截取# 语法 s[起始位置: 结束位置]# 特点:顾头不顾腚 # s = "alex和wusir经常在一起搞基"# s1 = s[5:10]# print(s1)# s2 = s[0:4] + s[5:10]# print(s2)# s3 = s[5:] # 默认到结尾# print(s3)## s4 = s[:10] # 从头开始# print(s4)# s5 = s[:] # 从头到尾都切出来# print(s5) # s6 = s[-2:] # 从-2 切到结尾 默认从左往右切# print(s6) # 步长# 语法:s[起始位置: 结束位置: 步长]# s = "我是梅西,我很慌"# s1 = s[1:5:2] # 从1开始, 到5结束, 每2个取1个# print(s1) # s2 = s[::3]# print(s2)# s3 = s[6:2:-1] # - 表示反着来. 每两个取1个# print(s3) # s = "这个标点符号很蛋疼"# # s1 = s[7::-2]# # print(s1)## s2 = s[-1:-6:-2]# print(s2)
2. 字符串的常用操作: 常用方法 字符串不可变. 1. upper() 转换成大写 2. strip() 去掉空格 3. replace() 替换 4. split() 切割 5. format() 格式化输出 6. startswith() 判断是否以xxx开头 7. find() 查找. 找不到返回-1 8. len() 内置函数. 直接使用. 不用点操作 求字符串的长度例
# s = "alex and wusir and taibai"# s1 = s.capitalize() # 首字母大写# print(s) # 原字符串不变# print(s1) # s = "Alex is not a Good Man. " # print(s.upper())# print(s.lower()) # 在程序需要判断不区分大小写的时候. 肯定能用上## while True:# content = input("请喷:")# if content.upper() == 'Q':# break# print("你喷了:", content) # s = "taiBai HenBai feicahngBai"# print(s.swapcase()) # 大小写转换 # s = "al麻花藤ex and wu sir sir se"# print(s.title()) # s = "麻花藤"# print(s.center(9, "*")) # username = input("用户名:").strip() # 去掉空格.# password = input("密码:").strip() # 去掉空格# if username == 'alex' and password == '123':# print("登录成功")# else:# print("登录失败") # s = "*******呵a呵呵呵****************"# print(s.strip("*")) # strip去掉的是左右两端的内容. 中间的不管 # s = "alex wusir alex sb taibai"# s1 = s.replace("alex", "晓雪") # 原字符串不变# print(s1)# # 去掉上述字符串中的所有空格# s2 = s.replace(" ", "")# print(s2) # s3 = s.replace("alex", "sb", 2)# print(s3)## s = "alex_wuse_taibai_bubai"# lst = s.split("_taibai_") # 刀是_ 切完的东西是列表. 列表装的是字符串# print(lst) # s = "我叫{}, 我今年{}岁了, 我喜欢{}".format("sylar", 18, "周杰伦的老婆")# print(s) # 可以指定位置# s = "我叫{1}, 我今年{0}岁了, 我喜欢{2}".format("sylar", 18, "周杰伦的老婆")# print(s) # s = "我叫{name}, 我今年{age}岁了, 我喜欢{mingxing}".format(name="sylar", mingxing="汪峰的老婆", age=18)# print(s) # 你喜欢用哪个就用哪个 # s = "汪峰的老婆不爱汪峰" # print(s.startswith("汪峰")) # 判断字符串是否以xxx开头# print(s.endswith("爱妃")) # 判断字符串是否以xxx结尾# print(s.count("国际章")) # 计算xxx在字符串中出现的次数 # print(s.find("汪峰", 3)) # 计算xxx字符串在原字符串中出现的位置, 如果没出现返回 -1# print(s.index("国际章")) # index中的内容如果不存在. 直接报错 # s = "abc123"# print(s.isdigit()) # 判断字符串是否由数字组成# print(s.isalpha()) # 是否由字母组成# print(s.isalnum()) # 是否由字母和数字组成 # s = "二千136万萬"# print(s.isnumeric()) # 数字 # s = "你今天喝酒了么"# i = len(s) # print() input() len() python的内置函数# print(i)## i = s.__len__() # 也可以求长度 len()函数执行的时候实际执行的就是它# print(i)
3. 迭代 for 变量 in 可迭代对象: 循环体 else:例
# 把字符串从头到尾进行遍历# s = "晓雪老师.你好漂亮"# print(len(s)) # 长度是:8 索引到7# 1. 使用while循环来进行遍历# count = 0# while count < len(s):# print(s[count])# count = count + 1 # 2. 用for循环来遍历字符串# 优势:简单# 劣势:没有索引# for c in s: # 把s中的每一个字符交给前面的c 循环# print(c) # 语法:# for bianliang in 可迭代对象:# 循环体