[英]Accessing Values from Text Dictionary
我正在嘗試創建一個“這是你的新名稱生成器”程序。 我這樣做是通過詢問用戶的名字和姓氏。 程序然后獲取他們的名字的第一個字母,以及他們姓氏的最后一個字母,並從兩個文本文件中提取新的名字和姓氏。
我已經獲得了用戶的名字和姓名,並從文件中提取信息,但它總是給我文件的最后一行。
我以為我可以像字典一樣設置文件,然后使用用戶的輸入作為鍵,但它似乎不起作用。
有什么建議?
firstName = input("What is your first Name? ")
lastName = input("What is your last Name? ")
fN = firstName[0].lower()
lN_len = len(lastName) -1
lN = lastName[lN_len]
fNdict = {}
with open('firstName.txt') as f:
for line in f:
(fN, fNval) = line.split(",")
fNdict[fN] = fNval
lNdict = {}
with open('lastName.txt') as fileobj:
for line in fileobj:
lNkey, lNvalue = line.split(",")
lNdict[lN] = lNvalue
newFirstName = fNval
newLastName = lNvalue
print("Your zombie Name is: %s %s "%(newFirstName,newLastName))
參考圖片:
當您運行這些行時:
newFirstName = fNval
newLastName = lNvalue
fNval
和lNvalue
具有它們各自循環中的最后一個值。 我認為你的意思是使用用戶的名字和姓氏作為字典的鍵,例如
newFirstName = fNdict[fN]
newLastName = lNdict[lN]
請注意,如果fN
和lN
不在詞典中,則會失敗。 您可能想要創建defaultdict
。
另請注意,Python有一個大多數Python開發人員遵循的官方樣式指南 。 請考慮閱讀並相應地編寫代碼。 您共享的代碼非常難以閱讀。
您可以遵循稍微不同的實現來實現相同的結果。
這應該只進行一次以創建具有名稱的文件。
然后你的名字生成器是一個腳本:
前兩點以這種方式實現:
import json
#these are just brief examples, provide complete dictionaries.
firstnames = {"A": "Crafty", "B": "Brainy"}
lastnames = {"A": "Decapitator", "B": "McBrains"}
with open("fullnames.txt", "w") as ff:
json.dump(firstnames, ff)
ff.write('\n')
json.dump(lastnames, ff)
這將是一個生成帶有名稱的文件的腳本。
名稱生成器將是:
import json
with open("fullnames.txt", "r") as ff:
ll = ff.readlines()
firstnames = json.loads(ll[0].strip())
lastnames = json.loads(ll[1].strip())
inputfirst = input("What is your first Name? ")
inputlast = input("What is your last Name? ")
fn = inputfirst[0].upper()
ln = inputlast[-1].upper() #negative indexes start from the last element of the iterable, so -1 would be the last.
print("Your zombie Name is: {} {} ".format(firstnames[fn], lastnames[ln])) #using string format method, better that the old %
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.