【发布时间】:2017-02-27 01:18:04
【问题描述】:
我已经查看了堆栈溢出的所有内容,所以我真的需要帮助。我正在制作一个程序,该程序应该通过询问他们的出生年份来计算一个人的年龄,验证他们的出生年份是否正确,如整数,而不是单词或任何其他无效类型的答案。然后从我们当前的年份中减去出生年份。我在输入当前年份并从中减去用户输入的出生年份时遇到问题。
# 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()
在尝试将数据时间导入我的编码后,效果不佳。我也不想计算具体的日期和/或时间,所以我删除了建议编码的那些部分,也许这与它有关?
我创建这个程序的目的实际上只是计算年数,所以如果我出生于 2000 年,我希望程序从 2017 年开始计算,这意味着我现在已经 17 岁。
我的第一个函数是排除错误输入的循环,第二个函数是获取用户出生的年份,第三个函数应该是计算当前日期和用户出生日期之间的差异,以及第四个函数输出用户的实际年龄。
【问题讨论】:
-
在你的 get_number_of_age() 方法中你没有做任何减法。 age = current_year - input_integer 在哪里...您所做的只是返回用户输入。
-
听起来像家庭作业?将其分解为步骤 1) 获取年龄。 2)验证年龄 3)用它做点什么。首先关注各个步骤。
-
展示你的实际尝试。 “当我实际输入类似...的内容时”并没有向我们展示您实际在做什么,因此我们无法告诉您如何解决它。就目前而言,
today未定义,因此您的代码在调用“calculate_age_year()”时会崩溃。
标签: python pseudocode