开始学习python的第三天
一、练习题
1.计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和
#1-2+3.。。,。+99 i=1 sum=0 while i <100: if i==88: i += 1 continue if i%2!=0: sum=sum+i else: sum=sum-i i += 1 print(sum)
第二种计算结果,88后符号转换。
#计算 1 - 2 + 3 ... -99 中除了88以外所有数的总和
i=0 j=-1 sum=0 while i<99: i=i+1 if i==88: continue else: j = -j sum=sum+i*j print(sum)
2.用户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使用字符串格式化)
i = 3 username = "yangxiaoer" password = "123456" while i>=0: name = input("请输入你的用户名:") if name == username: passwd = input("请输入你的密码:") if passwd == password: print("登录成功。请稍后") print(''' username: %s password: %s '''%(username,password)) break else: print("你的密码错误 请重新输入") print("你还有%s次机会" % (i-1)) if i == 0: print('您的机会已经用完,结束本次操作') break continue else: print("你的用户名错误!请重新输入") print("你还有%s次机会"%(i-1)) i -= 1
加强版:
username = "yangxiaoer" password = "123456" i = 3 while i > 0: zh = input("请输入你的账号:") i -= 1 if zh == username: mm = input("请输入你的密码:") if mm == password: print("验证成功.正在登陆......") print('''恭喜你登陆成功! 欢迎用户进入 用户名 :%s 密码 :%s '''%(zh,mm)) break else: if i == 0: print("你的机会已经没了!game over 下次见!") answer = input('再试试?Y or N') if answer == 'Y': i = 3 print("密码错误,请重新输入") print("你还有"+str(i)+"次机会") else: print("请输入正确的用户名!") if i == 0: print("你的机会已经没了!") answer = input('再试试?Y or N') if answer == 'Y': i = 3 print("你还有" + str(i) + "次机会") else: print('你TM要不要脸')
二、数据类型【整数(int) ,字符串(str),布尔值(bool),列表(list),元组(tuple),字典(dict),集合(set)】
1、int 1,2,3用于计算。
bool:True,False,用户判断。
str:存储少量数据,进行操作
'fjdsal' '二哥','`13243','fdshklj'
'战三,李四,王二麻子。。。。'
list:储存大量的数据。
[1,2,3,'泰哥','12353234',[1,2,3]]
元祖tuple:只读。
(1,2,3,'第三方',)
dict:字典{'name':'云姐','age':16}
字典{'云姐':[],'二哥':[200,200,200,。。。。。。]}
集合set:{1,2,34,'asdf'}
2、
int操作方法
因为数字主要是用于计算,所以针对于数字可以使用的方法除了那些运算之外,没有什么经常会用的方法,python给咱们提供了一种方法:bit_length()就是帮助你快速的计算整数在内存中占用的二进制码的长度.
num = 10 print(num.bit_length()) # 当十进制用二进制表示时,最少使用的位数 # 运行结果: 4
3、补充一下int str bool 三者数据类型之间的转换
# int ---> bool i = 100 print(bool(i)) # True # 非零即True i1 = 0 print(bool(i1)) # False 零即False # bool ---> int t = True print(int(t)) # 1 True --> 1 t = False print(int(t)) # 0 False --> 0 # int ---> str i1 = 100 print(str(i1)) # '100' # str ---> int # 全部由数字组成的字符串才可以转化成数字 s1 = '90' print(int(s1)) # 90 # str ---> bool s1 = '太白' s2 = '' print(bool(s1)) # True 非空即True print(bool(s2)) # False # bool ---> str t1 = True print(str(True)) # 'True'
4、工作中常用的知识点
while True: pass #可写成 while 1: 效率高 pass s if s: #原式if s ==' ' print('你输入的为空,请重新输入') else: pass
三、1.字符串操作
#字符串的索引与切片 s = 'ABCDLSESRF' 索引 s1 = s[0] print(s1) s2 = s[2] print(s2) s3 = s[-1] print(s3) s4 = s[-2] print(s4) #ABCD 切片 :顾头不顾尾 s5 = s[0:4] print(s5) s6 = s[0:-1] print(s6) s7 = s[:] s8 = s[0:] print(s7,s8) s9 = s[0:0] s = 'ABCDLSESRF' # s[首:尾:步长] s10 = s[0:5:2] print(s10) s11 = s[4:0:-1] print(s11) s12 = s[3::-1] print(s12) s13 = s[3::-2] print(s13) s = 'ABCDLSESRF' s14 = s[-1::-1] print(s14) s15 = s[::-1] print(s15)
2.字符串常用方法
字符串除了可以用切片(步长)之外,还有一些其他的操作方法。
#数字符串中的元素出现的个数。 # ret3 = a1.count("a",0,4) # 可切片 # print(ret3) a4 = "dkfjdkfasf54" #startswith 判断是否以...开头 #endswith 判断是否以...结尾 # ret4 = a4.endswith('jdk',3,6) # 顾头不顾腚 # print(ret4) # 返回的是布尔值 # ret5 = a4.startswith("kfj",1,4) # print(ret5) #split 以什么分割,最终形成一个列表此列表不含有这个分割的元素。 # ret9 = 'title,Tilte,atre,'.split('t') # print(ret9) # ret91 = 'title,Tilte,atre,'.rsplit('t',1) # print(ret91) #format的三种玩法 格式化输出 res='{} {} {}'.format('egon',18,'male') res='{1} {0} {1}'.format('egon',18,'male') res='{name} {age} {sex}'.format(sex='male',name='egon',age=18) #strip name='*barry**' print(name.strip('*')) print(name.lstrip('*')) print(name.rstrip('*')) #replace name='alex say :i have one tesla,my name is alex' print(name.replace('alex','SB',1)) #####is系列 name='taibai123' print(name.isalnum()) #字符串由字母或数字组成 print(name.isalpha()) #字符串只由字母组成 print(name.isdecimal()) #字符串只由十进制组成 #############下面这些方法在数据类型补充时会讲到,现在不讲#################### #寻找字符串中的元素是否存在 # ret6 = a4.find("fjdk",1,6) # print(ret6) # 返回的找到的元素的索引,如果找不到返回-1 # ret61 = a4.index("fjdk",4,6) # print(ret61) # 返回的找到的元素的索引,找不到报错。 #captalize,swapcase,title print(name.capitalize()) #首字母大写 print(name.swapcase()) #大小写翻转 msg='taibai say hi' print(msg.title()) #每个单词的首字母大写 # 内同居中,总长度,空白处填充 ret2 = a1.center(20,"*") print(ret2)
3.课上学习代码
#字符串的操作 s = 'alexWUsir' s1 = s.capitalize() # 首字母大写 # print(s1) # 全大写,全小写 s2 = s.upper() s21 = s.lower() # print(s2,s21) s_str= 'acEQ1' you_input =input('请输入验证码,不区分大小写') if s_str.upper() == you_input.upper(): print('输入成功') else: print('请重新输入') #大小写翻转 s3 = s.swapcase() print(s3) #每个隔开(特殊字符或者数字)的单词首字母大写 s = 'alex*egon-wusir' s4 = s.title() print(s4) s = 'fade,crazy*w4rri0r_songsong node_3' s4 = s.title() print(s4) #居中,空白填充 s = 'alexWUsir' s5 = s.center(20,'~') print(s5) s = 'alex\tsir' s6 = s.expandtabs() print(s6) s = 'alex二哥' #公共方法 l = len(s) print(l) #以什么开头结尾 endswith s = 'alexWUsir' s7 =s.startswith('alex') s71 = s.startswith('e',2,5) print(s71) if s7: pass elif s.startswith('bl'): pass print(s7) #find 通过元素找索引,找不到返回-1 #index通过元素找索引,找不到报错 s = 'alexWUsir' s8 = s.find('A') s81 = s.index('A') print(s81,type(s8)) strip rstrip lstrip s = 'alexWUsir%' s9 = s.strip('%') print(s9) s = ' *a%lexWUsi* r%' s91 = s.strip(' %*') print(s91) #strip 默认删除前后空格 username = input('请输入名字:').strip() if username =='春哥': print('恭喜春哥发财') s = 'alexaa wusirl' s10 = s.count('al') print(s10) split str ---->list s = ';alex;wusir;taibai' l = s.split('a') print(l) #format的三种玩法 格式化输出 s = '我叫{},今年{},爱好{},再说一下我叫{}'.format('太白',36,'girl','太白') print(s) name = input('请输入名字:') s = '我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format(name,36,'girl') print(s) name = input('请输入名字:') s = '我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=18,name=name,hobby='girl') print(s) s = '来看待街坊邻居复合大师街坊法好的撒见客户' s11 = s.replace('街坊','老王',1) print(s11) s = 'fhdsklfds' for i in s: print(i) s = 'fdsa苍井空fdsalk' if '苍井空' in s: print('您的评论有敏感词...')
posted on 2019-05-04 22:37 python拯救世界 阅读(163) 评论(0) 收藏 举报
浙公网安备 33010602011771号