SyntaxError:name';奶牛';在Python3.6中全局声明之前分配给
我试图在循环中编辑全局变量SyntaxError:name';奶牛';在Python3.6中全局声明之前分配给,python,global-variables,python-3.6,Python,Global Variables,Python 3.6,我试图在循环中编辑全局变量cows和bulls,但出现此错误“SyntaxError:name'cows'在全局声明之前分配到” 在将其声明为全局值之前,先给它一个值。您应该首先声明您的全局范围 顺便说一句,您不需要全局声明。删除这一行。Python没有块作用域,只有函数和类引入了新的作用域 因为这里没有函数,所以不需要使用global语句,cows和bulls已经是全局的了 您还有其他问题: input()始终返回字符串 索引工作在字符串上(您可以获得单个字符),您确定要这样做吗 user\
cows
和bulls
,但出现此错误“SyntaxError:name'cows'在全局声明之前分配到”
在将其声明为全局值之前,先给它一个值。您应该首先声明您的全局范围
顺便说一句,您不需要全局声明。删除这一行。Python没有块作用域,只有函数和类引入了新的作用域 因为这里没有函数,所以不需要使用
global
语句,cows
和bulls
已经是全局的了
您还有其他问题:
始终返回字符串input()
- 索引工作在字符串上(您可以获得单个字符),您确定要这样做吗
总是为false<代码>'1'==1测试两种不同类型的对象是否相等;事实并非如此user\u输入[index]==num
- 随机编号中的
user\u input[index]也总是会为false,您的
列表只包含整数,不包含字符串random\u no
input()
转换为整数,而不必费心于enumerate()
:
import random
random_no = random.sample(range(0, 10), 4)
cows = 0
bulls = 0
#random_num = ','.join(map(str, random_no))
print(random_no)
user_input = input("Guess the no: ")
for index, num in enumerate(random_no):
global cows, bulls
print(index, num)
if user_input[index] == num:
cows += 1
elif user_input[index] in random_no:
bulls += 1
print(f'{cows} cows and {bulls} bulls')
user_input = int(input("Guess the no: "))
for num in random_no:
if user_input == num:
cows += 1
elif user_input in random_no:
bulls += 1