1. 基本数据类型
1 int 整数
2 str 字符串 ','', ''',""", 字符串一般不存储大量数据 , 不容易操作
3 bool 布尔值, Ture,False
4 list [] 列表 ([] 里放列表的值)
list["sylar",'太白',1,Ture,(),{}]
5 tuple () 元组 只能读取 不能修改
6 dict {} 字典 查找比较快 key:value, 一次存两个数据 一对一对存
7 set {} 集合 一次存一个 不能重复 , 只存 Key 比较少见
- 2 int
- a=5 #0000 0101
- print('a.bit_length()')
- # 输出: 3
- 3 Bool
- str =>int int(str)
- int =>str str(int)
数字准换成 bool 值 如果数字是 0 转换成 False, 如果数字不是 0 转换成 True
- a=0
- print(bool(a))
- # 输出 False
在 while 循环中 True 和 1 的效率问题 :1 的效率高 (计算机无需转换成 ASCII 码直接执行)
- while1: #1 ==True
- print("hello")
bool 转换成 int
- a=0
- print(int(True))
- # 输出 1
- print(int(False))
- # 输出 0
str 转换成 bool ( 非零转换成 True 零准换成 False )
- a="abc"
- print(bool(a))
- # 输出 True
- a="123"
- print(bool(a))
- # 输出 True
- a=""#"" 这个是空字符
- print(bool(a))
- # 输出 False
- a="" #" " 这个是空格
- print(bool(a))
- # 输出 True
- a=None # 这个是真的空
- print(bool(a))
- # 输出 False
- a="None" #这个是字符串 "None"
- print(bool(a))
- # 输出 True
向系统中录入员工信息, 不停地录入, 输出回车退出
- while 1: # while 1 和 while True 一个意思
- name=input("请输入用户信息:")
- if name != "":
- print("新员工信息:{}".format(name))
- else:
- break
改写:
- while 1:
- name=input("请输入用户信息")
- if not name: # 判断 如果不正确
- break
- else:
- print("新员工信息:"+name)
- 4 str
1. 索引 索引就是下标 下标 从 0 开始
- print([""])
- # 0 1 2 3 456 7 8 9101112 # 正向
- # 0 ...-2-1
- s="小老板很帅, 他比别人都帅."
- # 字符串中的第几个字符 正向从 0 开始 反向从 - 1 开始
- print([3])
- # 输出: 很
- print([5])
- # 输出:,
- print([-1])
- # 输出:.
- print([-9])
- # 输出: 帅
2. 切片 print(s[""]) 切片 顾头不顾尾 默认从左往右切
不能改变原来字符串 只能产生新的字符串
- s="1234567890"
- print(s[2:5])
- # 输出: 345
- print(s[3:10])
- # 输出: 4567890 # 如果右边的值超过字符的长度, 切到最后
- print(s[2:]) # 切到最后
- # 输出: 34567890
- print(s[-5:]) #切到最后
- # 输出: 67890
- print(s[:]) #全部切出来
- # 输出: 1234567890
- # 可以跳着切 步长 step
- print(s[1:9:2])
- # 输出: 2468
- print(s[3:8:-1]) #反着切
- # 输出不了 反着 从 8 无法切到 3
- print(s[-1:-6:-2])
- # 输出: 086
首字母大写; 每个单词首字母大写
- s="xu yang zhen de chou!"
- s1=s.capitalize() # 首字母大写
- print(s1)
- s2=s.title() # 标题 , 单词首字母大写 除英文字母之外的其它字符全都算分割符 #将字符串分割成两个甚至多个, 分开之后的所有首字母都大写
- print(s2)
- n="xu y>a@ng zhe=n de cho,u!"
- n1=s.title()
- print(n1)
- # 输出: Xu Y>A@Ng Zhe=N De Cho,U!
全部转换成大写 (.upper() ) 字母; 全部转换成小写 (.lower() ) 字母; 大小写转换(.swapcase())
- name = "taiBai"
- s1 = name.upper() # 转换成大写字母
- print(s1)
- s2 = name.lower() #转换成小写字母
- print(s2)
- # 用户登录
- while 1:
- verify_code ="Alex"
- verify_code_uesr=input("请输入验证码:")
- if verify_code_uesr==verify_code:
- print("验证成功")
- break
- else:
- print('验证失败')
如果出现用户大小写输入有误 验证不成功, 那么改成大小写输入都能够验证成功
- while 1:
- verify_code ="alex"
- verify_code_uesr=input("请输入验证码:")
- if verify_code_uesr.upper()==verify_code.upper():
- print("验证成功")
- break
- else:
- print('验证失败')
- s = "alexAndEggonAndRiTian"
- s1 = s.swapcase() # 大小写转换
- print(s1)
- s2 = "БB?" # 俄美德
- print(s2)
- print(s2.lower())
- print(s2.casefold())
居中 (.center) ; \t 一个 TAB ;
- s = "alex"
- s1 = s.center(15, "*") # 拉长成 10 个字符. 由 * 进行填充
- print(s1)
- # 输出 ******alex*****
- s = "al\twusir" #/t TAB
- s1 = s.expandtabs()
- print(s)
- print(s1)
- # 输出
- al wusir
- al wusir
去除两边空格 (.strip) (.lstrip) 去除左边空格 (.rstrip)去除右边空格
- s="alxe, xueyang, sylar, boss, 熊大"
- s1=s.strip()
- print(s1)
- s2=s.lstrip()
- print(s2)
- s3=s.rstrip()
- print(s3)
字符串切割(.split) 切割的结果是列表
如果原字符跟用来切割的字符一样得到两个空字符
在开头结尾如果出现用于切割的字符一定会得到空字符
- s = "李嘉诚_王健林_马云_刘东强_alex"
- lst = s.split("_") # 字符串切割. 切割的结果是列表
- print(lst[0])
- print(lst[1])
- print(lst[2])
- print(lst[3])
- print(lst[4])
输入:
李嘉诚
王健林
马云
刘东强
- alex
- s = "李嘉诚王健林麻花藤周杰伦"
- lst = s.split("李嘉诚王健林麻花藤周杰伦") # 如果原字符串和刀一样. 得到的是两个空字符串
- lst = s.split("马云") # 如果不存在. 得到的是原字符串
- lst = s.split("") # empty separator 报错
- print(lst)
- s.split()
- s = "a_b_c_d_e_f_g"
- lst = s.split("_", 2) # 第二个参数. 切的次数
- print(lst)
- s = "周杰伦_周润发_周星驰_周星星"
- lst = s.split("周杰伦")
- print(lst)
- lst = s.split("周星星")
- print(lst)
- # 在开头和结尾如果出现了你的刀. 一定会出现空字符串
字符串替换
- # 字符串替换
- s8 = "sylar_alex_taibai_wusir_eggon"
- ret = s8.replace('alex', '金角大王') # 把 alex 替换成金角大王
- print(s8) # sylar_alex_taibai_wusir_eggon 切记, 字符串是不可变对象. 所有操作都是产生新字符串返回
- print(ret) # sylar_金角大王_taibai_wusir_eggon
格式化输出 (.format())
- # %s 字符串
- # %d 数字站位
- print("%s 很帅, 你信吗?" % "我")
- print("{}很帅, {}信吗?, 不信给你 {} 钱".format("旭哥", "我们", 100))
- print("{1}很帅, {0}信吗?, 不信给你 {2} 钱".format("旭哥", "我们", 100))
- print("{person1}很帅, {person2}信吗?, 不信给你 {money} 钱".format(person1="旭哥", person2="我们", money=100))
数数 (count) : 计算字符在字符串中出现的次数, 如果没有出现返回 0
查找(find) : 如果你要查找的内容不存在, 返回 -1, 如果存在返回索引
求索引(index): 如果找不到报错
- #count 数数
- s = "alex wusir taibai 女神"
- print(s.count("ai")) # 计算 ai 在原字符串中出现的次数 如果没出现返回 0
- # find 查找
- s = "明天周末了. 你们打算干什么去?"
- print(s.find("了")) # 如果你要查找的内容不存在. 返回 - 1, 如果存在返回索引
- #index 求索引
- s = "下周我们要考试了. 你们慌不慌"
- print(s.index("你大爷")) # 如果找不到报错
条件判断 判断字符是不是以 XXX 开头(,startswith("") 或者以 XXX 结尾(.endswith(""))
- s = "写个啥呢? 哈哈哈"
- # 判断字符串是否以 xxx 开头
- print(s.startswith("写个啥呢"))
- # 判断字符串是否以 xxx 结尾
- print(s.endswith("哈哈哈"))
判断是否是字母和数字组成
- s = "abcdefg"
- print(s.isalnum()) # 数字和字母
- print(s.isdigit()) # 数字
- print(s.isalpha()) # 字母
- # 输出
- True
- False
- True
求字符串长度 len("")
- s = "abcde"
- ret = len(s) # 内置函数
- print(ret)
- print("你好")
- # 练习, 计算在字符串 "I am sylar, I'm 14 years old, I have 2 dogs!" 出现过多少个数字. 个位为单位
- s="I am sylar, I'm 14 years old, I have 2 dogs!"
- count=0
- for w in s :
- if w.isdigit():
- count=count+1
- print(count)
来源: http://www.bubuko.com/infodetail-2699634.html