while +for+字符串

# while 循环嵌套
# user_from_db='egon'
# pwd_from_db='123'
# while True:
# usr_inp=input('username>>>:')
# pwd_inp=input('password>>>:')
# if usr_inp==user_from_db and pwd_inp==pwd_from_db:
# print('login successful')
# while True:
# cmd=input('cmd>>>:')
# if cmd=='quit':
# break
# print('%s run......'%cmd)
# break
# else:
# print('usr or pwd error')
# tag=False
# while not tag:
# usr_inp=input('username>>>:')
# pwd_inp=input('password>>>:')
# if usr_inp==user_from_db and pwd_inp==pwd_from_db:
# print('login successful')
# while True:
# cmd=input('cmd>>>:')
# if cmd=='quit':
# tag=True
# break
# print('%s run......'%cmd)
# # break
# else:
# print('usr or pwd error')
# while True:
# 1+1
# 没有被break打断的情况下会执行else语句
# n=1
# while n<5:
# print('n')
# n+=1
# else:
# print('******>')
# 在被break打断的情况下不会执行else语句
# n=1
# while n<5:
# if n==3:
# break
# print('n')
# n+=1
# else:
# print('*****')
# 试试continue,与continue可以接着走else语句
# n=1
# while n<5:
# if n==2:
# n+=1
# continue
# print('n')
# n+=1
# else:
# print('*******')
# while称为条件循环,上来先判断条件是否成立,条件成立
# 则判断下面的子代码块,子代码块运行结束以后判断条件是否成立,
# 成立则接着运行,不成立则结束循环,结束循环用到了break和continue,
# break结束本层循环,就是他对应的那个while,continue结束本次
# 循环,就是对应的这个条件,条件成立结束这次,接着走下一次
# else语句与while结合是在没有被break打断的情况下才会执行
# else要与while同行缩进,else与continue在一起会执行else的语句
# 满足记数的功能,那么就令count=0,记数三次就退出
# count=0
# user_from_db='egon'
# pwd_from_db='123'
# while True:
# if count==3:
# print('error3')
# break
# usr_inp=input('username>>>:')
# pwd_inp=input('password>>>:')
# if usr_inp==user_from_db and pwd_inp==pwd_from_db:
# print('login successful')
# while True:
# cmd=input('cmd>>>:')
# if cmd=='quit':
# break
# print('%s run......'%cmd)
# break
# else:
# print('usr or pwd error')
# count+=1#为1的时候已经输错一次2,3
# count=0
# user_from_db='egon'
# pwd_from_db='123'
# while count<3:
# if count==3:
# print('error3')
# break
# usr_inp=input('username>>>:')
# pwd_inp=input('password>>>:')
# if usr_inp==user_from_db and pwd_inp==pwd_from_db:
# print('login successful')
# while True:
# cmd=input('cmd>>>:')
# if cmd=='quit':
# break
# print('%s run......'%cmd)
# break
# else:
# print('usr or pwd error')
# count+=1#1为输错1次2,2,3,3,直接判断条件,如果为3接着判断条件
# for 循环,通常用来做取值操作
# name=['egon','alex','lxx','qwen']
# i=0
# while i<len(name):
# print(name[i])#基于索引取值
# i+=1
# dic={'name':'egon','age':18}
# for循环:可以不依赖索引取值,原理in,拿值赋给items,再运行
# 直到将所有值取完,就结束循环
# while循环循环次数是while循环的条件控制的,for循环循环次数是
# 所取值的对象里面的元素个数控制的
# for items in name:
# print(items)
# for i in dic:
# print(i)
# for循环是一种通用的循环取值方式,可以不依赖索引取值
# dic = {'name': 'egon', 'age': 18}
# for item in dic:#值取key值
# print(item,dic[item])
# 以后但凡遇到取值,尤其是多个值,首先考虑for循环,重复做某一件事情,首先考虑while循环
# for循环也可以按照索引取值
# range函数可以完成
# name=['egon','alex','lxx','qwen']
# for item in range(0,len(name)):
# print(name[item])
# for+break
# for+continue
# break和continue只是跳出循环,不是针对while循环
# for+else
# for i in range(10):
# if i==2:
# i+=1
# # break
# continue
# print(i)
# else:
# print('*********')#会打印,for与else也是在没有被break打断的情况下运行
# for i in range(10):
# if i==2:
# break
# print(i)
# else:
# print('++++++++++++')#在被break打断的情况下不会执行else
#数据类型
# 一:基本使用
# 用途
# 定义方式
# 常用操作+内置方法(python解释器将一些常用的方法封装成内置方法,直接使用)
# 二:该类型总结
# 1.存一个值或者多个值
# 只能存一个值
# 可以存多个值,值都可以是什么类型
# 2.有序or无序 (有没有索引,有索引的全都是有序)
# 3.可变or不可变
# !!!!可变:值变,id不变,可变**不可hash
# !!!!不可变:值变,id就变,不可变***可hash
# 可变不可变指的是值可变不可变,并不是变量
# 可变:可以改变原值,在值变了的情况下,id不变,证明在该原值
#不可变:在原值改变了的情况下,id也改变了,证明不是在该原值
# 一:基本使用:int
# 用途:记录年龄,等级,号码

# 定义方式
# age=18#age=int(18)弄一个内存空间,将18丢进去,然后将18用=绑定给age
# 就是每产生一个18就是赋值给age
# print(type(age))
# 可以用来转换字符串,但是只能转换字符串里面的数字,不可以是浮点型
# int('andf')#报错
# int('123213.343')#报错
# int('1232')#int只能将字符串中包含纯数字转成整形

# 进制
# 其他进制转成十进制
# 二进制就两个数0 1
# 10#如果是二进制则是1*(2**1)+0*(2**0)
# 1010#1*(2**3)+0*(2**2)+1*(2**1)+0*(2**0)
# 十进制数字是0 1 2 3 4 5 6 7 8 9
# 10#如果是十进制则是1*(10**1)+0*(10**0)
# 371#3*(10**2)+7*(10**1)+1*(10**0)
# 八进制数字是0 1 2 3 4 5 6 7
# 10#如果是八进制则是1*(8**1)+0*(8**0)
# 271#2*(8**2)+7*(8**1)+1*(8**0)
#十六进制数字是0-9 A-F(10,11,12,13,14,15)
# 10#如果是十六进制则是1*(16**1)+0*(16**0)
# 371#3*(16**2)+7*(16**1)+1*(16**0)
#十进制转成其他进制
# print(bin(12))#二进制
# print(oct(12)) #八进制#14=>1*(8**1)+4*(8**0)
# print(hex(10))#十六进制
# 二该类型总结:存一个值,没有有序一说,不可变
# x=10
# print(id(x))
# x=11
# print(id(x))
# 在id改变的情况下,id改变就不是在改变原值,所以是不可变类型
# 常用操作+内置方法
# 加减乘除,比较
# float浮点型
# 用途:记录身高,体重,薪资
#定义 salary=3.1#salary=float(3.1)
# 该类型总结:存一个值,不可变,没有有序无序一说
# # 常用操作+内置方法
# # 加减乘除比较
# # 九九乘法表
# '''
# 1*1=1
# 2*1=2 2*2=4
# 3*1=3 3*2=6 3*3=9
# ....
# 9*1=9...............9*9=81
# '''
# for i in range(1,10):#外层循环控制的是几层
# # print(i)#i=6
# for j in range(1,i+1):#外层循环循环一次,内部全部循环
# print('%s*%s=%s ' %(i,j,i*j),end='')
# print()
# # 金字塔
# '''
# *
# ***
# *****
# *******
# *********
# '''
# max_level=5
# for current_level in range(1,max_level+1):
# #不换行打印空格
# for x in range(max_level-current_level):
# print(' ',end='')#空格必须写end= 不换行打印
# #不换行打印*
# for y in range(2*current_level-1):
# print('*',end='')
# print()
#字符串str,列表list,元组tuple,字典dict,集合set
# 字符串str
# 用途:记录描述性质的状态,比如人的名字,地址,性别
# 定义:在''"""""""内包含一些列字符
# 除了造字符串还可以将其他类型转换成字符串
# msg='hello'#msg=str('hello')
# res1=str(1)
# res2=str([1,2,3])
# print(type(res1),type(res2))
# info='xxx'
# 总结:存放一个值(特殊是可以取出里面的字符),有序,不可变类型
# 可变不可变:name发生了重指向,对应的id也发生了改变,
# 说明时产生了新值,不是修改原来的值,所以原值没有发生改变,那么就是不可变类型
# name='egon'
# print(id(name))#2049222599712
# name='sybil'
# print(id(name))#2049223368920
# 内置方法+常用操作
# 优先掌握的操作:必须学会*******
# 1.按照索引取值:只能取
# msg='hello world'#和列表比较像
# print(msg[4])#取‘o'正向取
# print(msg[-1])#反向取
# name='sybil'
# # 名字是不可分割的
# # 字符串表达的是一个整体的状态,但是特殊的是可以和列表一样按照索引取值
# msg[4]='A'
# print(msg[4])#报错,不能改值,所以是只能取值
# 2.切片(顾头不顾尾,步长):
# msg='hello world'#将一个大字符串切分出一个新的小子字符串,因为字符串不可变
# msg[0]#取第一个字符
# msg[0:]#从0开始到哪里结束取一片字符
# msg=[0:5]#比如说取到‘o'
# print(msg[0:5])#hello,产生全新字符串
# print(msg)#hello world 没有改变原值
# print(msg[0:5:1])#默认的步长是一
# print(msg[0:5:2])#步长为2,隔一步取一个值
# 了解:
# print(msg[0:5:-1])#kong,就相当于你让计算机正着走,但是步子是反的,计算机会奔溃
# print(msg[5:0:-1])# olle
# print(msg[5::-1])# olleh
# # 3.长度len(有多个值都可以统计):本身一个值,但是在字符的角度包含多个小字符量,在字符角度统计的是字符个数
# msg='hello world'
# print(len(msg))
# # 4.成员运算in和not in:判断一个字符串是否存在于大字符串中
# msg='kevin is sb'
# print('kevin' in msg)#True
# print('name' in msg) #False
# print('name' not in msg)#True

# 5.移除空白strip:移除字符串左右两边的字符(可以是空格,*,下划线...),不指定默认空格
# res=' hello '.strip()#strip 对应的就是字符串,不要混淆变量名
# # print(res)
# strip是产生了一个新的值,和原来的值没有关系,因为字符串是不可变类型在打印原来的值还是不变
# res.strip()
# print(res.strip())
# print('*****egon*******'.strip('*'))
# print('**+-/\egon*******'.strip('+/\*-'))
# score=input('score:')#数字移除空白么啥有
# score=int(score)
# if score>=90:
# print('youxiu')
# elif score>=80:
# print('lianghao')
# elif score>=70:
# print('chachacha ')
# name=input('name:').strip()#字符串可以移除左右两边的空格,如果不写,用户输入手抖就会失败
# if name=='egon':
# print('chenggong')
# else:
# print('nonono')
# 6.切分split:针对有规律的字符串,按照某种分隔符切割成列表
# info='egon,18,male'
# res=info.split(',')
# print(res,type(res))
# print(res[0],res[1])
# cmd='get|a.txt|3w3|fasdfa|vfvf|576574'
# gn=cmd.split('|',3)#split后面的可以是切割次数,如果不写,默认是全部切割,写的话是指定切割次数
# print(gn,type(gn))#['get', 'a.txt', '3w3', 'fasdfa|vfvf|576574']
# print(gn[0],gn[1],gn[2],gn[3])#get a.txt 3w3 fasdfa|vfvf|576574
# l=['egon','18','male']
# res=l[0]+':'+l[1]+':'+l[2]
# print(res)#egon:18:male
# res=l[0]+'@'+l[1]+'@'+l[2]
# print(res)#egon@18@male
# 字符串的相加就是字符串的一个拼接的过程
# l=(res)# egon@18@male
# 7.for循环:不依赖索引,只要有元素就可以依次将其取出
# msg='hello'
# for item in msg:
# print(item)
####字符串需要你掌握的操作****
# 1.strip,lstrip,rstrip
# print('*****egon*****'.lstrip('*'))# egon*****
# print('###egon########'.rstrip('#'))# ###egon
# print('%%%egon%%'.strip('%'))

# 2.lower,upper
# mag='aSSSSSSSSSSSSBBBBBBBBBB'
# print(mag.lower())#assssssssssssbbbbbbbbbb 全小写
# print(mag.upper())#ASSSSSSSSSSSSBBBBBBBBBB 全大写
# 3.startswith,endswith
# msg='AAAAAAAAAAdDDDfdsfa'
# print(msg.startswith('A')) #True
# print(msg.endswith('a'))# True
# print(msg.startswith('a'))# False
# print(msg.endswith('A'))# False
# 4.format的三种玩法
# res='my name is{},my age is {}'.format('sybil',18)
# print(res)
# loe='my name is {name},my age is {age}'.format(age=18,name='sybil')
# print(loe)
# ene='my name is {0},my age is {1}'.format('sybil',18)
# print(ene)
# ele='my name is {1},my age is {0}'.format(18,'sybil')
# print(ele)
# 5.split,rsplit
# msg='my:you:we:are'
# print(msg.rsplit(':',2))
# print(msg.split(':'))
# 6.join
# l='get|a.txt|333333'
# print(l.split('|'),type(l.split('|')))
# res=l.split('|')
# l='|'.join(res)
# print(l,type(l))
# l=['a','2','3']
# res='@'.join(l)
# print(res,type(res))
# 7.replace
# msg='sybil is sybil is sybil is perfect'
# print(msg.replace('sybil','jessica'))
# 8.isdigit 判断字符串中是否是全是纯数字
# while True:
# age=input('age:').strip()
# if age.isdigit():
# age=int(age)
# if age >30:
# print('dale')
# elif age>20:
# print('dale')
# elif age==18:
# print('bingo')
# break

# 了解的操作
#1.find,rfind,index,rindex,count
msg='hello alex is sb'
# print(msg.find('alex')) #6起始索引
# print(msg.find('alex',0,3))#返回值是-1,没有不会报错
# print(msg.rfind('alex'))#从右开始
# print(msg.index('alex',0,3))#找不到会报错
# print(msg.index('alex'))
print(msg.count('alex'))#统计字符串中小字符串出现的次数
# 2.center(居中),ljust(左填充),rjust(右填充),zfill(用0填充,右对齐)
# 3.expandtabs(控制Tab所带的空格数)\t(在a和b之间加一个空格,默认4个)\n(直接换行)
# 4.captalise(首字母大写),swapcase(大小写反转),title(单词首字母大写)
# 5.is数字类型
# 6.is其他
posted @ 2019-04-07 02:20  mcc61  阅读(221)  评论(0编辑  收藏  举报