一、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\twusir"
# 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)
# 字符串不可变. 每次操作都会返回给你新的字符串