一、python基本数据类型
1. int ==> 整数. 主要用来进行数学运算
2. str ==> 字符串, 可以保存少量数据并进行相应的操作
3. bool==>判断真假, True, False
4. list==> 存储大量数据.用[ ]表示
5. tuple=> 元组, 不可以发生改变 用( )表示
6. dict==> 字典, 保存键值对, 一样可以保存大量数据
7. set==> 集合, 保存大量数据. 不可以重复. 其实就是不保存value的dict
二、整数 int 主要是对bit_length()的写入
在python3中所有的整数都是int类型. 但在python2中如果数据量比较大. 会使用long类型. 在python3中不存在long类型
整数可以进行的操作: bit_length(). 计算整数在内存中占用的二进制码的长度
a = 1 # 1 不要和编码混一起 print(a.bit_length()) # 求的是有效长度 a = 3 # 1 10 11 + 1 = 100 print(a.bit_length()) a = 4 print(a.bit_length())
二 布尔值 bool str int和bool的转换问题 转换值(被转换的值)
取值只有True, False. bool值没有操作. 转换问题:
str => int
int(str)
int => str
str(int)
int => bool
bool(int). 0是False 非0是True
bool=>int int(bool) True是1, False是0
str => bool bool(str) 空字符串是False, 不空是True
bool => str str(bool) 把bool值转换成相应的"值" 取值只有True, False. bool值没有操作. 转换问题:
bool转int # int(bool) True=>int => 1 # False => int => 0 # print(int(False)) # 1 # 字符串转换成bool bool(str) # 空字符串是False. 非空字符串是True # a = "abcd" # print(bool(a)) # True # a = "" # print(bool(a)) # False # b = "" # 空字符串 # a = None # 真空 False # print(bool(b)) # False # print(bool(a)) # False # 特点: 空:False .非空:True
str => int int(str) int => str str(int)
int => bool bool(int). 0是False 非0是True bool=>int int(bool) True是1, False是0
str => bool bool(str) 空字符串是False, 不空是True bool => str str(bool) 把bool值转换成相应的"值"
while True: # name = input("输入用户信息:") # if not name: # break # else: # print("新员工信息:"+name)
四 字符串
4.1切片和索引
s = "12334"
语法 print(s[0:3:1])前两位为截取值 后一位为步数,单数子为一个,两数字为一截,
# 0 1 2 3 45 6 7 8 # s = "今天很萌.明天也萌" # 字符串中的第几个字符 # 索引语法 字符串[索引] 索引从0开始 # print(s[3]) # print(s[5]) # print(s[0]) # print(s[-1]) # 倒数第一个 # print(s[-5]) # . 倒数第5个 # 正向 从 0 开始 # 反向 从-1 开始 # 切片 # 0 1 2 3 4 56 7 8 9 101112 13 14 # s = "我想吃切糕.切糕没有芝麻好吃!" # print(s[2:5]) # 切片. 顾头不顾腚. 前面的能取到. 后面的取不到 # print(s[4:1]) # 给两个参数. 默认向右切 # print(s[5:8]) # .切糕 #print(s[:7]) # 从头开始切 # print(s[10:]) # 切到最后 # print(s[:]) # 全都切出来 # print(s[5:99]) # 如果右边的值. 超过了字符串长度. 切到最后 # print(s[-5:]) # 啥也不写. 到最后 # 可以跳着切 步长 s = "abcdef,ghijklmn" # print(s[0:7:2]) # aceg 每2个切一个 # print(s[1:5:3]) # be # print(s[-8:-2: 2]) # 倒数的也可以跳着切 # print(s[-1:-6:-1])# 反着取. # 切片: 顾头不顾尾
4.2字符相关操作
capitalize 首字母大写
lower 小写
upper 大写
swpapcase 大小写互换
casefold 字母小写 涵盖广
title 每个单词首字母大写
#s = "alex and wusir gaoji" # s1 = s.capitalize() # 首字母大写 , # print(s) # 原字符串没有变化 # print(s1) # s2 = s.title() # 标题, 每个单词首字母大写 , 特殊字符, 中文在这里算特殊字符 # print(s2) # name = "taiBai" # s1 = name.upper() # 转换成大写字母 # print(s1) # s2 = name.lower() # print(s2) # verify_code = "FaD3" # verify_code_user = input("请输入验证码:") # if verify_code.upper() == verify_code_user.upper(): # print("验证码成功") # else: # print("验证失败") # s = "alexAndEggonAndRiTian" # s1 = s.swapcase() # 大小写转换 # print(s1) # s2 = "БBß" # 俄美德 # print(s2) # print(s2.lower()) # print(s2.casefold())
2切来切去
cent 居中
strip去空格可加lstrip和rstrip
更改tab的长度 expandtabs
replace 字替换符
split 字符切割 切割完后行成列表
s = "alex" # s1 = s.center(15, "*") # 拉长成10个字符. 由*进行填充 # print(s1) # s = "al wusir" # s1 = s.expandtabs() # print(s) # print(s1) # s = " 麻花 藤. 张x忠, 刘华强 " # s1 = s.strip() # 去掉左右两边的空格, 必须要记住 # print(s1) # # s2 = s.lstrip() # 去掉左边的空格 # s3 = s.rstrip() # 去掉右边的空格 # print(s2) # print(s3) # username = input("用户名:").strip() # password = input("密码:").strip() # if username == 'alex' and password == '123': # print("登录成功") # else: # print("失败") # s = "麻花藤哈哈哈哈麻花藤" # print(s.strip("麻花")) # print(s) # s = "alex,wusir,taibai,eggon" # s1 = s.replace(",", "喜欢") # 替换 # print(s1) # # s = "我想吃切糕.切糕没有芝麻好吃!" # s1 = s.replace(".", "") # print(s1) # 切割 # s = "李嘉诚_王健林_马云_刘东强_alex" # lst = s.split("_") # 字符串切割. 切割的结果是列表 # print(lst[0]) # print(lst[1]) # print(lst[2]) # print(lst[3]) # print(lst[4]) # 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) # # 在开头和结尾如果出现了你的刀. 一定会出现空字符串
3格式化输出
format 和%s
格式化输出 # %s 字符串 # %d 数字站位 # print("%s很帅, 你信吗?" % "我") # print("{}很帅, {}信吗?, 不信给你{}钱".format("旭哥", "我们", 100)) # print("{1}很帅, {0}信吗?, 不信给你{2}钱".format("旭哥", "我们", 100)) # print("{person1}很帅, {person2}信吗?, 不信给你{money}钱".format(person1="旭哥", person2="我们", money=100))
4查找
startwith 是否以 开头
endwith 是否以 结尾
count 查找 出现的次数
find 出现的位置
index 出现的位置
# count 数数 # s = "alex wusir taibai 女神" # print(s.count("ai")) # 计算ai在原字符串中出现的次数 如果没出现返回0 # # find 查找 # s = "明天周末了.你们打算干什么去?" # print(s.find("了")) # 如果你要查找的内容不存在. 返回-1, 如果存在返回索引 # index 求索引 # s = "下周我们要考试了. 你们慌不慌" # print(s.index("你大爷")) # 如果找不到报错
5条件判断
isalnum 字母和数字组成
isalpha 字母组成
isdigit 数字组成
# 条件判断 # s = "写个啥呢? 哈哈哈" # # # 判断字符串是否以xxx开头 # print(s.startswith("写个啥呢")) # # 判断字符串是否以xxx结尾 # print(s.endswith("哈哈哈")) # 是否是字母和数字组成 # s = "abcdefg" # print(s.isalnum()) # 数字和字母 # print(s.isdigit()) # 数字 # print(s.isalpha()) # 字母 # s = "壹贰" # print(s.isnumeric()) # 几乎所有数字 # print(s.isdigit()) # 阿拉伯数字 # 判断字符串是否是小数 # 依据:1. 有小数点. 一个小数点
6计算字符串的长度
len 内置的函数使用方法和print一样
求字符串的长度 # s = "abcde" # ret = len(s) # 内置函数 # print(ret) # print("你好") # s = "吃喝拉撒睡不管有多长" # for w in s: # print(w) # index = 0 # while index < len(s): # print(s[index]) # index = index + 1 # 练习, 计算在字符串"I am sylar, I'm 14 years old, I have 2 dogs!" 出现过多少个数字. 个位为单位
7迭代
for in
我们可以使用for循环来便利(获取)字符串中的每一个字符
语法:
for 变量 in 可迭代对象:
pass
可迭代对象: 可以一个一个往外取值的对象
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) # 字符串不可变. 每次操作都会返回给你新的字符串