題解|ZeroJudge a135. 12250 - Language Detection
【題目】a135. 12250 - Language Detection
題解
1 | a={"HELLO":"ENGLISH", "HOLA":"SPANISH","HALLO":"GERMAN","BONJOUR":"FRENCH","CIAO":"ITALIAN","ZDRAVSTVUJTE":"RUSSIAN"} |
解說
首先,我們建立一個字典a,由題目,我們可以得知各語言的HELLO,所以我們先以以下格式建立字典"單字":"語言"
,例如HELLO是英文,我們就在字典加入"HELLO":"ENGLISH"
,依此類推。
可以看到,第5行有一個a.get(w)!=None
,這是用來檢查輸入的單字是否是已知的(在字典a內的)單字,如果不是(不在字典a內)的話,a.get(w)==None
。
FAQ
為什麼要用a.get(w)
?我記得a[w]
不是也是一樣意思嗎?有差嗎?
有差!差別就在…
如果你用a[w]
,而字典裡沒有w
這個key的話,你會得到一個KeyError,但是,如果使用a.get(w)
的話,他只會return None
而不報錯。
print()裡的sep
是甚麼?
當在print()
函數中使用逗號(,
)分隔時,print()
預設會有一個空格,例如:
1 | print("hello","world") |
會輸出
1 | hello world |
但是,假如我們在print()
中加入sep
,就可以將空格替換成其他東西,例如:
1 | print("hello","world",sep="&") |
會輸出
1 | hello&world |
這裡,我們寫sep=""
,表示不要有東西,因此當我們寫
1 | print("hello","world",sep="") |
輸出就會是
1 | helloworld |
while迴圈裡的w!="#"
是甚麼?
從【輸入說明】可以看到
輸入以僅含有一個「#」的一行作為結束,該行不需處理。
w!="#"
就是用來判斷輸入是不是#
,如果是的話,就跳出迴圈,結束程式。
結語
以上就是本題題解,倘若有誤或是對於解題仍有疑問,歡迎於底下留言區留言。