Python 基本输入混乱
Python Basic Input Confusion
所以我正在尝试自学 python,但我在完成这项任务时遇到了一些问题。我试图从键盘读入两个整数,但问题是它们既可以在同一行读入,也可以在不同的两行读入。
示例输入:
23 45
或
23
45
每个数字都应该有自己的变量。
我很确定我应该使用 strip/split 函数,但我还缺少什么?我真的不知道该怎么做...谢谢。
这是我正在使用的,但很明显这个版本每行都取一个数字。
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()
这里用到的注意事项:
您可以使用 list comprehension 从可迭代对象构建列表。
您可以使用 sum from the standard library functions 来汇总列表。
如果您只想要列表的一部分,则可以 slice 列表。
这里我修改了你的代码。
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()
如果您输入无效号码,它会打印消息输入有效号码。
所以我正在尝试自学 python,但我在完成这项任务时遇到了一些问题。我试图从键盘读入两个整数,但问题是它们既可以在同一行读入,也可以在不同的两行读入。
示例输入:
23 45
或
23
45
每个数字都应该有自己的变量。 我很确定我应该使用 strip/split 函数,但我还缺少什么?我真的不知道该怎么做...谢谢。
这是我正在使用的,但很明显这个版本每行都取一个数字。
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()
这里用到的注意事项:
您可以使用 list comprehension 从可迭代对象构建列表。
您可以使用 sum from the standard library functions 来汇总列表。
如果您只想要列表的一部分,则可以 slice 列表。
这里我修改了你的代码。
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()
如果您输入无效号码,它会打印消息输入有效号码。