字符串
1.基本数据类型概况
1.int 整数
2.str 字符串
3.bool 布尔值
4.list >= [] 列表,一般存放大量数据,举例:["门神xxxx","元素","人名xxx"] 取值的话直接按照位置取s[0], s[1] 5.tuple >= () 元组, 只读列表,只能看啥也不能干.(元素,元素)
6.dict >= {} 字典.{"王力宏","sho","等等"}
7.set >= () 集合,不重复 .{"王力宏","sho","等等"}
8.bytes 一堆字节,最小数据单元
2.int类型的相关操作
数字没办法执行其他操作,操作只有 +,-,*,/,//,%,**
8bit = 1byte
bit_length() 显示二进制长度
a = 5 # 1+1+1+1+1=101
print(a.bit_length())
b = 17
print(b.bit_length())
c = 1 #1变成二进制是1
print(c.bit_length())
d = 2 #2变成二进制是10,逢二进一
print(d.bit_length())
3.bool类型的操作,基本类型转换的问题
bool类型没有操作,
字符串 >= 数字 int()
数字 >= 字符串 str()
x >= y类型 y(x)
a = 10
print(type(a)) #<class 'int'>
b = str(a)
print(type(b)) # <class 'str'>
结论一:想把XXX数据转化成yy类型的数据.yy()
把数字转化成bool
a = 10
print(bool(a)) #True
print(bool(1)) #True
print(bool(0)) #false
print(bool(-1)) #True
0是false,非零是True
print(bool("哈哈")) # True
print(bool(" ")) # 空格是True
print(bool("")) # 空字符串是false
结论二:能够表示false的数据:0,"",[],{},set(),tuple(),None,false(空字符串表示false,所有的空可以表示false)
print(bool([])) # False 空列表
print(bool({})) # False 空字典
print(bool(set())) # False 空集合
None 空,真空
print(bool(None)) #false
# while 1: # while True: # 底层一定会有 True => 1的过程
# print("还我钱")
4.str 认识字符串(重点,多)
字符:单一的文字符号
字符按照固定的顺序连成串
字符串:被''或者""'或者'''或者"""括起来的内容就是字符串
索引: 编号,顺序 从0开始
索引使用[下标]获取数据,索引还可以到这数,起始位置 -1
s = "今天中午吃胡辣汤"
# 索引使用[下标]获取数据
print(s[3]) #午
print(s[2]) #中
print(s[-5]) #午
print(s[-3]) #胡
print(s[-6]) #中
切片 s[start:end:step] start:开始 end:结束,取不到 step:步长,控制方向,每xxx个取一个(+代表从左往右取值,-代表从右往左取值)
切片:从一个字符串中截取出一部分字符串
[strat:end] 顾头不顾尾,end取不到,默认的是从左往右切.
s = "中间的,你们为什么不说话.难受"
print(s[3:7]) # ,你们为
print(s[5:9]) # 们为什么
print(s[-3: -7]) # 切不到东西, 默认是从左往右切
print(s[-7: -3]) # 么不说话
print(s[:6]) # 从头开始切
print(s[6:]) # 切到末尾
print(s[:]) # 从开始到结束
[start:end;step] 步长step:默认是1,每xxx个取一个,默认是从左往右切
s = "abcdefghiklmn"
print(s[::2]) #acegiln
print(s[1:5:3]) #be
print(s[7:3]) # 默认步长1 从左往右切
print(s[7:3:-1]) # 从右往左切,顾头不顾尾,取第7位不取第3位,反过来取值
# step可以控制方向. 如果step是正数. 从左往右切. 如果是负数 . 从右往左切
print(s[-1:-8: -2]) # nljh
step可以控制方向,如果step是证书,从左往右切,如果是负数,从右往左切
s = "分出你我的什么队不是迅达看得开科技联合"
print(s[3:9]) #我的什么队不
print(s[-2:-7:-2]) #联科得
print(s[3::-3]) #我分
print(s[::-1]) #合联技科开得看达迅是不队么什的我你出分
判断是否是回文
s = "黄山落叶松叶落山黄"
s2 = s[::-1] # 翻过来
if s == s2:
print("是回文")
else:
print("不是回文")
一大波操作
字符串是不可变的类型,不论如何操作,对原来的字符串是不会有任何改变
s1 capitalize() 把首字母变成大写,返回给你一个新的字符串
s = "qwertuio"
s1 = s.capitalize()
print(s1)
title() 标题,把字符串中每个单词的首字母大写
s = "qwertuio"
s1 = s.title()
print(s1)
1. upper() 转换成大写,忽略大小写(主要是用在验证码)
s = "alex sb dsb bigsb"
s1 = s.upper()
print(s1)
while True:
content = input("请输入你要说的话 输入Q退出:")
if content.upper() == "Q": # 当需要忽略大小写的时候
break
print("你想对打野说", content)
# 验证码
verifyCode = "aEmn"
veri = input("请输入你的验证码(%s)" % verifyCode)
if veri.upper() == verifyCode.upper(): # 忽略掉用户输入的大小写
print("验证码是正确的")
else:
print("验证码错误")
lower() 转换成大写,忽略大小写(主要是用在验证码)
lower() 和upper()相反center() 中间,居中,括号里面的是长度
s = "alex"
s6 = s.center(10, "*") # 长度, 用_填充
print(s6)
strip() 去掉左右两端的空白(空格, \t, \n),所有用户输入的内容都要去空白,中间的内容不会动 \t就是tab, \n是换行
s = "\n\nalex is sb "
print(s)
s1 = s.strip() # 去掉左右两端的空白(空格, \t, \n), 中间的内容不会动
print(s1)
结果:alex is sb
uname = input("请输入你用户名:").strip() # 干掉用户的空格
upws = input("请输入你的密码:").strip() # 干掉用户的空格
if uname =="alex" and upws == "123":
print("登录成功")
else:
print("登录失败")
s = "sbalexsbwusirsb"
print(s.strip("sb")) # 去掉左右两端的sb
2.字符串的替换
replace(old,new) 把old换成new
s = " good alex good wusir good 大虾 good 胡辣汤 "
s8 = s.replace("good", "sb") # 把s中的good替换成sb
print(s8)
s9 = s.replace(" ", "")
print(s9)
s10 = s.replace("good", "sb", 2) # 字符串替换2次
print(s10)
字符串的切割 split 切出来的结果互放到列表中,刀如果把头切割,一定有空字符串
s = "alex 昨天给我们涨工资了? 不可能"
lst = s.split("alex") # 切出来的结果会放在列表中, 刀如果把头了. 一定会产生空字符串
print(lst)
#['', ' 昨天给我们涨工资了? 不可能']
s = "不知道你这个是什么,你在说一次"
s1 = s.split("不知道")
print(s1)
#['', '你这个是什么,你在说一次']
startswith()判断是否已什么开头,endswith()判断是否已什么结尾.
name = input("请输入你的名字:") # 张开
if name.startswith("张"):
print("领钱")
else:
print("不领钱")
count()计数
s = "alex 昨天给我们涨工资了? 不可能"
lst = s.count("x") # 切出来的结果会放在列表中, 刀如果把头了. 一定会产生空字符串
print(lst)
结果:主要记住这个数字出现的次数
find()查找,如果存在,返回索引,如果不存在返回-1
s = "滋滋冒油的猪蹄子"
print(s.find("牛")) # 用这个
结果:-1
index()如果找到了返回索引,找不到,报错
条件判断
isalpha() 是否有基本的文字组成,是否是有字母组成(包括中文)
isdigit() 判断时候是数字组成 digit 数字 %d
len() 字符串长度,内置函数
s = "6690701704707"
print(len(s)) #13
# 用while循环. 获取到每一个字符
i = 0 # 索引
while i < len(s):
print(s[i])
i += 1
for变量in 可迭代的对象: 无法看到字符的索引
循环体(break,countinue)
for c in s: # c: charactor(字符) s: string
print(c)