这条语句赋值写法不对,您这样子赋值,没有改变前面定义的列表number,您赋值的这个number只是函数的内部变量,前面定义的number仍然是初值[]。这样,您永远不可能让空列表number与有四个值的result相等。所以输出永远的“再接再厉”。
可以改用原址更改列表的extend()方法
numbers.extend(sample(caipiao_list, 4))
代码运行效果截屏图片,四个数字全中机率有些低,我加入了中1~3数字的分支。
复刻您的代码,也一样踩了您的坑😂😂还好,爬了出来。😊
#!/sur/bin/nve python
# coding: utf-8
from random import sample
caipiao_list = list('1234567')
numbers,result = [], []
def last_list():
numbers.extend(sample(caipiao_list, 4))
print(f"\nZhongjianhaoma: {numbers}, {len(numbers)}")
def my_list():
while 1:
if len(result) < 4:
up_num = input('Input Number(1~7):').strip() # 去除输入前后可能存在的空格。
result.append(up_num)
else:
break
print('\n', result, len(result))
def hit():
count = 0
print(numbers)
for i in result:
print(i in numbers)
if i in numbers:
count += 1
print(i, count)
return count
def win_l():
n = hit()
if numbers == result:
print('\nWin!')
elif n:
print(f'\nscore a hit {n} numbers.')
else:
print('\nZaijiezaili.')
if __name__ == '__main__':
my_list() # 输入四个数字。
last_list() # 随机选取四个数字。
win_l() # 胜负评判。
所以,用列表作“全局变量”使,一定记得,要“原址操作”。