2017-10-05 24 views
-2

我是python的新手。以下是来自Y Daniel Liang Python第4章 的练习编程练习,如果开奖号码是333,那么对于不同的用户输入(例如133,233,433,533,633,733,833,933,我不知道为什么。从Y开始的python中的彩票程序Daniel Liang

#!/usr/bin/env python3 

#import random 

lottery = 333 #random.randint(100, 999) 
guess = int(input("\nEnter a three-digit number: ")) 
print("\nThe Lottery Number is:", lottery) 

lottery_digit1 = lottery // 100 
lottery %= 100 
lottery_digit2 = lottery // 10 
lottery_digit3 = lottery % 10 

guess_digit1 = guess // 100 
guess %= 100 
guess_digit2 = guess // 10 
guess_digit3 = guess % 10 

if guess == lottery: 
    print("Perfect Match: First Prize $10,000") 
elif (guess_digit1 == lottery_digit1 or 
     guess_digit1 == lottery_digit2 or 
     guess_digit1 == lottery_digit3) and \ 
    (guess_digit2 == lottery_digit1 or 
    guess_digit2 == lottery_digit2 or 
    guess_digit2 == lottery_digit3) and \ 
    (guess_digit3 == lottery_digit1 or 
    guess_digit3 == lottery_digit2 or 
    guess_digit3 == lottery_digit3): 
    print("Matching All Digits: Second Prize $3,000") 
elif (guess_digit1 == lottery_digit1 or 
     guess_digit1 == lottery_digit2 or 
     guess_digit1 == lottery_digit3) or \ 
    (guess_digit2 == lottery_digit1 or 
    guess_digit2 == lottery_digit2 or 
    guess_digit2 == lottery_digit3) or \ 
    (guess_digit3 == lottery_digit1 or 
    guess_digit3 == lottery_digit2 or 
    guess_digit3 == lottery_digit3): 
    print("Matching a Single Digit: Third Prize $1,000") 
else: 
    print("Nice Try.") 
+1

这是从如何写面条代码的教科书? –

回答

3

的原因,你已经看到了比赛的时候,最后两位数字是相同的是becasue这里这些行:

lottery %= 100 
... 
guess %= 100 

你正在改变都彩票和猜测的值。 +=,-=,*=,/=%=运算符更改它们所用变量的值。你做这个手术后,这样的变量成为:

lottery =333 
lottery %= 100 
#lottery is now 33 

guess = 733 
guess %= 100 
#guess is now 33