簡體   English   中英

即使我輸入“ m”或“ f”,性別輸入循環也會不斷重復

[英]gender input loop keeps repeating even if I enter “m” or “f”

如果不是m或f,則重復提示直到它為or。 我輸入了m或f,但是循環不斷重復。 為什么?

gender = input('m/f? ')

while gender != 'm' or gender != 'f': 
    print("Type 'm' or 'f'") 
    gender = input('m/f? ') 
if gender == 'm': 
    gender = 'him' 
elif gender == 'f': 
    gender = 'her' 

print("It read {}".format(gender))

只是說genderm 查看以下語句:

while gender != 'm' or gender != 'f':

gender!='m'嗎? 不。 Or ……是gender!='f'嗎? 是! OK,保持while荷蘭國際集團!

您不想要or ,您想要and

由於這一行: while gender != 'm' or gender != 'f':

改為使用: while gender != 'm' and gender != 'f':

gender不能同時包含“ m”和“ f”

基本面

正確或正確:正確

是非題:是

錯誤或正確:正確

錯誤或錯誤:錯誤

只要兩個條件都不滿足,就必須繼續請求輸入。

或必須替換為“和”。

嘗試:

gender = raw_input('m/f?')

while True: 
    print("Type 'm' or 'f'") 
    gender = raw_input('m/f? ') 
    if gender=='m' or gender=='f':
        break

if gender == 'm': 
    gender = 'him' 
elif gender == 'f': 
    gender = 'her' 

print(“讀取為{}”。format(gender))

已經有很多答案了,但是我認為,最Python化的方式也消除了AND / OR混淆,並且如果您想為other添加o ,則很容易擴展。

while gender not in 'mf':

也就是說, gender列表中不存在性別。

在您檢查的同時,您要檢查字符串的性別是否不等於'm'或'f',這將一直存在,因為不能同時為兩者。

更改為或修復此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM