繁体   English   中英

得到“ IndexError:列表索引超出范围”

[英]Getting “IndexError: list index out of range”

我想知道为什么会出现此错误,IndexError:列表索引超出范围。 如果需要完整的程序,那么我将上载,但是错误在代码的这一部分。

import random
Sign = ["+-*"]
num = int(random.random()*2)
operator = (Sign[num])
digit = int(random*10)

这意味着输出数组的随机符号。

random.random()返回一个大于0且小于1的浮点数,因此int(random.random()*2)只会返回0或random模块具有一个特定的函数来返回random指定范围内的整数,比使用“滚动自己的”随机整数算法(结果通常更统一)更容易使用。

但是random还具有返回序列的随机成员(例如,str,tuple或list)的功能,因此使用它来选择您的随机运算符是适当的。 例如,

#! /usr/bin/env python

import random

sign = "+-*"

for i in range(10):
    op = random.choice(sign)
    digit = random.randint(0, 9)
    print op, digit

典型输出

+ 7
* 9
+ 0
* 6
* 8
* 5
+ 0
- 1
- 6
- 3

我在该代码中将变量名称更改为op ,因为operator是标准模块的名称。 为您自己的变量使用该名称不是一个错误,但是如果您确实要导入该模块,则肯定会导致问题。 这也使人们在阅读您的代码时感到困惑。

您的列表仅包含一个元素。 尝试这个:

Sign = ["+", "-", "*"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM