1

私はまだ Python にまったく慣れていないので、現在取り組んでいるプログラムで何が起こっているのか混乱しています。コードは以下です。問題は、コードが if/elif/else 行をまったく実行していないことです。メニューと入力を循環し続けるだけです。3.2を使用しています。

# Program to Add, Subtract, Multiply, and Divide

def printmenu():
    print("Calculator v0.01")
    print("[A]dd Two Numbers")
    print("[S]ubtract Two Numbers")
    print("[M]ultiply Two Numbers")
    print("[D]ivide Two Numbers")
    print("[Q]uit the Program")

choice = "x"

while choice.lower != "q":
    printmenu()
    choice = input("What would you like to do? ")
    firstnum = input("What is the first number? ")
    secnum = input("What is the second number? ")
    if choice.lower == "a":
        print("The answer is ",  (firstnum + secnum))
    elif choice.lower == "s":
        print("The answer is ",  (firstnum - secnum))
    elif choice.lower == "m":
        print("The answer is ",  (firstnum * secnum))
    elif choice.lower == "d":
        print("The answer is ",  (firstnum / secnum))
    else:
        print("Choice not recognized.  Try again!")

PS - これは私の最初の投稿です。何か適切に行っていない場合はお知らせください。

ありがとう!

JT

4

3 に答える 3

3
>>> "a".lower
<built-in method lower of str object at 0x0000000001EBBBC0>
>>> "a".lower()
'a'
>>> "a".lower == "a"
False
>>> "a".lower() == "a"
True
>>>

私はあなたがlower()を意味していたと思います.lowerではありません;)

于 2013-04-20T11:20:52.940 に答える
0

Python のすべての組み込み関数は、 を使用して呼び出す必要があります()。だから使う

if choice.lower()!="q":

その場合にのみ、関数が呼び出されます。Falseそれ以外の場合、関数は実行されないため、常に値が返されます

于 2013-04-20T11:24:43.600 に答える
0
  1. lowerで置き換えますlower()
  2. それ以外の場合は、文字を連結するfloat(fisrtnum) + float(secnum)だけで、'2'+'3' に対して 23 が得られます。
于 2013-04-20T11:25:51.913 に答える