我有一个程序,我需要创建一个整年需要一年的程序,并将这个世纪与十年分开:
year=1970
decade=70
century=1900
我希望能够做到这一点:
year= new Year(1970)
dec= year.decade
cent=year.century
我知道我必须创建一个Year对象并实现这两种方法,但我的问题在于数学,我如何花一年时间来提取十年和/或世纪?
我曾尝试将其作为字符串传递给函数,然后在字符串中的最后两个值中构建一个整数,但是我遇到了数据类型的问题,并且想要一个'本机整数'这样做的方式。
提前致谢!
暴风雨
答案 0 :(得分:2)
将年份除以100(仅限整数)。结果是世纪:
1972 / 100 = 19
(当然,再乘以100得到1900)。
剩余部分是该世纪内的一年:
1972 - (19 * 100) = 72
如果你想用10来获得一年中的十年,那就行了。
72 / 10 = 7
答案 1 :(得分:1)
您可以使用divmod内置功能:
--aapt path/to/aapt/binary
答案 2 :(得分:0)
好吧,你可以在字符串中转换你的年份,然后取两个第一个字符并添加00并取两个结束字符。那看起来像那样:
year = 1970
stringyear = str(1970)
century = stringyear[:2] + "00"
century = int(century)
print century
decade = stringyear[2:]
decade = int(decade)
print decade
可能有一种更简单的方法,但效果很好。
答案 3 :(得分:0)
实际上,年份%100很好地回归了十年。
这是我的程序的完成版本... ...
critters=('Rat','ox', 'tiger','rabbit', 'dragon', 'snake', 'horse', 'ram', 'monkey', 'rooster', 'dog', 'pig')
def docrit(yrint):
modval=yrint%12
return critters[modval]
def wieder():
go=input('Again[y,n]')
if go=='y':
return True
else:
return False
def main():
print('Chinese Zodiac Calculator')
yob=int(input('year: '))
cent=int(yob/100)
decade=yob%100
print('century: ',cent)
print('decade: ',decade)
ani=docrit(decade)
print('the animal is ',ani)
if wieder()== True:
main()
else:
exit()
def exit():
print("I'm done. Bye.")
return 0
main()
答案 4 :(得分:0)
那呢?
import math
year = 1930
decade = math.floor((year-1)%100/10)*10
十年将是20,这是正确的,因为20是从1921年到1930年。是的,这很奇怪。但是,如果您想让1930属于30年代,只需去除-1
答案 5 :(得分:0)
这应该有效:
decade = year - (year%10)