Python 整数仍为整数,但带小数点的数字在我的输出答案中仍为小数点?
我目前的代码如下:Python 整数仍为整数,但带小数点的数字在我的输出答案中仍为小数点?,python,Python,我目前的代码如下: num = input() numlist = num.split(",") def even(list): string = "" for number in list : number = float(number) if number %2 == 0: string += "~"+str(number) return(string) def odd(list): string =
num = input()
numlist = num.split(",")
def even(list):
string = ""
for number in list :
number = float(number)
if number %2 == 0:
string += "~"+str(number)
return(string)
def odd(list):
string = ""
for number in list:
number = float(number)
if number %2 != 0:
string += "~"+str(number)
return(string)
print "even numbers :" ,even(numlist)
print "odd numbers :" ,odd(numlist)
我的输出:
偶数:~56.0
奇数:~3.0~1.0~5.9~12.6~8.9
预期产出:
偶数:~56
奇数:~3~1~5.9~12.6~8.9
感谢您的帮助因为您获得了字符串,请尝试在您的方法中使用拆分
。
,即:
if string.split('.')[-1] == '0':
string = string.split('.')[0]
完整程序:
num = input()
numlist = num.split(",")
def even(list):
string = ""
for number in list :
number = float(number)
if number %2 == 0:
string += "~"+str(number)
if string.split('.')[-1] == '0':
string = string.split('.')[0]
return(string)
def odd(list):
string = ""
for number in list:
number = float(number)
if number %2 != 0:
string += "~"+str(number)
if string.split('.')[-1] == '0':
string = string.split('.')[0]
return(string)
print ("even numbers :" ,even(numlist))
print ("odd numbers :" ,odd(numlist))
样本输出:
5,5.6
even numbers :
odd numbers : ~5~5.6
注:浮体上不得使用模量。在这里,它只考虑整数部分,而不是小数部分 简单的方法是将
numlist
中的原始字符串附加到输出字符串
我还更改了函数参数的名称:不应将list
用作变量名,因为这会影响内置的list
类型
def even(lst):
string = ""
for s in lst :
number = float(s)
if number %2 == 0:
string += "~" + s
return string
def odd(lst):
string = ""
for s in lst:
number = float(s)
if number %2 != 0:
string += "~" + s
return string
# Test
data = '3,1,56,5.9,12.6,8.9'
numlist = data.split(',')
print numlist
print "even numbers :" ,even(numlist)
print "odd numbers :" ,odd(numlist)
输出
['3', '1', '56', '5.9', '12.6', '8.9']
even numbers : ~56
odd numbers : ~3~1~5.9~12.6~8.9
您可以使用floats的is_integer()方法检查浮点是否为整数。如果它是整数,则将其强制转换为int,否则保持原样。 所以你可以这样做:
num = input()
numlist = num.split(",")
def even(list):
string = ""
for number in list :
number = float(number)
if number.is_integer():
number = int(number)
if number %2 == 0:
string += "~"+str(number)
return(string)
def odd(list):
string = ""
for number in list:
number = float(number)
if number.is_integer():
number = int(number)
if number %2 != 0:
string += "~"+str(number)
return(string)
print "even numbers :" ,even(numlist)
print "odd numbers :" ,odd(numlist)
输入:56,3,5.9,12.6,8.9
输出:偶数:~56奇数:~3~5.9~12.6~8.9
无论如何,我同意其他人的观点,即对非整数使用模真的很奇怪。我的预期输出是偶数:~56奇数:~3~8.9~7.7~5你的问题包括你的输入、预期输出和观察到的输出。什么不起作用在我的PCeidted中一切都很好,检查我的期望值output@Bharathshetty我的观点是,在以前的版本中,
input
函数实际上没有被调用。