我是python的新手,所以对于函数的错误我非常困惑。 基本上,我想创建一个函数来检查x是否为整数,如果为整数,则应将其评估为“正”或“负”。 如果不是,那么我希望它返回“ not int”作为结果。 这是我一段时间以来尝试修复的功能。 我不明白为什么它不像它应该的那样工作,因 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
因此,我尝试自学python,但在完成此任务时遇到一些问题。 我正在尝试从键盘读取两个整数,但是问题是它们可以在同一行或两条不同的行中读取。
输入示例:
23 45
要么
23
45
每个数字应转到其自己的变量。 我很确定我应该使用strip / split函数,但是我还缺少什么呢? 我只是真的不知道该怎么办...谢谢。
我正在使用的是这,但是很明显,此版本在每一行上都采用数字1。
def main():
num1 = int(input())
num2 = int(input())
numSum = num1 + num2
numProduct = num1 * num2
print("sum = ",numSum)
print("product = ",numProduct)
main()
输入在新行终止(更确切地说, sys.stdin
在新行刷新),因此您得到了整行。 要拆分,请使用:
inputs = input("Enter something").split() # read input and split it
print inputs
应用于您的代码,它看起来像这样:
# helper function to keep the code DRY
def get_numbers(message):
try:
# this is called list comprehension
return [int(x) for x in input(message).split()]
except:
# input can produce errors such as casting non-ints
print("Error while reading numbers")
return []
def main():
# 1: create the list - wait for at least two numbers
nums = []
while len(nums) < 2:
nums.extend(get_numbers("Enter numbers please: "))
# only keep two first numbers, this is called slicing
nums = nums[:2]
# summarize using the built-in standard 'sum' function
numSum = sum(nums)
numProduct = nums[0] * nums[1]
print("sum = ",numSum)
print("product = ",numProduct)
main()
关于此处使用的注释:
您可以使用列表推导从可迭代对象构造列表。
如果只需要列表的一部分,则可以切片列表。
在这里,我修改了您的代码。
def main(): num1 = int(input("Enter first number : ")) num2 = int(input("\\nEnter second number : ")) if(num1<=0 or num2<=0): print("Enter valid number") else: numSum = num1 + num2 numProduct = num1 * num2 print("sum of the given numbers is = ",numSum) print("product of the given numbers is = ",numProduct) main()
如果输入的数字无效,则会显示消息输入有效的数字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.