我已经查看了所有堆栈溢出,所以我真的需要帮助。我正在制定一个程序,通过询问他们的出生年份来计算一个人的年龄,验证他们的出生年份是正确的,如整数,而不是单词或任何其他无效类型的答案。然后减去当年的出生年份。我在输入当前年份并从中减去用户输入的出生年份方面遇到了问题。通过计算当年 - 出生年份使用python创建年龄计算器
# Function Boolean is_valid_integer(String input_string)
# Declare Boolean is_valid
#
# is_valid = is input_string a valid integer?
# Return is_valid
# End Function
def is_valid_integer(input_string):
try:
val = int(input_string)
is_valid = True
except ValueError:
is_valid = False
return is_valid
# Function Integer get_year_born()
# Declare Boolean is_valid
#
# Display "What year were you born in? "
# Input input_string
# Set is_valid = is_valid_integer(input_string)
# While Not is_valid
# Display "Please only enter whole years."
# Input input_string
# is_valid = is_valid_integer(input_string)
# End While
# input_integer = int(input_string)
# Return input_integer
# End Function
def get_year_born():
input_string = input("What year were you born in? ")
is_valid = is_valid_integer(input_string)
while not is_valid:
input_string = input("Please only enter whole years. ")
is_valid = is_valid_integer(input_string)
input_integer = int(input_string)
return input_integer
# Function Integer calculate_difference()
# difference = 2017 - input_integer
# End Function
import datetime
def calculate_difference(difference):
difference = 2017 - input_integer
return difference
# Module calculate_age_year()
# Set born = get_year_born()
# Call calculate_difference()
# End Module
def calculate_difference():
print("Your age is: ", difference)
calculate_age_year()
尝试将datatime导入到我的编码中后,效果不佳。我也不想计算具体的日期和/或时间,所以我删除了那些建议编码的部分,可能与它有关系?
我对这一计划的目的是真的才算年,所以如果我出生在2000年,我希望该计划从2017年计算,这意味着我会是17岁截至目前。
我的第一个功能是使虚假输入无效的循环,第二个功能是获取用户出生的年份,第三个功能应该是计算当前日期和用户出生日期之间的差异,以及输出用户的实际年龄的第四功能。
+0
在你的get_number_of_age()方法中,你没有做任何减法。 age = current_year - input_integer ...你所做的只是返回用户输入。 –
+0
听起来像功课?分解成步骤1)获得年龄。 2)验证年龄3)用它做一些事情。首先关注各个步骤。 –
+0
显示你的实际尝试。 “当我实际上输入某些东西时......”并没有向我们展示你实际上在做什么,所以我们不能告诉你如何解决它。就目前而言,'today'没有定义,因此调用“calculate_age_year()”时代码崩溃。 –