以下是我需要做的指示:
您要编写一个完整的程序,获取三个数据然后处理它们。这三条信息是布尔值,字符串和整数。程序的逻辑是这样的:如果布尔值为True,则打印出两次字符串,一次用双引号打印,一次不打印 - 否则打印两次数字。
这是我到目前为止所做的:
def main():
Boolean = input("Give me a Boolean: ")
String = input("Give me a string: ")
Number = int(input("Give me a number: "))
有人可以帮帮我吗?
答案 0 :(得分:1)
在stackoverflow上,我们来帮助人们解决问题,而不是做功课,因为你的问题很可能听起来......那就是说,这就是你想要的:
def main():
Boolean = input("Give me a Boolean: ")
String = input("Give me a string: ")
Number = int(input("Give me a number: "))
if Boolean == "True":
print('"{s}"\n{s}'.format(s=String))
try:
print('{}\n{}'.format(int(Number)))
except ValueError as err:
print('Error you did not give a number: {}'.format(err))
if __name__ == "__main__":
main()
一些解释:
Boolean is "True"
检查包含的字符串是否实际上是单词True
,否则返回True
,False
。print(''.format())
使用字符串格式构建双字符串(由\n
分隔)。Integer
将字符串int
转换为int(Integer)
时,它会引发一个ValueError
异常,该异常会在错误时显示一条好消息。< / LI>
if __name__ == "__main__":
部分是为了使您的代码仅在作为脚本运行时执行,而不是在作为库导入时执行。这是定义程序入口点的pythonic方式。
答案 1 :(得分:0)
我喜欢在输入时添加一些逻辑来确保正确的值。 我的标准方式是这样的:
import ast
def GetInput(user_message, var_type = str):
while 1:
# ask the user for an input
str_input = input(user_message + ": ")
# you dont need to cast a string!
if var_type == str:
return str_input
else:
input_type = type(ast.literal_eval(str_input))
if var_type == input_type:
return ast.literal_eval(str_input)
else:
print("Invalid type! Try again!")
然后在你的主要部分,你可以做这样的事情!
def main():
my_bool = False
my_str = ""
my_num = 0
my_bool = GetInput("Give me a Boolean", type(my_bool))
my_str = GetInput("Give me a String", type(my_str))
my_num = GetInput("Give me a Integer", type(my_num))
if my_bool:
print('"{}"'.format(my_str))
print(my_str)
else:
print(my_num * 2)