最後の数時間私はPythonで簡単な数学のインタプリタを使ってプログラミング言語全体を理解しています。私の通訳はMentos(オペレーティングシステムEthanが本のJPodで作った名前を付けました)と呼ばれています。ひどく書かれたコードがあれば、私はこれを動作させようとしています。最適化は後で行います。今ここに私のコードは次のとおりです。私はそれをコンパイルすると私の通訳の問題
#Defining my main vars
pointer = 0
intstartvalue = 0
intendvalue = 0
intpointer = 0
intlist = []
templist = []
def main():
#This code takes the user input
print("Mentos> ", end="")
userinput = input("")
userinputvalue = []
for x in userinput:
#Probally a better way to do this but meh
#Checks if x is a number
if x == ("1") or ("2") or ("3") or ("4") or ("5") or ("6") or ("7") or ("8") or ("9") or ("0"):
userinputvalue[x] += 1 #1 refers to an integer. I did intend to do this with a string in a list but it didn't work either
#Checks if x is a decimal point
elif x == ("."):
userinputvalue[x] += 2 #2 refers to a decimal point
#Checks if x is a operator
if x == ("*") or ("/") or ("+") or ("-"):
userinputvalue[x] += 3 #3 refers to a operator
#Will program this section when I can successfully store the input to memory
def add():
pass
def sub():
pass
def div():
pass
def mul():
pass
for c in userinputvalue:
if c == 1:
intstartvalue = c
#Great job me, embedded for loops
for x in userinputvalue:
if x == 3:
intendvalue = intendvalue - (c - 1)
intpointer = intstartvalue
#I intend to cycle through the input for numbers and and add it to a list, then join the list together
#To have the first number.
if __name__ == "__main__":
main()
私はエラーを取得する:
Traceback (most recent call last):
File "/home/echo/Mentos.py", line 46, in <module>
main()
File "/home/echo/Mentos.py", line 17, in main
userinputvalue[x] += 1
TypeError: list indices must be integers or slices, not str
私はこのエラーを取得し、どのようにそれを修正する理由を知りたいです。
あなたの質問は何ですか? –
具体的な質問がありますか? – mdurant
なぜTraceback(最新の最後の呼び出し)を受け取るのですか: ファイル "/home/echo/Mentos.py"、行46、 main() ファイル "/home/echo/Mentos.py"第17行目のメイン userinputvalue [x] + =TypeError:リストインデックスはstrではなく整数またはスライスでなければなりません –