首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:在同一行中打印变量和字符串

Python:在同一行中打印变量和字符串
EN

Stack Overflow用户
提问于 2015-10-02 03:03:33
回答 2查看 4.6K关注 0票数 0

我目前正在尝试制作一个程序,如果变量a可以被变量b整除,它就会打印出来。在试图打印值a和b时,我经常会遇到错误。

我的代码:

代码语言:javascript
复制
a, b = eval(input('Input a list of 2 numbers: '))
a = str(a)
b = str(b)
if (a % b == 0):
    print ( a + 'is divisible by' + b)
else:
    print( a + 'is not divisible by' + b)

错误消息:

追踪(最近一次调用):if (a %b == 0):TypeError:不是所有在字符串格式化期间转换的参数中的文件“C:/User/ not /Documents/Python/As血4问题7.py”中的第4行

EN

回答 2

Stack Overflow用户

发布于 2015-10-02 03:11:40

这是因为您正在将ab转换为strings。你很有可能把他们作为int,他们应该是。如果由于某种原因你不是,那么转换应该是a = int(a),等等。

另外,要避免eval,您可以将其更改为:

代码语言:javascript
复制
a = input('insert a number')
b = input('insert another number')

或者如果你必须立即进入它们,你可以这样做。

代码语言:javascript
复制
a, b = input('Insert two numbers separated by commas').split(',')

只是要确保它们之间没有空位,或者,为了安全起见,在铸造时你可以这样做。

代码语言:javascript
复制
a = int(a.strip())
票数 3
EN

Stack Overflow用户

发布于 2015-10-02 03:12:32

这有几个问题。

代码语言:javascript
复制
a, b = eval(input('Input a list of 2 numbers: '))

以后几年不要再使用eval()了。即使这样,使用时也要非常小心。

代码语言:javascript
复制
a = str(a)
b = str(b)

str()把里面的任何东西变成一条字符串,使.

代码语言:javascript
复制
if (a % b == 0):  #this is where your error is

不可能这样做,因为"%“模运算符期望两边都有数字。因为这些应该是数字,所以尝试用int()或float()语句包装a和b。

代码语言:javascript
复制
a = input('Input the first number: ')
b = input('Input the second number: ')
a = int(a)
b = int(b)
if (a % b == 0):
    print( a + 'is divisible by' + b)
else:
    print( a + 'is not divisible by' + b)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32899955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档