python note 03 切片及对字符串操作
1、计算 1 - 2 + 3 ... + 99 中除了88以外的数之和
i = 1 sum = 0 while i < 100 : if i == 88 : i = i + 1 continue if i % 2 == 1 : sum = sum + i else : sum = sum - i i = i + 1 print(sum)
ps : continue前要加上i = i + 1,不然把 i = i + 1 放在第一个if前
2、计算 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)
ps : 注意 j = - j 放在else之后,不然会出问题
3、用户登录(三次机会)且每次错误时显示剩余错误次数
username = "pzw" password = "123456" i = 3 while i > 0: yhm = input("请输入你的账号:") i -= 1 if yhm == username: mm = input("请输入你的密码:") if mm == password: print("验证成功.正在登陆......") print('''恭喜你登陆成功! 欢迎用户进入 用户名 :%s 密码 :%s '''%(username,password)) 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('等等再想想吧!')
4、i.bit_length() 输出二级制位数
i = 100 print(i.bit_length()) #输出7 ''' bit_length 1 0000 0001 1 2 0000 0010 2 3 0000 0011 2 '''
5、int、bool、str 转换
#int ----> str i = 1 s = str(i) print(s) #输出1
#str ---> int s = '123' i = int(s) print(i) #输出123
#int ----->bool 只要是0就是False 非0就是True i = 3 b = bool(i) print(b) #输出True
#str --->bool #s = "" -----> False #非空字符串都是True #s = "0" -----> True
6、切片
s = 'ABCDEFGHIJKLMN' s1 = s[0] print(s1) #输出为A
s = 'ABCDEFGHIJKLMN' s3 = s[-1] print(s3) #输出为N
s = 'ABCDEFGHIJKLMN' s4 = s[-2] print(s4) #输出为M
#切片顾头不顾尾 s = 'ABCDEFGHIJKLMN' s5 = s[0:4] print(s5) #输出ABCD
s = 'ABCDEFGHIJKLMN' s6 = s[0:-1] print(s6) #输出ABCDEFGHIJKLM
s = 'ABCDEFGHIJKLMN' s7 = s[:] s8 = s[0:] print(s7,s8) #输出ABCDEFGHIJKLMN
#s[首:尾:步长] s = 'ABCDEFGHIJKLMN' s10 = s[0:5:2] print(s10) #输出ACE
s = 'ABCDEFGHIJKLMN' s11 = s[4:0:-1] print(s11) #输出EDCB
s = 'ABCDEFGHIJKLMN' s12 = s[3::-1] print(s12) #输出DCBA
s = 'ABCDEFGHIJKLMN' s13 = s[3::-2] print(s13) # 输出DB
s = 'ABCDEFGHIJKLMN' s14 = s[-1::-1] s15 = s[::-1] print(s14,s15) #输出NMLKJIHGFEDCBA
7、对字符串的操作
s = 'alexWUsir' s1 = s.capitalize() # 首字母大写 print(s1) #输出Alexwusir
s = 'alexWUsir' s2 = s.upper() #全部大写 s3 = s.lower() #全部小写 print(s2,s3) #输出ALEXWUSIR alexwusir
s = 'alexWUsir' s3 = s.swapcase() #大小写反转 print(s3) #输出ALEXwuSIR
# 每个隔开(特殊字符或者数字)的单词首字母大写 s = 'alex*egon-wusir' s4 = s.title() print(s4) #输出Alex*Egon-Wusir
#居中,空白填充 s = 'alexWUsir' s5 = s.center(20,'~') print(s5) #输出~~~~~alexWUsir~~~~~~
s = 'al\tsir' #\t表示前面占八位,少几位就补几位 s6 = s.expandtabs() print(s6) #输出al sir
test = "username\temail\tpasswd\npzw\t943969386qq.com\t123456\npzw\t943969386qq.com\t123456\n" v = test.expandtabs(20) print(v) #输出 #username email passwd #pzw 943969386qq.com 123456 #pzw 943969386qq.com 123456
s = 'alex二哥' l = len(s) #表示输出此字符串长度 print(l) #输出6
s = 'alexWUsir' s7 =s.startswith('alex') #看字符串是否以alex开头 print(s7) #输出True
s = 'alexWUsir' s8 = s.startswith('e',2,5) #看字符串是否在第二个字符以e开头,注意顾头不顾尾原则 print(s8) #输出True
# find 通过元素找索引,找不到返回-1 # index通过元素找索引,找不到报错 s = 'alexWUsir' s8 = s.find('alex') #找出字符第一个字母所在位置 print(s8,type(s8)) #输出0 <class 'int'>
s = 'alexWUsir%' s9 = s.strip('%') #删除字符串中所包含的符号,如果为('')则为删除空格符 print(s9) #输出为alexWUsir
s = 'alexaa wusirl' s10 = s.count('al') # 查找字符出现的次数,如果没有就为0,可以指定从第几位开始。
print(s10) # 输出1
s = ':alex:wusir:taibai' l = s.split(':') #输出以:为分隔符,冒号会变为逗号 print(l) #输出['', 'alex', 'wusir', 'taibai']
s = '来看待街坊邻居复合大师街坊法好的撒见客户' s11 = s.replace('街坊','老王',1) #1表示替换一次,如果不写则全部替换 print(s11) #输出来看待老王邻居复合大师街坊法好的撒见客户
test = "qwer" v = test.isalnum() #判断是否只包含字母或数字 print(v) #输出True
8、字符串实例
一、
s_str= 'acEQ1' you_input =input('请输入验证码,不区分大小写:') if s_str.upper() == you_input.upper(): print('输入成功') else: print('请重新输入')
二、
username = input('请输入名字:').strip() if username =='pzw': print('恭喜pzw发财')
9、format的三种玩法 格式化输出
一、
s = '我叫{},今年{},爱好{},再说一下我叫{}'.format('pzw',36,'girl','pzw') 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)
10、for循环
s = 'fhdsklfds' for i in s: print(i) #打印s中全部字符