Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.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,我有我自己编写的代码,我想知道问题出在哪里。它应该是一个年龄计算器,使用一个名为YOB“出生年份”的列表,我想从列表中读取值,从列表中的年份中计算最小年龄、最大年龄和中年。但如果算上年龄,中年是636.1428xxxxxx,最小的是21岁,最大的是2096岁。现在我知道最小的应该是21岁,最大的应该是87岁,中年应该是49岁 导入日期时间 进口统计 计数=0 sumYear=0 老年=0 年轻=110 YOB=[19991932198871982,-761963,0] 在YOB工作多年: 年=d

我有我自己编写的代码,我想知道问题出在哪里。它应该是一个年龄计算器,使用一个名为YOB“出生年份”的列表,我想从列表中读取值,从列表中的年份中计算最小年龄、最大年龄和中年。但如果算上年龄,中年是636.1428xxxxxx,最小的是21岁,最大的是2096岁。现在我知道最小的应该是21岁,最大的应该是87岁,中年应该是49岁

导入日期时间
进口统计
计数=0
sumYear=0
老年=0
年轻=110
YOB=[19991932198871982,-761963,0]
在YOB工作多年:
年=datetime.datetime.now().year-年
如果年份>0:
计数+=1
sumYear+=年
如果年龄<年轻:
年轻=年
打印('Test3')
如果年龄>高龄:
老年=年
打印('test4')
打印(“中年是”,sumYear/计数,“年”)
印刷品(“最小的是”,年轻,“最大的是”,老年)

假设-76和0不是有效的出生年份,您的最年长者是133(出生于1887年)。 您可以忽略-76和0出生年份的人,方法是将更改youngAge和oldAge变量的if子句置于年份检查器下。我还更改了传递给year的变量,将year的定义保留为一个单一的含义(只是年龄),而YOB iterables则保留为它们出生的年份

### Summary of Ages for birth years
import datetime
import statistics

counts = 0
sumYear = 0
oldAge = 0
youngAge = 110
YOB = [1999, 1932, 1887, 1982, -76, 1963, 0]

for year in YOB:
    years = datetime.datetime.now().year - year
    print(year, years)
    if year > 0:
        counts += 1
        sumYear += years
        if years < youngAge:
            youngAge = years
            print('Test3')
        if years > oldAge:
            oldAge =  years
            print('test4')

print("middle age is ", sumYear / counts, "year.")
print("the youngest are", youngAge, " and the oldest are ", oldAge)
####出生年龄汇总
导入日期时间
进口统计
计数=0
sumYear=0
老年=0
年轻=110
YOB=[19991932198871982,-761963,0]
年环比年度:
years=datetime.datetime.now().year-year
打印(年,年)
如果年份>0:
计数+=1
sumYear+=年
如果年龄<年轻:
年轻=年
打印('Test3')
如果年龄>高龄:
老年=年
打印('test4')
打印(“中年是”,sumYear/计数,“年”)
印刷品(“最小的是”,年轻,“最大的是”,老年)

首先,您在循环中迭代了
年…
,但也在循环中设置了
年=
,这可能会导致意外问题请改进标题,然后参阅。你做过任何调试吗?是的,我做过断点,这是最好的方法来查找和查看我的代码中有什么错误。但是因为我是Python的novis,我不知道我的问题的解决方案。:)你好,大卫。谢谢你的帮助。现在我知道你做了什么改变,如何改变了。我现在明白我的代码中发生了什么。=)