上次作业
1 #1.计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和 2 i=1 3 sum=0 4 while i <100: 5 if i==88: 6 i += 1 7 continue 8 if i%2!=0: 9 sum=sum+i 10 else: 11 sum=sum-i 12 i += 1 13 print(sum) 14 15 #2.计算 1 - 2 + 3 ... -99 中除了88以外所有数的总和 16 i=0 17 j=-1 18 sum=0 19 while i<99: 20 i=i+1 21 if i==88: 22 continue 23 else: 24 j = -j 25 sum=sum+i*j 26 print(sum) 27 28 #3.⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化) 29 username = "yangxiaoer" 30 password = "123456" 31 i = 3 32 while i > 0: 33 zh = input("请输入你的账号:") 34 i -= 1 35 if zh == username: 36 mm = input("请输入你的密码:") 37 if mm == password: 38 print("验证成功.正在登陆......") 39 print('''恭喜你登陆成功! 40 欢迎用户进入 41 用户名 :%s 42 密码 :%s 43 '''%(zh,mm)) 44 break 45 else: 46 if i == 0: 47 print("你的机会已经没了!game over 下次见!") 48 answer = input('再试试?Y or N') 49 if answer == 'Y': 50 i = 3 51 print("密码错误,请重新输入") 52 print("你还有"+str(i)+"次机会") 53 else: 54 print("请输入正确的用户名!") 55 if i == 0: 56 print("你的机会已经没了!") 57 answer = input('再试试?Y or N') 58 if answer == 'Y': 59 i = 3 60 print("你还有" + str(i) + "次机会") 61 else: 62 print('你要不要脸')
用户登录,三次机会,并能提示
1 #first give username and password 2 '''import io 3 import sys 4 sys.stdout= 5 io.TexrIOWrapper(sys.stdout.buffer.encoding='utf-8')''' 6 import sys 7 print(sys.stdout.encoding) 8 i=3 9 username = 'dog' 10 password = '123' 11 while i >= 0: 12 #exit when there is no chance 13 if i == 0: 14 print('您的机会已经用完') 15 break 16 #check out 17 else: 18 name = input('请输入用户名: ') 19 i -= 1 20 if name == username: 21 key = input('请输入密码: ') 22 #enter when name and key are all correct 23 if key == password: 24 print(''' 25 登录成功 26 用户:%s 27 密码:%s 28 欢迎您 29 '''%(name,key)) 30 break 31 #密码不正确时重新循环 32 else: 33 print('您的密码不正确,还有%d次机会'%(i)) 34 else: 35 if i == 0: 36 continue 37 else: 38 goon = input('您的用户名不正确,是否重新输入:Y/N ') 39 if goon == 'N': 40 print('再见') 41 break 42 else: 43 print('请重新输入用户名和密码')
1. 数据类型
1. int 1,2,3
用于计算。
2. bool:True,False
用户判断。
3. str:引号引起来的部分,' '," ",''' ''',""" """
存储少量数据,进行操作
'fjdsal', '二哥', '`13243', 'fdshklj'
4. list:列表
储存大量的数据。
[1,2,3,'泰哥','12353234',[1,2,3]]
5. 元祖:也叫只读列表,不能修改。
(1,2,3,'第三方',)
6. dict:字典,对应
{'name':'云姐','age':16}
{'云姐':[],' 二哥':[200,200,200,....}
7. 集合:{1,2,34,'asdf'}
2. int
1. print(i.bit_length()) 转化为二进制的最小位数
1 0000 0001 1
2 0000 0010 2
3 0000 0011 2.
3. bool
1. int与str的转换
1. int---->str 无要求
i = 1 s = str(i)
2. str---->int 一定要为数据类型
s = '1' i = int(s)
2. int与bool的转换
1. int---->bool 0: False 非0: True
i = 1 b = bool(i)
2. bool---->int True: 1 False: 0
while True:
pass
while 1: 效率高
pass
3. str与bool的转换 非空字符串都是True
str---->bool
s = '' : False
s = '0' : True
4. str
1 #1. 字符串的索引与切片 ps: 对字符串进行操作后形成新字符串(与原字符串无关) 2 s = 'ABCDLSESRF' 3 #1-1 索引 4 s1 = s[0] 5 print(s1) #A 6 s2 = s[2] 7 print(s2) #C 8 s3 = s[-1] 9 print(s3) #F 10 11 #1-2 切片 :顾头不顾尾 12 s5 = s[0:4] 13 print(s5) #ABCD 14 s7 = s[:] 15 s8 = s[0:] 16 print(s7,s8) #ABCDLSESRF,啥都不写也是全取 17 s9 = s[0:0] #一样的什么都不输出,不报错 18 19 s = 'ABCDLSESRF' # s[首:尾:步长] 按步长取 20 s10 = s[0:5:2] 21 print(s10) #ACL 22 s11 = s[4:0:-1] #倒着取,这时右边为首,取不到s[0]: A 23 print(s11) #LDCB 24 s13 = s[3::-2] 25 print(s13) #DB 26 s = 'ABCDLSESRF' 27 s14 = s[-1::-1] 28 print(s14) #从最后一位倒着取到头 29 s15 = s[::-1] 30 print(s15) #与s14相同 31 32 #2. 字符串的操作 33 #2-1 首字母大写 34 s = 'alexWUsir' 35 s1 = s.capitalize() 36 print(s1) #Alexwusir 37 38 #2-2 全大写,全小写 39 s2 = s.upper() #全大写 40 s21 = s.lower() #全小写 41 print(s2,s21) #ALEXWUSIR alexwusir 42 43 ps: 可用于验证码等 44 s_str= 'acEQ1' 45 you_input =input('请输入验证码,不区分大小写') 46 if s_str.upper() == you_input.upper(): 47 print('输入成功') 48 else: 49 print('请重新输入') 50 51 #2-3 大小写翻转 52 s3 = s.swapcase() 53 print(s3) #ALEXwuSIR 54 55 #2-4 每个隔开(特殊字符或者数字)的单词首字母大写 56 s = 'alex*egon-wusir' 57 s4 = s.title() 58 print(s4) #Alex Egon Wusir 59 s = 'fade,crazy*w4rri0r_songsong node_3' 60 s4 = s.title() 61 print(s4) #Fade Crazy W Rri R Songsong Node 62 ps: 中间为空格/特殊字符/数字 63 64 #2-5 居中,空白填充 65 s = 'alexWUsir' 66 s5 = s.center(20,'~') #前面为总共的长度width,后面为填充(默认为空白填充) 67 print(s5) #~~~~~alexWUsir~~~~~~ 68 69 #2-6 补足位数 \t前补足8/16位,包括前面 70 s = 'alex\tsir' 71 s6 = s.expandtabs() 72 print(s6) #alex sir 73 ps:可用于制作财务报表等 74 75 #2-7 公共方法:字典,列表,字符串均能用 76 s = 'alex二哥' 77 l = len(s) #字符长度,中文也算 78 print(l) #6 79 80 #2-8 判断以什么开头结尾 startswith endswith 返回bool值 81 s = 'alexWUsir' 82 s7 =s.startswith('alex') 83 s71 = s.startswith('e',2,5) #判断的整体,开头,结尾(同样顾头不顾尾) 84 print(s7, s71) #True True 85 86 ps: 可用作用户在搜索时进行何种操作 87 if s7: 88 pass 89 elif s.startswith('bl'): 90 pass 91 print(s7) 92 93 #2-9 find寻找与index索引 94 # find 通过元素找索引,找不到返回-1 95 # index通过元素找索引,找不到报错 96 s = 'alexWUsir' 97 s8 = s.find('A') 98 s81 = s.index('A') #寻找的内容看作整体 99 print(s8,s81,type(s8)) #-1, 报错, int 100 101 #2-10 删除元素,默认为空格 strip rstrip, 右边删除 lstrip, 左边删除 102 s = 'alexWUsir%' 103 s9 = s.strip('%') #前后删除 104 print(s9) #alexWUsir 105 s = ' *a%lexWUsi* r%' 106 s91 = s.strip(' %*') 107 print(s91) #a%lexWUsi* r 108 ps: 注意是前后删除,碰到字符a后会卡住 109 110 username = input('请输入名字:').strip() 111 if username =='春哥': 112 print('恭喜春哥发财') 113 114 #2-11 统计个数,没有则为0 115 s = 'alexaa wusirl' 116 s10 = s.count('al') #统计的内容看作整体,同时可以切片 117 print(s10) #1 118 119 #2-12 字符串转换为列表 split str ---->list 120 s = ';alex;wusir;taibai' 121 l = s.split('a') 122 print(l) #['','alex','wusir','taibai'] 123 ps: 将隔开的元素进行转换,注意若打头为特殊字符,则列表最前面有空字符串 124 125 #2-13 format的三种玩法 格式化输出 126 s = '我叫{},今年{},爱好{},再说一下我叫{}'.format('太白',36,'girl','太白') 127 print(s) 128 name = input('请输入名字:') 129 s = '我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format(name,36,'girl') 130 print(s) #注意要从0开始 131 name = input('请输入名字:') 132 s = '我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=18,name=name,hobby='girl') 133 print(s) 134 135 #2-14 替换 136 s = '嗷嗷汪' 137 s11 = s.replace('嗷','呜',1) #old, new, count = none替换次数,默认全部替换 138 print(s11) #呜嗷汪 139 140 #2-15 is系列 141 name = 'dog' 142 name.isalnum() #字符串由字母或数字组成 143 name.isalpha() #由字母 144 name.isdigit() #由数字 145 146 #3. for循环(有限循环) 147 s = 'fhdsklfds' 148 for i in s: 149 print(i) 150 s = 'fdsa嗷fdsalk' 151 if '嗷' in s: 152 print('您的评论有敏感词...')