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中全部字符

 

 

 
 
 
posted @ 2019-03-05 21:45  P-Z-W  阅读(307)  评论(0编辑  收藏  举报