int,bool,str,以及str的操作
python数据类型
int---数字类型
bool---布尔值
str---字符串类型
一,python基本数据类型
1,int===>整数,主要用来进行数学运算
2,str===>字符串,可以保存少量数据并进行相应的操作
3,bool===>判断真假,True,False
4,list===>存储大量数据,用[ ]表示
5,tuple===>元组,不可以发生改变,用( )表示
6,dict===>字典,保存键值对,一样可以保存大量数据
7,set===>集合,保存大量数据,不可以重复,其实就是不保存value的dict
二,整数
bit_length():计算证书在内存中占用的二进制码的长度
三,布尔值(bool)
取值只有True和False,bool值没有操作
转换问题
str => int(str)
int => 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值转换成相应的值
四,字符串(str)
把字符串练成串,在python中用,"," ","""引起来的内容被称为字符串.
4.1切片和索引
1,索引,索引就是下标,切记,下标从0开始
s = "python最牛逼"
print(s[0]) # p
print(s[1]) # y
print(s[9]) # 超出范围会报错
print(s[-1]) # 表示倒数第一
2,切片,我们可以使用下标来截取部分字符串的内容
语法:str[sart: end]
规则:顾头不顾腚,从start开始截取,截取到end位置,但不包括end
s = "python最牛逼" print(s[0:3]) # pyt print(s[0:8:2]) # 规定步长截取,pto最 print(s[-1:-4:-1]) # 从右往左取,逼牛最 print(s[:]) # 输出全部
字符串的相关操作
切记,字符串是不可变的对象,所以任何操作对原字符串是不会影响的
大小写转换
s = "python最牛逼" print(s.capitalize()) # Python最牛逼,首字母转换成大写 print(s.lower()) # python最牛逼, 全部小写 print(s.upper()) # PYTHON最牛逼, 全部大写 # 检验用户输入的验证码是否合法 verify_code = "abDc" user_verity = input("请输入验证码>>") if verify_code.lower() == user_verity.lower(): print("验证成功") else: print("验证失败") s = "python最牛逼kkk" print(s.swapcase()) # PYTHON最牛逼,大写转换成小写,小写转换成大写 # 不常用 print(s.casefold()) # 转换成小写,和lower的区别:lower()对某些字符支持不够好.casefold()对所有字母都是有效的 # 每个被特殊字符隔开的字母首字母大写 print(s.title()) # Python最牛逼Kkk,中文也算特殊字符
切来切去
s = " 周杰伦 " print(s.center(11, "*")) # **** 周杰伦 **** , 居中操作,后面可添加填充物. print(s.strip()) # 去除两边空格 print(s.lstrip()) # 去除左边空格 print(s.rstrip()) # 去除右边空格 # 应用,模拟用户登陆,忽略用户输入的空格 username = input("Name>>") passwd = input(">>") if username.strip() == 'chenrun' and passwd.strip() == '123': print("登陆成功") else: print("登陆失败") s = 'abcdefgabc' print(s.strip("abc")) # defg 可以指定去除参数 a = 'aylar_alex_taibai_eggon' print(a.replace('alex', 'chenrun')) # aylar_chenrun_taibai_eggon , 替换指定元素 print(a.replace('a', '@', 2)) # 可以添加参数,指定替换次数.@yl@r_alex_taibai_eggon print(a.split("_")) # ['aylar', 'alex', 'taibai', 'eggon'], 指定分割参数 # !!!注意 print(a.split("a")) # ['', 'yl', 'r_', 'lex_t', 'ib', 'i_eggon'], 如果分割的字符在 #最右边或者最左边,一定会切割出来一个空的字符 s1 = '''诗人 学者 感叹号 渣渣''' print(s1.split('\n')) # ['诗人', '学者', '感叹号', '渣渣']
格式化输出
s = "我叫%s,今年%d岁了,我喜欢%s" %("陈润", 18, "周杰伦") print(s) s1 = "我叫{},今年{}岁,我喜欢{}".format("陈润", 18, "周杰伦") print(s1) s2 = "我叫{name},今年{age}岁,我喜欢{singer}".format(singer="周杰伦", age=18, name="陈润") print(s2) # 我叫陈润,今年18岁,我喜欢周杰伦
name = 'chenrun' age = 12 print(f"my name is {name},i am {age}") # my name is chenrun,i am 12
查找
s = "我叫sylar,我喜欢python,java,c等语言" print(s.startswith("我")) # 是否以我开头,返回bool print(s.endswith("言")) # 是否以言结尾,返回bool print(s.count(",")) # 统计,出现的次数 print(s.find("python")) # 查找python的位置 print(s.find("c", 4, 10)) # 查找c的位置,规定范围内,查找不到返回-1 print(s.index("python")) # 查找python的位置,查找不到程序报错
条件判断
s = "123.16" print(s.isalnum()) # 判断是否是数字或者是字母 print(s.isalnum()) # 判断是否是数字 print(s.isalpha()) # 判断是否是字母 print(s.isdigit()) # 判断是否是数字,不包括小数 print(s.isnumeric()) # 这个牛逼,汉字的数字也能识别 # 练习:用算法判断一个字符串是否是小数 s = "-123.12" s = s.replace("-", "") if s.isdigit(): print("是个整数") else: if s.count(".") == 1 and not s.startswith(".") and not s.endswith(): print("是个小数") else: print("不是小数")
计算字符串的长度
s = "你是我的眼,我也是a" ret = len(s) print(ret)
注意:len()是python的内置函数,所以访问方式也不一样
迭代
# 使用while和for循环分别打印字符串s="asdfer"中每个元素。 s = 'asdfer' index = 0 while index < len(s): print(s[index]) index += 1 for item in s: print(item)