for循环
'''
什么是for循环
为什么有for循环
理论上while都可以,for循环在循环取值时比while更简洁
列表 字符串
如何用for循环
语法
for 变量名 in 可迭代对象: #可迭代对象可以是列表、字典、字符串、元组、集合
代码1
...
'''
#案例1 列表循环取值
#简单版
for x in ['aaa','bbb','ccc']:
print(x)
#复杂版
l=['aaa','bbb','ccc']
i=0
while i<3:
print(l[i])
i+=1
#案例2 字典循环取值
#简单版
dic={'k1':111,'k2':222,'k3':333}
for k in dic:
print(k,dic[k])
#复杂版-非常麻烦
#案例3 字符串循环取值
msg='you can you up no can no bb'
for x in msg:
print(x)
#总结:都是循环,while循环条件循环,循环次数取决于条件
# for循环 迭代循环 循环次数取决于 in后包含值的个数
for x in [1,2,3]:
print("23333")
#for+range 控制循环次数
for x in range(3):
print("xixi")
range(1,9)#开头 结尾 1 2 3 4 5 6 7 8
range(1,9,2)#开头 结尾 步长 1 3 5 7 顾头不顾尾
username='egen'
password='123'
#for +else
#for +break
for i in range(3):
inp_name=input("your username:")
inp_pwd=input("your password")
if inp_name==username and inp_pwd==password:
print("登录成功")
break
else:
print("too many times")
#range 补充
#1.可以按索引取值,但不推荐
l=['aaa','bbb','ccc']
for i in range(len(l)):
print(i,l[i])
for x in l:
print(x)
#python 2 里面 range直接生成列表-一个筐和10个鸡蛋
#python 3 里空间优化-一个可以下十个鸡蛋的母鸡-更省空间
#for+continue
for i in range(6):
if i==4:continue
print(i)
print('hello','world','xixi')
print('hello')#print 自带换行 end=
print('world\n')
print('xixi')
print('hello',end='*')
#for 循环嵌套
for i in range(3):
print("outer")
for i in range(5):
print('iner')
#终止for循环只有break
数字类型
#作用
#定义
age=10
age=int(10)#等价于
#名字(参数)
# x=int(10)
# res=print('xxxx')#None 没有产品
# name=input()
#类型转换
res=int('10111')#纯数字字符串转为int
print(res,type(res))
#了解 进制转换
print(bin(11))#0b代表2进制
print(oct(11))#0o代表8进制
print(hex(11))#0x代表16进制
#转10进制
print(int('0b1011',2))
print(int('0o13',8))
print(int('0xb',16))
#使用
#二、float类型
#作用
#定义
salary=3.1#salary=floar(3.1)
#类型转换
res=float('3.1')
print(res,type(res))
#使用
#虚数
x=10+2j
print(type(x))
#位运算-没说
字符串类型
#作用
#定义
mag='hello' #mad=str('msg)
#类型转换 str可以把任意类型转换为字符串
res=str({'a':1})
print(res,type(res))
优先掌握
## 按索引取值 正向 反向 : 只能取
msg='hello word'
print(msg[0])
print(msg[5])
print(msg[-1])
#msg=[0]='H' #不能修改 会报错
## 切片 顾头不顾尾 步长 从大字符串中拷贝出一个子字符串
res=msg[0:5]
print(res,msg)
res=msg[0:5:2]#步长
print(res)
res=msg[5:0:-1]#反向步长可以取到5 取不到0 5是出发点
print(res)
res=msg[::-1]#默认开头到结尾
print(res)
## 长度 len
print(len(res))
## 成员运算 in 和 not in 判断子字符串是否存在于大字符串中
print('xixi' in 'xixihello')
print(not 'xixi' in 'xixihello ')
## 移除空白 strip
msg=' egen '
res=msg.strip()#默认去掉空白 不改变原值
print(msg)
print(res)
msg='**********hh**h*********'
res=msg.strip('*')
print(res)#只去两边,不去中间
msg='**/*=-**egen *=()****'
print(msg.strip('*/-=()'))
inp_name=input('your name').strip()#应用
inp_pwd=input('your password').strip()
if inp_name=='egen' and inp_pwd=='123':
print('log in ')
else:
print('wrong')
## 切分 split:把一个字符串按照某个分隔符进行划分
info='egen:18:male'
res=info.split(':')#默认分隔符为空格
print(res)
res=info.split(':',1)#指定切分次数
print(res)
## 循环
for x in 'xixihello':
print(x)
需要掌握
##lstrip rstrip 去除左边 去除右边
print('****adf***'.lstrip("*"))
##lower upper 全大写 全小写
print('xAAA'.lower())
print('xAA'.upper())
## startwith endwith 是否开头 结尾
print('xixi aa aa'.startswith('xixi'))
print("xixi aaa aa aa".endswith('aa'))
## format
## split rsplit 将字符串切成列表
info='egen:18:male'
print(info.split(':',1))#从左往右切割
print(info.rsplit(":",1))#从右向左气切割
## join 将元素全为字符串的列表拼接成字符串
l=['egen','18','male']
res=":".join(l)
print(res)
##replace
msg='you can you up no can no bb'
print(msg.replace('you','YOU'))
print(msg.replace('you','YOU',1))
##isdigit 判断是否为纯数字
print('123'.isdigit())
print('1.23'.isdigit())#false
age=input('your age is').strip()
if age.isdigit():
age=int(age)
if age>18:
print("大了")
elif age<18:
print("小了")
else:
print("对了")
else:
print("必须输入数字")
了解
##find rfind index rindex count
msg='hello world'
print(msg.find('e'))
print(msg.find('world'))#找不到时返回-1
print(msg.index('e'))#找不到时崩溃
print(msg.index('world'))
## center ljust rjust zfill
print('egen'.center(50,"*"))#不足用*补足,居中
print('egen'.ljust(50,"*"))#不足用*补足,居中
print('egen'.zfill(10))
## expandtabs
msg='hello\tworld'
print(msg)
print(msg.expandtabs(5))#设定制表符长度为5
##capitalize swapcase title 首字母大写 大小写反转 每个单词首字母大写
## is系列 islower isupper isdigit istitle isalnum isspace isidentifer
print('abc123'.isalnum)#字母或数字
print('abdf'.isalpha())#是字母构成
print(' '.isspace())#全为空格
print('adfd_124'.isidentifier)#判断是否为合法变量名
#数字只能识别前两种
num1=b'4'#bytes
num2=u'4'#unicode python3中无需加u就是unicode
num3='四'#中文数字
num4='Ⅳ'#罗马数字
print(num1.isdigit())
print(num2.isdigit())
print(num3.isdigit())
print(num4.isdigit())
#isnumeric都能识别,但似乎这里 报错了
# print(num1.isnumeric())
# print(num2.isnumeric())
# print(num3.isnumeric())
# print(num4.isnumeric())
#isdecimal 只能识别num2 unicode #这里也报错了
print(num1.isdecimal())
print(num2.isdecimal())