while循环:
while True:
条件语句。。。。。。。
关于break和continue,break:跳出当前的循环
contnue:跳出当次循环,继续下一次循环
一、数据类型
变量:用来记录状态的变化
基础数据类型:数字 字符串 列表 元组 字典
1、数字
十进制:10
八进制数字:oct(10) 将10转化为八进制数字输出
十六进制:hex(10)
2、布尔值
注意:非0数字自带的布尔值都是true
非空字符串自带的布尔值都是true
3、字符串
字符串的内置方法:
传参两种方法:
name='songxiaonande' age=20 print('姓名:%s'% name )
print('{0}{1}'.format('song','xiao')) print('{name}'.format(name='songxiaona'))
①针对字符串的单个字符
1 print(name[3]) #打印指定下标对应的字符 2 print(name.count('0'))#对要查找的字符计数 3 print(name.count('b',0,3))????????????
查找某字符的下标:
1 name='songxiaonan' 2 print(name.find('o')) 3 print(name.index('a')
find和index的区别:
find如果查找到指定的字符的下标,则返回值为-1,程序继续执行
index如果查找不到指定字符的下标,则报错,不再执行程序
②字母大小写
print(name.capitalize()) #首字母大写 print(name.lower()) #将所有字母小写 print(name.upper()) #将所有字母大写 print(name.islower())#判断是否所有字母都是小写 # print(name.isupper())#是否全都是大写
③指定字符宽度,输出格式
print(name.center(20,'*')) #指定宽度,并将内容居中,剩余字符用‘*’填充 print(name.ljust(40,'_')) #左对齐 print(name.rjust(40,'+')) #右对齐 #以上三行代码的输出: #*******abc23******** #abc23___________________________________ #+++++++++++++++++++++++++++++++++++abc23
④对字符串进行判断
print(name.isalpha())#是否全是字母 print(name.isalnum())#是否包含字母数字 print(name.isdigit()) #是否是整型数字 print(name.isnumeric())#是否是数字 print(name.isidentifier())#是否包含关键字 print(name.isspace())#是否是空格 print(name.istitle())#是否是标题(每个单词首字母大写) print(name.endswith('a')) #字符串以什么结尾
⑥字符串的切片
字符串也可以看成是一种list,每个元素是一个字符,只是切片的结果也是一个字符串
print(name.zfill(20))#指定字符宽度是20,字符号右对齐,昨天中0 相当于rjust(20,'0') print(name.rjust(20,'0')) print(name[0:3])#从下标为0的字符开始到下标为3的字符,但是不包含下标为3的字符 顾头不顾尾 print(name[0:])#从下标为0的字符开始到最后 print(name[:])#全切 print(name[0:-1])#-1代表最后一个字符 print(name[0::2]) # 2代表不长 每2个进行取值 print(len(name))# 打印字符串的长度
⑦maketrans 创建字符映射转换表
name='songxiaonan' table=str.maketrans('song','1234')#前创建一个映射表(翻译表),‘song’要翻译的字符串 ‘1234’代表翻译成啥 print(name.translate(table))
⑧strip() 删除指定字符
1 name=' 1abc 宋231 ' 2 print(name.lstrip())#去左边(开头)的空格 3 print(name.rstrip())#去右边(结尾)的空格 4 print(name.strip())#去除开头和结尾的空格 5 6 name1='12345681' 7 print(name1.strip('13')) # 只要开头或者结尾中有1或者3就删除掉
⑨指定字符串中空格的长度
name1="song f" print(name1.expandtabs(10))#指定空格的长度
print(round(3.5)) 四舍五入
四、列表
定义列表 list=[] 空列表
list=['song','xiao','nan',22,1]
1、增(追加和插入)
students=['songxiaonan','yanglin','yangmi','huojianua','linxinru'] students.append('111111111111111')#追加 students.insert(1,'99999999999999999') #插入 注意:同时只能插入一个数据 1代表在下标为1的字符之前插入数据
2、删(3中方式)
students.remove('yanglin')# 直接删除指定字符 del students[0]#根据下标删除 students.pop(1)# 根据下标删除,删除并返回值 如果不指定下标,则默认删除最后一个值
3、改
students[1]='00000000000000000'
4、查
①切片(同字符串的切片)
②查找指定字符的下标 index
如果列表中有两个相同的字符串,通过index查找只会返回查找到的第一个字符的下标
#如果一个列表name里面有两个'xixi',查找第二个xixi (这种查找无意义) name=['0',1,'haha',3,'xixi',99,'xixi'] num1=name.index('xixi') num2=num1+name[num1+1:].index('xixi')+1 print(num2)
5、复制
students3=students.copy() students4=students print(students3) print(students4) #注意:复制之后的变量有一个自己的内存地址 students4的内存地址和students的内存地址是一样的,相当于一个别名 print(id(students),id(students3)) print(id(students),id(students4)) #输出结果:13835144 13854536 # 13835144 13835144 #如果此时对students做操作,则students3不变,但是students4会跟着students变化
6、其他用法
#计数 students.count('huojianua') #合并两个列表 students2=['77','88'] students.extend(students2) print(students) #反转 students.reverse() #排序 按照ASCTT码进行排序 students.sort()
小知识点:
1、打印列表中的值的时候,输入编号:enumerate
for i,ele in enumerate(shop_item): print(i,ele[0],ele[1])
2、使打印出来的值,高亮
students=['songxiaonan','yanglin','yangmi','huojianua','linxinru']
print('