Python-Basis-3rd

周六,雨,记录生活分享点滴

参考博客:https://www.cnblogs.com/yuanchenqi/articles/5782764.html

Python版本:3.5

字符格式化输出

name = input ("Name:")
age = int(input ("Age:"))
job = input ("Job:")
salary = input ("Salary:")

if salary.isdigit(): #长得像不像数字,比如200d、‘200’
    salary = int(salary)
# else:
#     #print() #将"must input digit"放在exit中可以减少一行代码
#     exit("must input digit") #退出程序

msg = '''
----info of %s----
Name: %s
Age: %d
Job: %s
Salary: %f
You will be retired in %s years
----end----
''' % (name,name,age,job,salary,65-age)

print(msg)

小结:

  • 占位符 %s (s=string字符串)、%d (d = digit 整数)、%f (f = float 浮点数,约等于小数)
  • 在占位符运用后,需要对占位符的输出进行表达,即   % (name,name,age,job,salary,65-age)
  • 3个引号  打印多行
  • 字符串  salary.isdigit()   世界万物,皆为对象,一切对象皆可分类
  • 针对输入结果特定的要求,以是否为数字展开

循环

  • 有限循环,有次数限制
  • 无限循环=死循环
  • continue 结束本次循环,继续下一次循环
  • break 跳出整个当前的循环

for循环

基本逻辑

第一种表示方法

for i in range(1,101):
    if i % 2==1:
        print("loop:",i)

第二种表示方法(优化版)

for i in range(1,101,2): #2 指步长
    print("loop:",i)

小结:

  • i 为变量
  • range表示循环的范围 
  • 第一种:运用余数为1的办法得出100范围内所有的奇数
  • 第二种:在range内添加步长2,从1开始计算,每增加2便是另一个奇数

for循环-login登陆框

_user = "chung"
_passwd = "abc123"

passed_authentication=False #假,不成立  #flag = 标志位

for i in range (3):
    username = input("Username:")
    password = input("Password:")

    if username == _user and password == _passwd:
        passed_authentication = True #真,成立
        print ("Welcome %s login ..." % _user)
        break #跳出,中断
    else:
        print("Invalid username or password!")

if not passed_authentication: #只有在True的情况下,条件成立
    print("对不起,您的输入次数已用完。")

小结:

  • range(3)表示循环三次
  • 通过判断 passed_authentication 是否成立来决定最后结果的输出,即最后一个 print 
  • *通过循环三次结束后,如果还是输入用户名和密码不正确,即 passed_authentication 不等于 True ,跳转到最后一个 if ,最后一个 if 的运行条件是需要 passed_authentication 等于 True,所以添加 not 。

for循环-login-pro版本 

_user = "chung"
_passwd = "abc123"

for i in range (3):
    username = input("Username:")
    password = input("Password:")
    if username == _user and password == _passwd:
        print ("Welcome %s login ..." % _user)
        break #跳出,中断  #break for 过后,就不会执行最后面的else语句
    else:
        print("Invalid username or password!")

else:  #只要上面的for循环正常执行完毕,中间没被打断,就会执行else语句
    print("对不起,您的输入次数已用完。")

while循环

while循环-login

_user = "chung"
_passwd = "abc123"

counter = 0
while counter < 3: #当while后面的条件成立(True),才会执行它下面的代码
    username = input("Username:")
    password = input("Password:")
    if username == _user and password == _passwd:
        print ("Welcome %s login ..." % _user)
        break
    else:
        print("Invalid username or password!")
    counter += 1
else:
    print("对不起,您的输入次数已用完。")

小结:通过计数的方式 (counter)来规定运行的次数

while循环-login-pro版本

_user = "chung"
_passwd = "abc123"

counter = 0
while counter < 3: #当while后面的条件成立(True),才会执行它下面的代码
    username = input("Username:")
    password = input("Password:")
    if username == _user and password == _passwd:
        print ("Welcome %s login ..." % _user)
        break
    else:
        print("Invalid username or password!")
    counter += 1

    if counter == 3:
        keep_going_choic = input("要继续吗?[y/n]")
        if keep_going_choic == "y":
            counter = 0

else:
    print("对不起,您的输入次数已用完。")

小结:增加用户在输入三次结束后可以对是否继续输入进行选择 

标识位

exit_flag = False

for i in range(10):
    if i < 5:
        continue
    print(i)
    for j in range (10):
        print ("layer2",j)
        if j == 6:
            exit_flag = True
            break
    if exit_flag: #当exit_flag = True时,则break退出
        break

小结:3-2)运用此原理

 

列表-增删改查

索引(下标),都是从0开始

注意:空格也代表一个索引位置

name0 = 'dog'
name1 = 'cat'
name2 = 'fish'
name3 = 'duck'
name4 = 'pig'
name5 = 'lion'

查:切片

a=['dog','cat','fish','duck','pig','lion']

print(a[1:])#取到最后  #['cat', 'fish', 'duck', 'pig', 'lion']
print(a[1:-1])#取到倒数第二个值  #['cat', 'fish', 'duck', 'pig']
print(a[1:-2:1])#从左到右一个一个去取  #['cat', 'fish', 'duck']
print(a[1::2])#从左到右隔一个去取  #['cat', 'duck', 'lion']
print(a[3::-1])#从右到左一个一个去取  #['duck', 'fish', 'cat', 'dog']
b=a[3::-1]
print(b)#['duck', 'fish', 'cat', 'dog']
print(a[-2::-1])#['pig', 'duck', 'fish', 'cat', 'dog']

增:append   insert

a=['dog','cat','fish','duck','pig','lion']
 
a.append('boy') #默认插到最后一个位置
print(a)
a.insert(1,'boy') #将数据插入到任意一个位置
print(a)

a=['dog','cat','fish','duck','pig','lion']

a[1] = 'girl'
print(a) #['dog', 'girl', 'fish', 'duck', 'pig', 'lion']
a[1:3] = ['a','b']
print(a) #['dog', 'a', 'b', 'duck', 'pig', 'lion']

删  remove pop del

a=['dog','cat','fish','duck','pig','lion']

a.remove(a[0])#remove删除一个整体、固定的值
print(a)
b=a.pop(1) #pop删除索引,会反馈所删掉的值,如果不指定默认会删除最后一个
print(a)
print(b)
del a[0] #del a 指删除a的所有    #del既可以删除某一个固定的内容,还可以把一个对象删掉
print(a)

列表内置方法

count:计算某元素出现次数

t=['to','be','or','not','to','be'].count('to')
print(t)  #2

extend 规定一组数据插入到另一组数据中

a = [1,2,3]
b = [4,5,6]
a.extend(b)
print(a) #[1, 2, 3, 4, 5, 6]
print(b) #[4, 5, 6]

index 根据内容找位置

a=['dog','cat','fish','duck','pig','lion']
print(a.index('duck')) #3

reverse 将元素原始顺序变成倒序

a=['dog','cat','fish','duck','pig','lion']
a.reverse()
print(a) #['lion', 'pig', 'duck', 'fish', 'cat', 'dog']

sort 由乱序变顺序

x = [4,6,2,1,7,9]
x.sort() #当前是从小到大,如果想从大到小排序,输入x.sort(reverse=True)
print(x) #[1, 2, 4, 6, 7, 9]   #[9, 7, 6, 4, 2, 1]
a=['dog','cat','Fish','Duck','pig','lion']
a.sort()
print(a) #['Duck', 'Fish', 'cat', 'dog', 'lion', 'pig']
原文地址:https://www.cnblogs.com/chungzhao/p/12897849.html