我似乎在使用sublimeREPL在sublime文本2中使用用户输入运行python代码时出现问题。我有一段可以在命令提示符中使用的代码,它不会在REPL中执行。错误似乎是REPL无法处理输入的格式并假设它是一个字符串。我的python是相当有限的,所以有没有办法使REPL与我的代码很好或我需要指定输入?
注意:每次将tempInput转换为int都可行,但是很繁琐。
守则:
# Matthew P
# A program to calculate average grades
def avg(total, elements):
return total / elements
tempInput = 0
runningTot = 0
numGrades = 0
print("\nEnter Grades (Negative Value to Escape): ")
while tempInput > -1:
tempInput = input("-->")
if tempInput > -1:
runningTot = runningTot + tempInput
numGrades = numGrades + 1
print("\nQuit Command Givem")
print("Average Grade: " + str(avg(runningTot,numGrades)))
print("Grade Sum: " + str(runningTot))
print("Number of Grades" + str(numGrades))
命令提示符下的输出:
~\Documents\Python Scripts>userinput.py
Enter Grades (Negative Value to Escape):
-->99
-->98
-->97
-->96
-->95
-->-1
Quit Command Givem
Average Grade: 97
Grade Sum: 485
Number of Grades 5
以及在sublimeREPL中运行时的错误(我运行的是使用ctrl + ,, f命令)
Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 18 2013, 21:18:40) [MSC v.1600 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
Enter Grades (Negative Value to Escape):
-->100
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 17, in <module>
TypeError: unorderable types: str() > int()
>>>
答案 0 :(得分:0)
input()
返回一个字符串,但是你将它与一个整数进行比较:
tempInput = input("-->")
if tempInput > -1:
使用int()
进行比较:
tempInput = int(input("-->"))
您使用Python 2 在命令行上运行代码,其中input()
将输入的字符串评估为Python表达式。 Python 2也不介意比较数字和字符串;数字总是在数字之前排序。
在Sublime中,您在Python 3下运行了代码,但input()
仅接受字符串输入。