import os
import random
name=input('what is your name? ')
print('hello lets answer some maths',name)
b=random.randint(1,10)
a=random.randint(1,10)
input(int("what is? ",float(b)+float(a) ))
帮助 我一直在标题中得到错误,虽然它现在改变了基础。
答案 0 :(得分:1)
您使用字符串和作为基础调用int()
。函数签名如下所示:
int(x, base=10) -> int or long
所以:
int("what is? ", float(b)+float(a))
尝试将字符串'what is?'
转换为整数,将'what is?'
视为随机基float(b) + float(a)
生成的。例如:
>>> a = 8
>>> b = 1
>>> int('what is?', float(b)+float(a))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 9: 'what is?'
>>> b = 27
>>> int('what is?', float(b)+float(a))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 35: 'what is?'
我认为您尝试做的只是输出用户输入的提示,在这种情况下您可以将代码更改为:
answer = int(input("What is {} {} {}? ".format(float(b), '+', float(a))))
这使用str.format()
创建一个格式化字符串,其中包含两个数值,运算符作为参数。然后,input()
的返回值将转换为int
。
答案 1 :(得分:0)
您正在调用 int()来执行字符串
Pythonic迭代文件和转换到 int :
for line in open(fname):
if line.strip(): # line contains eol character(s)
n = int(line) # assuming single integer on each line
你有ValueError的原因是因为int无法将空字符串转换为整数。在这种情况下,您需要在转换之前检查字符串的内容,或者错误除外:
try:
int('')
except ValueError:
pass # or whatever