Python中文
首页
教程
问答
标签
搜索
登录
注册
如何:保留dict中的键,以便在随机选择后继续使用?在翻译器中用值反转键以切换语言?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>前提:我是个新手,所以要保持警惕</p> <p>首先是我有一些问题的代码:</p> <pre><code>import random import time vocabulary = { 'hola':'hello', 'adiós':'bye', 'noche':'night', 'pronto':'soon' } def spa_to_eng(): already_used = [] total_attempts = 0 while len(already_used) < len(vocabulary): spa_to_eng = list(vocabulary.keys()) for key in spa_to_eng: key = random.choice(spa_to_eng) if key not in already_used: print("word to translate:",key) answer = input("enter translation: ") if answer == vocabulary[key]: print("RIGHT!\n") total_attempts = total_attempts + 1 already_used = already_used + [key] else: print("NOPE! The right answer is",vocabulary[key].upper(),"\n") total_attempts = total_attempts + 1 time.sleep(1.5) else: continue break print(len(vocabulary),"words done in",total_attempts,"total attempts.") print("Effectiveness:",str(int(len(vocabulary)/total_attempts*100))+"%") spa_to_eng() </code></pre> <p>现在两个问题我´我想找到解决办法:</p> <p>1)我的目的是在猜出字典(词汇表)中的所有单词后,将最终结果打破并打印出来。但是,代码有时在尝试2次后停止,有时在尝试3或4次后停止。相反,在跑步结束时,我应该已经完成了4个单词,或者不管它们的数量是多少(这就是“while len(already\u used)”的原因<;len(词汇):“”,根据我的能力,尝试次数不详。在pythontutor.com上进行模拟时,代码似乎跳入了字典,从一个键切换到另一个键,并将一些键标记为已选择的键,因此在尝试2到4次拒绝再次使用它们后,代码停止。简言之:如果我猜到了这个词,就不应该在以后的问题中使用这个词;如果你猜不到,应该一次又一次地问,直到我最后写出正确的译文</p> <p>2)是否有一个简单的方法来反转键和值的顺序?为了能够从英语翻译成西班牙语,而不是从西班牙语翻译成英语,我想几乎什么都没有改变</p> <p>抱歉,时间太长了,如果有人帮忙的话,非常感谢。:)</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您正在初始化主循环中的单词列表<code>spa_to_eng</code><strong>,因此每次调用<code>random.choice(spa_to_eng)</code>时,它都有一个完整的词汇表可供选择。您应该在进入<code>while</code>循环之前初始化列表,然后从列表中删除正确猜测的单词,而不是将它们附加到单独的列表中</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
Django:。是不是“超级用户”字段不起作用
10 回答
Django:'DeleteQuery'对象没有属性'add'
1 回答
Django:'ModelForm'对象没有属性
8 回答
Django:'python manage.py runserver'返回'TypeError:'WindowsPath'类型的对象没有len()
2 回答
Django:'Python管理.pysyncdb'不创建我的架构表
4 回答
Django:'Python管理.py迁移“耗时数小时(和其他奇怪的行为)
9 回答
Django:'readonly'属性在我的ModelForm上不起作用
6 回答
Django:'RegisterEmployeeView'对象没有属性'object'
1 回答
Django:'str'对象没有属性'get'
9 回答
Django:'创建' 不能被指定为Order模型表单中的值,因为它是一个不可编辑的字段
9 回答
Django:“'QuerySet'类型的对象不是JSON可序列化的”
5 回答
Django:“'utf8'编解码器无法解码位置19983中的字节0xe9:无效的连续字节”,加载临时文件时
5 回答
Django:“<…>”需要有一个字段“id”的值,然后才能使用这个manytomy关系
9 回答
Django:“AnonymousUser”对象没有“get_full_name”属性
8 回答
Django:“ascii”编解码器无法解码位置1035中的字节0xc3:序号不在范围内(128)
3 回答
Django:“BaseTable”对象不支持索引
1 回答
Django:“collections.OrderedDict”对象不可调用
8 回答
Django:“Country”对象没有属性“all”
4 回答
Django:“Data”对象没有属性“save”
3 回答
Django:“datetime”类型的对象不是JSON serializab
3 回答