筆記: 1.遞歸的特性 2.格式化輸出 當需要列印出來的內容是要需要根據變來變化的時候就需要使用,在字元串中加入%s,%d等。 3.判斷內容是否在字元串內 直接使用in方法 >>>>a = "test" >>>>b = "123 test 456" >>>>a in b True 4.簡單進度條 i ...
筆記:
1.遞歸的特性
2.格式化輸出
當需要列印出來的內容是要需要根據變來變化的時候就需要使用,在字元串中加入%s,%d等。
>>>>find_1 = "robby"
>>>>salary = 3000
>>>>print("%s的工資是:%s" % (find_1, salary))
robby的工資是:3000
3.判斷內容是否在字元串內
直接使用in方法
>>>>a = "test"
>>>>b = "123 test 456"
>>>>a in b
True
4.簡單進度條
import sys,time
for i in range(50):
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(0.5)
作業過程:工資管理系統
首先上一張腳本流程圖(看的過去就行)
在學習了python基礎操作後,這個其實就很容易實現,例如簡單的文件內容的替換。
對於我來說,這裡比較難的是判斷用戶的輸入。
在開始時,要判斷用戶是否輸入的1-4數字,這個還比較好解決,做了2次判斷:
第一次判斷用戶是否是否輸入的數字,使用str.isdigit()來判斷,
然後直接一路if,elfi和else,判斷是否是1-4的選項,併進入相應的選項繼續執行下去。
while True:
select = input("請選擇>>")
select = inputcheck(select)
if (select.isdigit()):
if int(select) == 1:...
elif int(select) == 2:...
elif int(select) == 3:...
elif int(select) == 4:...
else:...
else:...
比較難的是判斷用戶輸入賬戶名和工資,目前判斷並不完善,會有一些漏洞。例如用戶在輸入賬戶名時輸入的是數字,在輸入框輸入了多個空格,我都暫時無法判斷。
目前是分3次判斷,而且是比較配合的用戶輸入。
首選判斷是否有空格,不論有多少個空格,必須要有一個空格。
然後以空格拆分成列表,取最後一個值,判斷是否為數字。這裡的漏洞就是無法判斷用戶是否輸入了多個值,例如find_2 = "Alex 200 Robby 300"
接下來判斷列表中最後一個值是否為數字,上面的內容就能通過。。。
如果是修改文件,就需要打開文件判斷判斷賬戶名是否在文件中,同樣,上面的內容能通過,但會導致修改後的文件不正確。
find_2 = "Alex 200"
if " " in find_2:
salary = find_2.split(" ")[-1]
if salary.isdigit():
with open("info.txt", 'r', encoding="utf-8") as f_2:
for line in f_2:
if find_2.split(" ")[0] in line:
True
錯題集:
在寫腳本中,誤用break導致程式直接退出,
原因是,前面一個break是在for迴圈里,所以break會退到while這個迴圈。而紅框中的break只是在if里,並沒有在迴圈中,所以,break後直接退出了while。所以這裡不需要用任何代碼,迴圈會繼續執行,因為下麵的elif條件是不滿足的。