我是初学程序员,到目前为止我的程序是这样的:
def getYearsandDays():
c = eval(input("Enter a number: "))
d = c // 1
e = (c - d) * 365
f = e // 1
return f,d
print(d , "years and", f, "days")
()
例如,假设c是1.34。将其转换为整数可以得到1年= d。现在1.34 - 1给你.34。乘以356得到124.1 = e。使这个整数给你124天= f。所以1。34年是1年(d)和124天(f)。
我已经知道我的打印功能是错误的,因为我不知道如何获得这样的输出:
6 years and 1 day
1 year and 137 days
67 days
而不是:
6 years and 1 days
1 years and 137 days
0 years and 67 days
我猜我可能必须将我的整数转换回字符串并制作If-Then语句,但我不是百分百肯定。
答案 0 :(得分:4)
这就是我要做的事情:
def years_and_days():
# Use input instead of raw_input if you're using Python 3.x
time = float(raw_input('Enter a number: '))
years = int(time)
days = int((time - int(time)) * 365)
if years:
print years, 'years' if years > 1 else 'year',
if days:
print days, 'days' if days > 1 else 'day'
用法:
>>> years_and_days()
Enter a number: 3
3 years
>>> years_and_days()
Enter a number: 1.34
1 year 124 days
>>> years_and_days()
Enter a number: 0.32
116 days
答案 1 :(得分:0)
如果c是您的输入: 你可以做c MOD 1 ...那会给你小数 要获得整数,您只需要c-cmod1 ...其余的计算应该可以...
mod是模数的缩写 - 这基本上是计算某些东西的剩余部分的方法。所以5mod2是5/2或1的余数。
不确定您使用的是哪种语言,但如果您在Google中搜索模数和语言名称,您将能够找到您要查找的内容。
希望有所帮助
def getYearsandDays():
c = eval(input("Enter a number: "))
d = c - c%1 //years
e = (c -d) * 365 //days in decimal format
f = e - e%1 // days in integer format...you probably would get away with just rounding here too...
return f,d
print(d , "years and", f, "days")
()