zoukankan      html  css  js  c++  java
  • 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所带的空格数) (在a和b之间加一个空格,默认4个) (直接换行)
    # 4.captalise(首字母大写),swapcase(大小写反转),title(单词首字母大写)
    # 5.is数字类型
    # 6.is其他
  • 相关阅读:
    C#处理json实战
    HDU3994(Folyd + 期望概率)
    POJ1270 Following Orders (拓扑排序)
    HDU 3634 City Planning (离散化)
    HDU4762(JAVA大数)
    POJ3026(BFS + prim)
    POJ1679(次小生成树)
    UVA10487(二分)
    ZOJ 2048(Prim 或者 Kruskal)
    FZU 1856 The Troop (JAVA高精度)
  • 原文地址:https://www.cnblogs.com/mcc61/p/10663940.html
Copyright © 2011-2022 走看看