Win_l这块只会输出zaijiezaili,result==nmbers这块实现不了
Win_l这块只会输出zaijiezaili,result==nmbers这块实现不了,如何解决?(语言-python)
Win_l这块只会输出zaijiezaili,result==nmbers这块实现不了
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 梦幻精灵_cq 2023-07-14 13:12关注
这条语句赋值写法不对,您这样子赋值,没有改变前面定义的列表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() # 胜负评判。
所以,用列表作“全局变量”使,一定记得,要“原址操作”。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥20 Wpf Datarid单元格闪烁效果的实现
- ¥15 图像分割、图像边缘提取
- ¥15 sqlserver执行存储过程报错
- ¥100 nuxt、uniapp、ruoyi-vue 相关发布问题
- ¥15 浮窗和全屏应用同时存在,全屏应用输入法无法弹出
- ¥100 matlab2009 32位一直初始化
- ¥15 Expected type 'str | PathLike[str]…… bytes' instead
- ¥15 三极管电路求解,已知电阻电压和三级关放大倍数
- ¥15 ADS时域 连续相位观察方法
- ¥15 Opencv配置出错