對于 get_letter_from_user 函式,在使用 while 回圈進行驗證時,不斷重復無效輸入;我想確保它是單個字母和小寫字母,并且我想確保它不等于函式的第二個引數。不過,我不確定我做錯了什么。(如果你有提示,如何在編碼方面獲得靈感)
def get_text_from_user(prompt):
return input(prompt).lower()
def get_letter_from_user(prompt, not_allowed):
not_allowed = ''
allowed = input(prompt).lower()
while not allowed == not_allowed or allowed.isalpha() or len(allowed) > 1:
allowed = str(input('Invalid letter, try again:'))
return allowed
def main():
text = get_text_from_user("Enter some text: ")
ltr1 = get_letter_from_user("Enter a letter: ", '')
ltr2 = get_letter_from_user("Enter another letter: ", ltr1)
new_text = text.replace(ltr1,ltr2)
print("The new text is", new_text)
if __name__ == "__main__":
main()
uj5u.com熱心網友回復:
功能建議:
def get_letter_from_user(prompt, not_allowed):
allowed = input(prompt).lower()
while allowed == not_allowed or len(allowed) > 1:
print('not_allowed:',not_allowed)
allowed = str(input('Invalid letter, try again:'))
return allowed
ltr1 = get_letter_from_user("Enter a letter: ", '')
ltr2 = get_letter_from_user("Enter another letter: ", ltr1)
樣本輸出:
Enter a letter: d
Enter another letter: d
not_allowed: d
Invalid letter, try again:d
not_allowed: d
Invalid letter, try again:a
uj5u.com熱心網友回復:
要替換字串中的一個字母或字母序列,您可能需要查看該string.replace()函式:
text = input('Enter some text: ')
find = input('Enter a letter to replace: ')
replace_with = input(f'Enter a letter to replace \'{find}\' with: ')
replaced = text.replace(find, reolace_with)
print('The new text is:', replaced)
uj5u.com熱心網友回復:
添加另一個小細節,因為您詢問如何更好地編碼:
我永遠不會使用立即更改為空字串的引數創建函式。喜歡:
def get_letter_from_user(prompt, not_allowed):
not_allowed = ''
而是使用這樣的默認值:
def get_letter_from_user(prompt, not_allowed=''):
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/520310.html
下一篇:Linux LVS的四種作業模式
