开始学习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)    收藏  举报

导航