我正在编写一个初学者程序,给出字母表的5个首字母:A,B,C,D,E通过选择1,100之间的2个随机数然后使用随机数找到这个数字的有效性数操作来自:
signs = ['+','-','*','/']
它应该给字母一个2个数字一个用于强度,另一个用于有效性: 我无法在字母后插入有效性和强度数字,因此我需要这样的内容:
['A',10,43,'B',54,67,'C',9,8,'D',2,22,'E',45,32]
然而我得到了结果:
['A', 110, 110, 110, 110, 110, -72, -72, -72, -72, -72, 'B', 'C', 'D', 'E']
以下是我的代码,非常感谢任何帮助。这是纯粹的初学者编码练习之后我必须把它放到一个函数中:
import random
list_alpha = ["A","B","C","D","E"]
operator = random.choice(operations)
print(list_alpha)
答案 0 :(得分:1)
您的问题来自于您始终在1
位置插入值。
你可以很容易地改进这个并通过改变一些事情来解决你的问题(注意eval
可能很危险!)
list_alpha = []
# just iterate directly over a string
for alpha in 'ABCDE':
list_alpha.append(alpha)
for _ in range(2):
number1 = random.randint(1, 100)
number2 = random.randint(1, 100)
operator = random.choice(operations)
answer = eval('{}{}{}'.format(number1, operator, number2))
list_alpha.append(answer)
print(list_alpha)
为避免使用eval
,您只需将函数放入列表中即可:
import operator
operations = [operator.add, operator.sub, operator.mul, operator.div]
# Then you just use this:
answer = random.choice(operations)(number1, number2)