簡體   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