【问题标题】:How to print int and float value from same input?如何从相同的输入打印 int 和 float 值?
【发布时间】:2017-08-06 07:46:58
【问题描述】:

我必须完成以下任务:

读取两个整数并打印两行。第一行应该包含整数除法,a//b。第二行应该包含浮点除法,a/b。

我试过这样的代码:

a = int(raw_input())
b = int(raw_input())
print a//b
print a/b

除此之外,有没有其他方法可以解决此类问题?请帮忙..

【问题讨论】:

  • 所有代码行的缩进必须相同
  • 没有得到你先生@Serenity
  • 你的后两行有不同的缩进级别。该程序在语法上不正确。
  • 事情是......当您将代码复制到 SO 时,有时您会得到错误的缩进。显然,这不是 OP 遇到的问题。 (我的猜测)
  • @DYZ 我刚刚复制了代码,所以它可能会显示不同的缩进,我猜这不是问题。

标签: python python-2.7


【解决方案1】:
a = int(raw_input())
b = int(raw_input())
print a/b 
print a/float(b)

注意 - Python 2.7
在第 3 行- a, b 都是 int 所以a/b 总是给出 int 值的答案。
如果一个元素是浮点类型,则始终以浮点值回答。

【讨论】:

  • 是的,这是个好主意,它很有效。我试过像 print float(a/b) 这样写,但它显示了一个错误。
【解决方案2】:

试试

a = int(raw_input())
b = int(raw_input())
print a//b
print a/float(b)

【讨论】:

  • 因为ab 都是`int` 类型。因此,如果我们执行 a/b,答案会自动转换为 int
  • @Rohit-Pandey 你明白了吗?
  • 请尝试在Python ide divison 操作/ 的两个int @Arput Svt
  • 在 Python ide 中,当 a 和 b 都是整数时,a/b 仍然给出整数。
  • 你用的是pyhton2还是python3?
【解决方案3】:

检查here 和 试试(Python 2.7.10):

a = int(raw_input())
b = int(raw_input())
print (1.0*a/b) # float value 
print a/b # int value

【讨论】:

  • 这不是一个好主意。什么是 a=4 和 b=3。根据您的解决方案,浮动值是多少?
  • 为什么选择@BharatChaudhary?输出将是 1.333333333331
  • 你期望什么输出? @BharatChaudhary
【解决方案4】:

其他方式?保持代码可读性是最好的。你可以做的是格式化打印语句(下面的例子):

更新:这是一个适用于 python2 和 python 3 的工作示例

from __future__ import division # use this if python2

a = int(input()) # in python2 input() is sufficient
b = int(input())

intdiv = a//b  
floatdiv = a/b

print("{0}\n{1}".format(intdiv,floatdiv)) # this is the "normal" way to print things. \n = Linebreak

或者:

print("{}\n{}".format(intdiv,floatdiv)) # alternative

或者:

print("Int: {}\nFloat: {}".format(intdiv,floatdiv)) # alternative

最后的打印:

Int: 0
Float: 0.6666666666666666

此处的文档和其他示例:https://docs.python.org/2/library/string.html#format-examples

【讨论】:

  • 但是如果我的输入是 a=4,b=3 怎么办?检查。
  • @Bharat 很高兴听到。 from future import division 常用python2获取python3处理除法的方式(2个整数相除时返回float)
  • 知道了@Antom,谢谢
  • @BharatChaudhary 如果完成,请考虑将我的或其他标记为已回答。
【解决方案5】:

试试这个:

a = int(raw_input())
b = int(raw_input())
print a/b
print float(a)/b

【讨论】:

  • 我认为这行不通。当 a=5 和 b=2 时检查您的代码
  • 它工作正常,check here
  • 现在是正确的,以前是 print float(a/b)。
  • 是的,直到你问我才注意到。我现在更新了。谢谢
猜你喜欢
  • 2023-04-02
  • 2015-08-09
  • 1970-01-01
  • 1970-01-01
  • 2021-07-10
  • 2022-12-10
  • 1970-01-01
  • 2017-02-22
  • 2021-07-25
相关资源
最近更新 更多