python基礎語法學習
基礎需求:
讓用戶輸入用戶名密碼
認證成功後顯示歡迎信息
輸錯三次後退出程序
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.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基礎語法學習