Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用python分隔几十年和几个世纪_Python - Fatal编程技术网

用python分隔几十年和几个世纪

用python分隔几十年和几个世纪,python,Python,我有一个我正在创建的程序,我需要能够把一年作为一个整数,把世纪和十年分开: year=1970 decade=70 century=1900 我希望能够做到这一点: year= new Year(1970) dec= year.decade cent=year.century 我知道我必须创建一个Year对象并实现这两种方法,但我的问题是数学,我如何用一年的时间提取十年和/或世纪 我曾尝试将其作为字符串传递给函数,然后用字符串中的最后两个值构建一个整数,但我在数据类型方面遇到了问题,需要一种

我有一个我正在创建的程序,我需要能够把一年作为一个整数,把世纪和十年分开:

year=1970
decade=70
century=1900
我希望能够做到这一点:

year= new Year(1970)
dec= year.decade
cent=year.century
我知道我必须创建一个Year对象并实现这两种方法,但我的问题是数学,我如何用一年的时间提取十年和/或世纪

我曾尝试将其作为字符串传递给函数,然后用字符串中的最后两个值构建一个整数,但我在数据类型方面遇到了问题,需要一种“本机整数”的方法来实现

提前谢谢


暴风雨

仅将年份除以100整数。其结果是世纪:

1972 / 100 = 19
当然,再乘以100得到1900

剩下的是该世纪内的一年:

1972 - (19 * 100) = 72
如果你想用10来获得一年中的十年,也可以这样做:

72 / 10 = 7

仅将年份除以100整数。其结果是世纪:

1972 / 100 = 19
当然,再乘以100得到1900

剩下的是该世纪内的一年:

1972 - (19 * 100) = 72
如果你想用10来获得一年中的十年,也可以这样做:

72 / 10 = 7

好吧,你可以把你的年份转换成字符串,然后取前两个字符,加00,取最后两个字符。看起来是这样的:

year = 1970
stringyear = str(1970)
century = stringyear[:2] + "00"
century = int(century)
print century
decade = stringyear[2:]
decade = int(decade)
print decade

可能有一种更简单的方法,但效果很好。

好吧,你可以把年份转换成字符串,然后取前两个字符,加上00,再取最后两个字符。看起来是这样的:

year = 1970
stringyear = str(1970)
century = stringyear[:2] + "00"
century = int(century)
print century
decade = stringyear[2:]
decade = int(decade)
print decade
可能有一种更简单的方法,但效果很好。

您可以使用内置函数:

>>> divmod(1664, 100)
(16, 64)
您可以使用内置功能:

>>> divmod(1664, 100)
(16, 64)

实际上,百分之一百年很好地回报了十年

这是我的程序的完成版本,它可以工作

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()

实际上,百分之一百年很好地回报了十年

这是我的程序的完成版本,它可以工作

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()
这个怎么样

import math

year = 1930

decade = math.floor((year-1)%100/10)*10
十年将是20年代,这是正确的,因为20年代是从1921年到1930年。是的,很奇怪。但是,如果你想让1930年属于30年代,只需去掉-1,这个呢

import math

year = 1930

decade = math.floor((year-1)%100/10)*10
十年将是20年代,这是正确的,因为20年代是从1921年到1930年。是的,很奇怪。但是如果你想让1930属于30年代,只需去掉-1就行了,这应该可以:

decade = year - (year%10)
这应该起作用:

decade = year - (year%10)

我不知道你们打算做什么,但注意1900和1970不在同一个世纪,1970和2000是。我不知道你们打算做什么,但注意1900和1970不在同一个世纪,1970和2000是。我真的想避免把字符串转换成整数。我正在创建一个小程序来计算给定年份的中国生肖异常。其中只有12个,并将它们存储在一个数组中,按顺序,我取年份的最后两位数,得到年份%12的模数,这将返回对应动物数组的正确索引。如果我不剔除世纪,它不会给出正确的答案,Martin Nyolt的解决方案在你的情况下以及任何情况下都会更好。我真的想避免将字符串转换为整数。我正在创建一个小程序来计算给定年份的中国生肖异常。其中只有12个,并将它们存储在一个数组中,按顺序,我取年份的最后两位数,得到年份%12的模数,这将返回对应动物数组的正确索引。如果我不剔除世纪,它不会给出正确的答案,马丁·尼奥尔特的解决方案在你的情况下以及事实上的任何情况下都要好得多。答案很好。考虑到这是一个相当晚的答案,关于你的方法为什么有效的细节是一个加号。答案很好。考虑到这是一个相当晚的答案,详细说明你的方法为什么有效是一个加号。