小学生都能学会的python(编码 and 字符串)
一,编码
最早的计算机编码是ASCII。 有英文+数字+特殊字符 8bit => 1byte 没有中文, 后面的编码必须兼容ASCII GBK 把中国的文字进行编码. 对ASCII扩充。 16bit => 2byte 主要包含了中文, 日文, 韩文, 英文(兼容ASCII) UNICODE 32bit 兼容各个国家的编码。万国码。 浪费空间 32bit => 4byte UTF-8 可变长度的UNICODE。本质是UNICODE。 英文在UTF-8里面占用1个字节 8bit 欧洲文字。占用2个字节 16bit 中文. 占用3个字节 24bit UTF-16
8bit => 1byte 1024byte => 1kb 1024kb => 1mb 1024mb => 1gb 1024gb => 1tb 1024tb = > 1
二,字符串(重点)
常见的基本数据类型:
1. int 整数
2. bool 布尔. 判断. if while
3. str 字符串, 一般放小量的数据.
4. list 列表. 可以存放大量的数据
5. dict 字典, 以key:value的形式存储数据
6. set 集合(数学)
7. tuple 元组 不可变
1. int
整数: 常见操作就那么几个 +-*/ // % **
bit_length() 一个数的二进制长度
2. bool(类型转换的问题)
没有操作
类型转换
字符串转换成整数 int(str)
结论1: 想要转化成什么类型就用这个类型括起来
结论2: True => 1 False => 0
结论3: 可以当做False来用的数据: 0 "" [] {} () None
3. 字符串
1. 字符: 单一文字符号
2. 字符串: 有序的字符序列
字符串由 ' " ''' """括起来的内容 字符串
索引 : 一排数字. 反应第某个位置的字符 索引的下标从0开始. 使用[]来获取数据
切片: [start: end: step]
顾头不顾尾
step:步长. 如果是+ 从左往右. 如果是- 从右往左 每n个取1个
3. 常用操作方法:
1. upper() 转化成大写. 忽略大小写的时候
2. strip() 去掉左右两端空白 用户输入的内容都要去空白
3. replace(old, new) 字符串替换
4. split() 切割 结果是list
5. startswith() 判断是否以xxx开头
6. find() 查找
7. isdigit() 判断是否是数字组成
8. len() 求长度. 内置函数
4. for循环
for 变量 in 可迭代对象:
循环体(break, continue)
else:
当循环结束的时候执行else
# 把字符串转化成int # a = "10" # b = int(a) # print(type(b)) # 把int转化成str # a = 10 # print(type(a)) # s = str(a) # print(type(s)) # 如果想把字符串转化成int int(str) # 把int转化成str str(int) # 结论: 想转化成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 # 结论3 , 可以当做False来用的数据: 0, "", [], (),{}, None # 所有的空的东西都是False # s = "" # if s: # print("娃哈哈") # while 1: # 1和True效率: 1的效率比True高一点点 # print("还我钱!")
# s = '刘德华很帅但是张国荣更' # print(s[2]) # print(s[11]) # print(s[-5]) # 倒数第一 # print(s[-4]+s[-3]+s[-2]) # 切片 s[start: end] 顾头不顾尾 # print(s[7:10]) # print(s[0:3]) # print(s[-4:-1]) # print(s[-1:-4]) # 默认的方向是从左往右切. # 从德开始切. 切到结尾 # print(s[1:]) # 末尾 # print(s[:4]) # 开头 # print(s[:]) # s = "我要开始玩幺蛾子了你们怕不怕我很怕" # print(s[1:5]) # print(s[5:1:-1]) # 第三个参数是步长 # print(s[1:5:3]) # print(s[4:8:2]) # print(s[::2]) # 02468 # print(s[-1:-6:-2]) # print(s[::-3]) # print(s[::-1]) # s = "" # 回文 # s1 = s[::-1] # if s == s1: # print("是回文") # else: # print("不是回文") # 切片: str[start : end : step] # start: 起始位置 # end: 结束位置 顾头不顾尾 # step: 步长 默认是1. 从左往右取. -1 从右往左取
# s = "太白金星" # s2 = s[::-1] # print(s) # s = "alex is not a good man! Tory is a good man" # # s1 = s.capitalize() # 首字母大写 # # s1 = s.lower() # s2 = s1.upper() # 转化成大写字母. 要求记住. 使用场景: 忽略大小写的时候需要 # # print(s2) # while True: # content = input("请输入你要喷的内容(输入Q退出):") # if content.upper() == 'Q': # 当用户输入q或者Q的时候退出. 这里要忽略大小写 # break # print(content) # s = "alex is not a good man! Tory is a good man" # s1 = s.swapcase() # 大小写互换 # print(s1) # s2 = "БBß" # 俄美德 # print(s2) # print(s2.lower()) # print(s2.casefold()) # 都转化成小写. 支持的文字比lower多 # s = "class app_le banana ora1nge pear alex wusir" # s1 = s.title() # 标题.把单词的首字母大写 # print(s1) # s = "刘伟" # s1 = s.center(4,"*") # 把字符串拉长成4个单位 用*扩充 # print(s1) # s = " 你好啊. 我叫赛利亚 " # print(s) # s1 = s.strip() # 去掉空白 # print(s1) # 模拟登陆 # 用户输入的内容是无法保证合法的. 需要进行处理和判断 # username = input("请输入用户名:").strip() # password = input("请输入密码:").strip() # if username == "alex" and password == "123": # print("成功") # else: # print("失败") # s = "刘伟很帅刘伟" # print(s.strip("伟")) # s = "alex_wusir_ritian_taibai_evaj_eggon" # # s1 = s.replace("taibai", "taihei") # s1 = s.replace("i", "SB", 2) # print(s1) # s = "alex_wusir_ritian_taibai_evaj_eggon" # lst = s.split("_") # 刀有多宽 就要损失掉多少 # print(lst) # print("周润发 周星驰周笔畅周杰伦") # 是换行 # s = "周润发周星驰周笔畅周杰伦" # lst = s.split("周润发周星驰周笔畅周杰伦") # 切割的内容在边上. 会出现空字符串 # print(lst) # 格式化输出 # print("我叫%s, 我今年%d岁了, 我喜欢干%s" % ("alex", 18, "python")) # print("我叫{}, 我今年{}岁了, 我喜欢干{}".format("alex", 18, "python")) # print("我叫{0}, 我今年{1}岁了, 我喜欢干{2}".format("alex", 18, "python")) # print("我叫{name}, 我今年{age}岁了, 我喜欢干{hobby}".format(name="alex", age=18, hobby="python")) # s = "今天的内容非常简单.你们信吗? 作业也很容易. 就是整理不太好" # print(s.startswith("太好了")) # print(s.endswith("太好了")) # 啤酒 # s = "胡辣汤炸鸡啤酒烤鸭酱肘锅包肉炸鸡炸鸡炸鸡" # # print(s.count("炸鸡")) # 计数 # print(s.find("疙瘩汤")) # 如果找不到返回-1 用这个 # print(s.index("疙瘩汤")) # 如果找不到报错. # s = "一二壹贰叁肆萬两" # print(s.isnumeric()) # s = "我是上帝, 你也是上帝" # print(len(s)) # 内置函数len(字符串) 返回给你字符串的长度
# 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)