03 编码 int ,bool,str的常用操作 主要讲str
主要内容:
1 编码
1).最早的计算机编码是ASCII,美国人创建的.包含了英文字母(大小写),数字,标点等特殊符号!@#
128个码位 2**7 在此基础上加了一位 2**8
8位 1个字节(byte)
2).GBK : 国标码 16位 2个字节(双字节字符)
3) unicode 万国码 32位 4个字节
4).utf-8: 英文 8bit 1个字节
欧洲文字 16bit 2个字节
中文 24bit 3个字节
8bit=1byte 1024byte=1kb 1024kb=1mb 1024mb=1gb 1024gb=1tb
2基本数据类型概述
1)int : 整数
2)str: 字符串 存储少量的数据
3)bool: 布尔
4)list: 列表 ["大秧歌","东阳"]
5)tuple:元祖 只读列表,不能修改
6)dict: 字典 一对一对的存储数据.key:value{"jj":"林俊杰","jay":"周杰伦"}
7)set: 集合 存储不重复的内容
3 int操作
bit_length(): 求二进制长度
a=3 二进制1
print(a.bit_length()) ###结果是2
4 bool操作
类型转换:你想转换成什么,就用什么把目标裹起来
b=False c=int(b) print(c) ###结果是0
带空的返回false,不带空的返回true
a = 0 b = bool(a) print(b) ###结果是false
s = "" # "" 空字符串表示False, 非空字符串表示:True if s: print("哈哈") else: print("呵呵") ###结果是呵呵
4 字符串的常用操作
1)索引和切片:
索引:通过索引获得的内容还是一个字符串
s="吴磊很帅" print(s[1]) print(s[-1]) #### 结果是磊 帅
切片:
切片可以对字符串进行截取 s[起始位置:结束位置] 特点是顾头不顾尾
s = "alex和wusir经常在一起搞基" s1 = s[0:5] s2 = s[:4] #默认从开始到4 s3 = s[1:] #默认从1到结束 s4 = s[:] #默认从开始到结束 s5 = s[0:4] + s[5:10] #+表示拼接 s6 = s[-2:] # 从-2 切到结尾 默认从左往右切 s7=s[6:2:-1] #-号表示从左往右切 s8=s[-1:-6:-2] # print(s1) print(s2) print(s3) print(s4) print(s5) print(s6) print(s7)
alex和
alex
lex和wusir经常在一起搞基
alex和wusir经常在一起搞基
alexwusir
搞基
uw和x
2)字符串的常用操作:
字符串不可以改变
upper()转换成大写
lower()转换成小写
s="alex is Not a Good man" print(s.upper()) print(s.lower()) print(s)
ALEX IS NOT A GOOD MAN alex is not a good man alex is Not a Good man
在程序不区分大小写的时候肯定能用上
在程序需要判断不区分大小写的时候,肯定能用上. while True: content=input("请喷:") if content.upper()=="Q": break print("你喷了:",content)
请喷:邱老师和助教老师都很好
你喷了: 邱老师和助教老师都很好
请喷:q
replace()替换
s="alex wusir alex sb taibai" s1=s.replace("alex","小雪") print(s1) #去掉上述字符串的所有空格 s2=s.replace("alex","sb",1) #1指的是第一个alex 而不是索引的1 print(s2) s3=s.replace(" ","") print(s3)
小雪 wusir 小雪 sb taibai
sb wusir alex sb taibai
alexwusiralexsbtaibai
strip()去除空格,还可以去除两边的内容(括号里面需要加上删除的内容)
username = input("用户名:").strip() # 去掉空格. password = input("密码:").strip() # 去掉空格 if username == 'alex' and password == '123': print("登录成功") else: print("登录失败")
s="******呵呵a呵呵呵呵********" print(s.strip("*")) ####结果是呵呵a呵呵呵呵
split()切割:切割的内容是一个列表
s="alex_wuse_taibai_bubai" list=s.split("_") print(list)
['alex', 'wuse', 'taibai', 'bubai']
可以根据相应的位置切割
name = "alex leNB" s2=name.split("l",1) #根据第一个l的位置切割 print(s2)
['a', 'ex leNB']
format()格式化输出
s="我叫{},我今年{}岁了,我喜欢{}".format("sylar","18","周杰伦的老婆") print(s)
startswith()判断以xxx开头
endswith()判断以什么结束
find()查找,找不到返回-1
index()查找,找不到报错
s = "汪峰的老婆不爱汪峰" print(s.startswith("汪峰")) # 判断字符串是否以xxx开头 True print(s.endswith("爱妃")) # 判断字符串是否以xxx结尾 Flase print(s.count("国际章")) # 计算xxx在字符串中出现的次数 0 print(s.find("汪峰")) # 计算xxx字符串在原字符串中出现的位置, 如果没出现返回 -1 0 print(s.index("国际章")) # index中的内容如果不存在. 直接报错 报错 可以使用find, 如果找不到就返回-1
len()内置函数,直接使用,不用.操作.求字符串的长度.
s = "晓雪老师.你好漂亮" print(len(s)) # 长度是:8 索引到7 1. 使用while循环来进行遍历 count = 0 while count < len(s): print(s[count]) count = count + 1
count()计数,判断字符串出现的次数,也可以从开始位置到结束位置计算出现的次数
name = "alex leNB" s1 = name.count("l",0,4) #计数还可以从开始位置到结束位置.格式name.count("",开始位置,结束位置) print(s1)
5 迭代
for 变量 in可迭代对象:
循环体
else:
用for 循环遍历字符串:
优势:简单
劣势:没有索引
for c in s: # 把s中的每一个字符交给前面的c 循环 print(c)