1. 程式人生 > >python基礎語法學習

python基礎語法學習

rem In == 啟動 增刪 通過 刪除元素 put ()

登錄認證程序作業
基礎需求:
讓用戶輸入用戶名密碼
認證成功後顯示歡迎信息
輸錯三次後退出程序

username="admin"
password="admin"
count=1
while count<=3 :
_username=input("username:")
_password=input("password:")
if _username==username and _password==password :
print("welcome",_username)
break
count +=1

升級需求:

可以支持多個用戶登錄 (提示,通過列表存多個賬戶信息)
用戶3次認證失敗後,退出程序,再次啟動程序嘗試登錄時,還是鎖定狀態(提示:需把用戶鎖定的狀態存到文件裏)
import pathlib

user_info = {‘admin‘:‘admin‘,‘root‘:‘root‘,‘zhang‘:‘123456‘,‘liu‘:‘qwe‘}
count = 1

while count <= 3 :
print(‘input account‘)
username = input("username:")

if username in user_info :
    path = pathlib.Path(‘blacklist‘)
    if path.is_file() :
        f = open("blacklist","r",encoding=‘gbk‘)
        for line in f.readlines() :
            line = line.strip()
            if line == username :
                print(line,"賬戶已經被鎖定")
                f.close()
                exit()
        f.close()

    break
else :
    count += 1

if count == 4 :
print(‘連續輸錯賬號三次‘)
exit()

count = 1
while count <= 3 :
password = input("password:")

if password == user_info[username] :
    print(‘welcome‘,username)
    break
count += 1

if count == 4 :
print(‘你已經輸錯三次,用戶被鎖定‘)
f = open("blacklist", "a+", encoding=‘gbk‘)
f.writelines(username)

f.writelines(‘\n‘)
f.close()

1.格式化輸出
占位符:%s %d %f
s = string
d = digit
f = float

輸出一個個人信息列表:
name=input("Name:")
job=input("Job")
age=input(Age)
hometown=input(Hometown)
info = """
-------- info of %s ------
Name: %s
Job: %s
Age: %s
Hometown: %s
---------- end -------------
""" % (name,name,job,age,hometown)
print(info)

2.if流量控制
1.單分支
if 條件 :
滿足條件後執行

2.雙分支
if 條件 :
            滿足條件後執行
else:
             不滿足條件執行 

3.多分支
if  條件:
            滿足條件後執行
elif 條件:
        上面條件不滿足就走這個
elif 條件:
        上面條件不滿足就走這個
elif  條件:
         上面條件不滿足就走這個 

3.while循環
while 條件:
執行代碼....

eg:
count=0
while count<=100 :
print("loop",cout)
count +=1
print("loop end")

循環的終止語句
continue vs break
break用於完全結束一個循環,跳出循環體執行循環後面的語句;
continue是終止本次循環,接著還執行後面的循環;

while後面的else 作用是指,當while循環正常執行完,中間沒有被break終止時,就會執行else後面的語句

可用來檢查程序中途是不是被break了

4.列表
列表是一個數據的集合,集合內可以放任何數據類型,可對集合進行增刪改查;
name=[‘a‘,‘b‘,‘c‘,‘d‘,‘f‘,‘d‘,‘g‘]

        1.查詢元素
        name[0]通過索引找到第一個元素
        name[-1]z找最後一個元素
        name[-2]倒數第二個元素
        name.index(‘d‘)返回指定元素的索引值,從左右查找,找到第一個匹配的;
        name.count(‘d‘)統計元素d的個數;

        2.切片
        name[0:3]  取0-2個元素,即前三個,切片顧頭不顧尾
        name[:3]取前三個
        name[-5:]取後五個 
        name[::]取全部元素
        name[:5:2] 取1 、3、5個;  2為步長;每隔2個取一個元素;

        3.增加
        name.append(‘haha’)  末尾追加一個元素haha

        4.插入
        name.insert(0,‘abd‘)  位置0插入元素abd
        name.insert(2,‘aa‘) 位置2插入元素aa

        5.修改
        n[3] = ‘hello‘     第四個元素修改為hello

        6.刪除
        name.pop   刪除最後一個
        name.remove(‘a‘) 刪除元素a,從左往右,刪除第一個元素a
        del name[2]  刪除索引為2的元素;(del是一個全局的刪除命令,可以刪除所有,包括變量等)
        del name[2:4] 刪除索引2-3的元素

        7.循環
        L2 = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘]

        for i in L2 :
                    print(i) 
        將L2列表中的每個值賦值給變量i,打印出每個i的值;

        range(10)     生成一個0到9的列表

        for i in range(10) 

        8.排序
        name.sort()  對name按照ASCII從大到小進行排序,排序後再查看列表;
        name
        name.reverse()  將列表name倒敘

        9.合並列表
        name+name1      將name和name1列表合並
        name.extend(name1) 將列表name擴展

        10.清空列表
        name.clear()   清空name列表

        11.name1=name
        name1=name 將name賦值給name1,name列表修改後,name1的數據會同步

        12.copy
        name1=name.copy()  #淺copy
        import copy #深copy,導入python的工具箱
        name1=name.deepcopy(name)

        13.enumerate(name)  #枚舉

5.字典
dic={‘k1‘:‘v1‘,‘k2‘:‘v2‘ }
修改
dic[‘k1‘]=2 #修改
dic[‘k3‘]=‘v3‘ #增加

python基礎語法學習