if-statement - 如何满足我的(多个)条件?
问题描述
所以最近我一直在用 if else 语句进行一项调查,并遇到了我的条件没有完全得到满足的问题。起初,我的代码似乎运行良好,但后来我意识到,在某些输入下,代码会崩溃或响应不同的条件。
我最大的问题是当我输入任何输入(2 到 10)时,它指的是只有在输入大于 18 时才可能出现的条件......但是数字(10 到 17)完全可以满足我的需要
同样,对于任何 100 及以上的数字,它都不是指 >18 代码,而是指小于 <18
我觉得我错过了一些东西,这是下面的代码,请帮助
print("Welcome user, today we will be evaluating if you need to sign up for selective service or not.\n"
"DO NOT LIE!")
print("")
name = input("Please enter your name: ")
age = input("Please enter your age: ")
Male = "M".casefold()
Female = "F".casefold()
gender = input("Please enter an (M or F) for gender identity: ").casefold()
if age >= str(18) and gender == Male:
print("Welcome {}, since you are a Male that is 18 or over please sign where directed for selective service".format(name))
input("Name and DOB: ")
print("You will get a letter/email if your service is ever required.")
if age < str(18)) and gender == Male:
print("You are not required to signup for selective service yet {}, please return in {} years.".format(name, 18-int(age)))
else:
if gender == Female:
print("You do not meet the criteria to sign up, have a good day!")
解决方案
您已获取字符串输入并将其与str(18)
. 这是比较两个字符串而不是两个数字。所以当你做类似的事情时"9" < "18"
,你实际上是在比较它们的Unicode 值而不是数字本身。因此,将整数转换为字符串会将您的输入字符串转换为整数,因此您的代码应该是这样的:
print("Welcome user, today we will be evaluating if you need to sign up for selective service or not.\n"
"DO NOT LIE!")
print("")
name = input("Please enter your name: ")
age = input("Please enter your age: ")
Male = "M".casefold()
Female = "F".casefold()
gender = input("Please enter an (M or F) for gender identity: ").casefold()
if int(age) >= 18 and gender == Male:
print("Welcome {}, since you are a Male that is 18 or over please sign where directed for selective service".format(name))
input("Name and DOB: ")
print("You will get a letter/email if your service is ever required.")
if int(age) < 18 and gender == Male:
print("You are not required to signup for selective service yet {}, please return in {} years.".format(name, 18-int(age)))
else:
if gender == Female:
print("You do not meet the criteria to sign up, have a good day!")
推荐阅读
- java - LinkedList 或 HashSet 等类是否被视为依赖项?
- javascript - 我如何从不同的组件调用默认函数
- matlab - Matlab:按另一个需要年龄的向量对数组进行排序
- javascript - React and Bootstrap Javascript
- azure-devops - Azure 数据工厂 - 下载 Json 定义
- angular - 在我的 angular-cli 项目中从 node-sass 切换到 dart sass
- excel - 如何隐藏 VBA 命名范围中的列?
- npm - 自定义 Webpack 包装器库未安装依赖项
- c++ - 如何编写通用特征以将 T::value_type 与其他特征匹配?
- c++ - 如何在exe中找到字符串?