2
前引用了我在使用PyCharm社區編輯一個簡單的練習,我得到一個警告:沒有局部變量,但警告:分配
這種檢查發出警告之前 分配引用局部變量。
但是這裏沒有局部變量,並且它在Windows PowerShell上運行良好。它出什麼問題了?
# This is a guess the number game.
import random
secret_number = random.randint(1, 21)
print("I am thinking of a number between 1 and 20. You have three chances.")
# Ask the player to guess 3 times.
for guesses_taken in range(1, 4):
guess = int(input('Take a guess.\n'))
if guess > secret_number:
print('Your guess is too high.')
elif guess < secret_number:
print('Your guess is to low.')
elif guess == secret_number:
if guesses_taken == 1:
print('Oh my god. You just guessed only one time.')
else:
print("You are right. I'm thinking of %s, and you guessed my
number in %s guesses." % (secret_number, guesses_taken))
else:
break
if guess != secret_number: --> # Name 'guess' can be not defined.
print('Nope. The number I was thinking of was ' + str(secret_number) + '.')
同樣,這裏修改後的版本仍然有同樣的問題。
# This is a guess the number game.
import random
secret_number = random.randint(1, 21)
print("I am thinking of a number between 1 and 20. You have three chances.")
# Ask the player to guess 3 times.
for guesses_taken in range(1, 4):
guess = int(input('Take a guess.\n'))
if guess > secret_number:
print('Your guess is too high.')
elif guess < secret_number:
print('Your guess is to low.')
else:
break
if guess == secret_number: --> # Name 'guess' can be not defined
if guesses_taken == 1: --> # Name 'guesses_taken' can be not defined
print('Oh my god. You just guessed only one time.')
else:
print("You are right. I'm thinking of %s, and you guessed my number in %s guesses." % (
secret_number, guesses_taken))
else:
print('Nope. The number I was thinking of was ' + str(secret_number) + '.')
**感謝您的幫助**但是,在編程過程中這個問題允許,還是會帶來更多意想不到的麻煩? – Tuto
不,你的程序非常好,因爲你的循環肯定會執行。 PyCharm用來給你警告的規則可能不會考慮到這些,只依賴於代碼的一般結構。無論如何,在沒有真正執行它的情況下,可以做什麼都有限制。所以,沒有任何麻煩! –
**非常感謝** – Tuto