如何接受像';2.0';作为一个整数,但如';2.1';作为浮动?python
我试图让用户在输入字母或非整数时返回错误消息,当输入整数时,程序将继续显示该整数的平方和立方。我的老师不希望代码中出现任何“中断”或任何错误如何接受像';2.0';作为一个整数,但如';2.1';作为浮动?python,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我试图让用户在输入字母或非整数时返回错误消息,当输入整数时,程序将继续显示该整数的平方和立方。我的老师不希望代码中出现任何“中断”或任何错误 print("Squaring and cubing integer program has started") #Introduction of program for user UserNumber=input("Enter an integer to be raised to the power of 2 and 3: ") #Asks user t
print("Squaring and cubing integer program has started") #Introduction of program for user
UserNumber=input("Enter an integer to be raised to the power of 2 and 3: ") #Asks user to input an integer, that will then be raised to the power of 2 and 3
while '.' in UserNumber or UserNumber.isalpha(): #Error-trap to test if input contained letters of the alphabet or contains decimal point
print("You have not entered an integer. Try again and enter an integer!") #Alert for user to inform that their entry was invalid (not an integer)
UserNumber=input("Enter an integer to be raised to the power of 2 and 3: ") #Asks user again to enter an integer, if they did not previously.
print(int(UserNumber), " is the integer you entered.") #Displays to user their inital integer
print(int(UserNumber), " squared is ", int(UserNumber)**2) #Displays to user their input integer squared
print(int(UserNumber), " cubed is ", int(UserNumber) **3 ) #Displays to user their input integer cubed
print("Calculations are now finished.") #Output to show program has ended
OP的问题基于课堂作业。这个答案假设解决方案必须符合老师决定的规则
只需去掉尾随的零,然后去掉最后的小数点:
UserNumber = UserNumber.rstrip('0').rstrip('.')
在执行测试之前,将此行放在input
语句之后:
print("Squaring and cubing integer program has started") #Introduction of program for user
UserNumber=input("Enter an integer to be raised to the power of 2 and 3: ") #Asks user to input an integer, that will then be raised to the power of 2 and 3
UserNumber = UserNumber.rstrip('0').rstrip('.')
while '.' in UserNumber or UserNumber.isalpha(): #Error-trap to test if input contained letters of the alphabet or contains decimal point
print("You have not entered an integer. Try again and enter an integer!") #Alert for user to inform that their entry was invalid (not an integer)
UserNumber=input("Enter an integer to be raised to the power of 2 and 3: ") #Asks user again to enter an integer, if they did not previously.
UserNumber = UserNumber.rstrip('0').rstrip('.')
print(int(UserNumber), " is the integer you entered.") #Displays to user their inital integer
print(int(UserNumber), " squared is ", int(UserNumber)**2) #Displays to user their input integer squared
print(int(UserNumber), " cubed is ", int(UserNumber) **3 ) #Displays to user their input integer cubed
print("Calculations are now finished.") #Output to show program has ended
OP的问题基于课堂作业。这个答案假设解决方案必须符合老师决定的规则
只需去掉尾随的零,然后去掉最后的小数点:
UserNumber = UserNumber.rstrip('0').rstrip('.')
在执行测试之前,将此行放在input
语句之后:
print("Squaring and cubing integer program has started") #Introduction of program for user
UserNumber=input("Enter an integer to be raised to the power of 2 and 3: ") #Asks user to input an integer, that will then be raised to the power of 2 and 3
UserNumber = UserNumber.rstrip('0').rstrip('.')
while '.' in UserNumber or UserNumber.isalpha(): #Error-trap to test if input contained letters of the alphabet or contains decimal point
print("You have not entered an integer. Try again and enter an integer!") #Alert for user to inform that their entry was invalid (not an integer)
UserNumber=input("Enter an integer to be raised to the power of 2 and 3: ") #Asks user again to enter an integer, if they did not previously.
UserNumber = UserNumber.rstrip('0').rstrip('.')
print(int(UserNumber), " is the integer you entered.") #Displays to user their inital integer
print(int(UserNumber), " squared is ", int(UserNumber)**2) #Displays to user their input integer squared
print(int(UserNumber), " cubed is ", int(UserNumber) **3 ) #Displays to user their input integer cubed
print("Calculations are now finished.") #Output to show program has ended
OP的问题基于课堂作业。这个答案假设解决方案必须符合老师决定的规则
只需去掉尾随的零,然后去掉最后的小数点:
UserNumber = UserNumber.rstrip('0').rstrip('.')
在执行测试之前,将此行放在input
语句之后:
print("Squaring and cubing integer program has started") #Introduction of program for user
UserNumber=input("Enter an integer to be raised to the power of 2 and 3: ") #Asks user to input an integer, that will then be raised to the power of 2 and 3
UserNumber = UserNumber.rstrip('0').rstrip('.')
while '.' in UserNumber or UserNumber.isalpha(): #Error-trap to test if input contained letters of the alphabet or contains decimal point
print("You have not entered an integer. Try again and enter an integer!") #Alert for user to inform that their entry was invalid (not an integer)
UserNumber=input("Enter an integer to be raised to the power of 2 and 3: ") #Asks user again to enter an integer, if they did not previously.
UserNumber = UserNumber.rstrip('0').rstrip('.')
print(int(UserNumber), " is the integer you entered.") #Displays to user their inital integer
print(int(UserNumber), " squared is ", int(UserNumber)**2) #Displays to user their input integer squared
print(int(UserNumber), " cubed is ", int(UserNumber) **3 ) #Displays to user their input integer cubed
print("Calculations are now finished.") #Output to show program has ended
OP的问题基于课堂作业。这个答案假设解决方案必须符合老师决定的规则
只需去掉尾随的零,然后去掉最后的小数点:
UserNumber = UserNumber.rstrip('0').rstrip('.')
在执行测试之前,将此行放在input
语句之后:
print("Squaring and cubing integer program has started") #Introduction of program for user
UserNumber=input("Enter an integer to be raised to the power of 2 and 3: ") #Asks user to input an integer, that will then be raised to the power of 2 and 3
UserNumber = UserNumber.rstrip('0').rstrip('.')
while '.' in UserNumber or UserNumber.isalpha(): #Error-trap to test if input contained letters of the alphabet or contains decimal point
print("You have not entered an integer. Try again and enter an integer!") #Alert for user to inform that their entry was invalid (not an integer)
UserNumber=input("Enter an integer to be raised to the power of 2 and 3: ") #Asks user again to enter an integer, if they did not previously.
UserNumber = UserNumber.rstrip('0').rstrip('.')
print(int(UserNumber), " is the integer you entered.") #Displays to user their inital integer
print(int(UserNumber), " squared is ", int(UserNumber)**2) #Displays to user their input integer squared
print(int(UserNumber), " cubed is ", int(UserNumber) **3 ) #Displays to user their input integer cubed
print("Calculations are now finished.") #Output to show program has ended
A) 我不想删除任何数字B)我想检查用户输入的不是整数,而是字母和小数(不是像2.0、1.0这样的小数,因为它们分别等于2,1)
根据您的描述,您可以使用re
模块来实现您的工作:
import re
def is_integer(num):
s = str(num)
return re.match('^(-?\d+)(\.[0]*)?$', s) is not None
print is_integer(1123123) # True
print is_integer(1123123.) # True
print is_integer(1123123.00000) # True
print is_integer(1123123.00100) # False
A) 我不想删除任何数字B)我想检查用户输入的不是整数,而是字母和小数(不是像2.0、1.0这样的小数,因为它们分别等于2,1)
根据您的描述,您可以使用re
模块来实现您的工作:
import re
def is_integer(num):
s = str(num)
return re.match('^(-?\d+)(\.[0]*)?$', s) is not None
print is_integer(1123123) # True
print is_integer(1123123.) # True
print is_integer(1123123.00000) # True
print is_integer(1123123.00100) # False
A) 我不想删除任何数字B)我想检查用户输入的不是整数,而是字母和小数(不是像2.0、1.0这样的小数,因为它们分别等于2,1)
根据您的描述,您可以使用re
模块来实现您的工作:
import re
def is_integer(num):
s = str(num)
return re.match('^(-?\d+)(\.[0]*)?$', s) is not None
print is_integer(1123123) # True
print is_integer(1123123.) # True
print is_integer(1123123.00000) # True
print is_integer(1123123.00100) # False
A) 我不想删除任何数字B)我想检查用户输入的不是整数,而是字母和小数(不是像2.0、1.0这样的小数,因为它们分别等于2,1)
根据您的描述,您可以使用re
模块来实现您的工作:
import re
def is_integer(num):
s = str(num)
return re.match('^(-?\d+)(\.[0]*)?$', s) is not None
print is_integer(1123123) # True
print is_integer(1123123.) # True
print is_integer(1123123.00000) # True
print is_integer(1123123.00100) # False
这是Python中唯一可以接受的方法,如果你的老师不理解异常,他不应该用Python教编程(老实说,他根本不应该教编程)
这是Python中唯一可以接受的方法,如果你的老师不理解异常,他不应该用Python教编程(老实说,他根本不应该教编程)
这是Python中唯一可以接受的方法,如果你的老师不理解异常,他不应该用Python教编程(老实说,他根本不应该教编程)
这是Python中唯一可以接受的方法,如果你的老师不理解异常,他不应该教Python编程(老实说,他根本不应该教编程)
2.0
不是整数;这是一个浮子2==2.0
,但如示例所示,对于较大的数字,它可能为false
您的老师可能希望您找到.is\u integer()
方法:
>>> 2.0 .is_integer()
True
>>> 2.1 .is_integer()
False
另见
要将'2.0'
转换为浮点,可以调用float()
函数:
#!/usr/bin/env python3
while True:
try:
f = float(input('Enter a number: '))
except ValueError:
print('Try again')
else:
break # got a number
在Python中,这是从stdin获取数字的正确方法。如果您的老师禁止使用ValueError
和break
,那么您可以使用正则表达式:如果重新匹配(“^[+-]?*(\d+(\.\d*)?\.\d+)([eE][+-]?\d+)?$”,则输入字符串):
接受20e-1==2.0==2
。看
要测试输入是否不为空且仅包含十进制数字,即要检查它是否为非负整数,如果调用
int(input\u string)
并且禁止捕捉ValueError
,则可以使用input\u string.isdecimal()
方法。请参阅。2.0
不是整数;这是一个浮子2==2.0
,但如示例所示,对于较大的数字,它可能为false
您的老师可能希望您找到.is\u integer()
方法:
>>> 2.0 .is_integer()
True
>>> 2.1 .is_integer()
False
另见
要将'2.0'
转换为浮点,可以调用float()
函数:
#!/usr/bin/env python3
while True:
try:
f = float(input('Enter a number: '))
except ValueError:
print('Try again')
else:
break # got a number
在Python中,这是从stdin获取数字的正确方法。如果您的老师禁止使用ValueError
和break
,那么您可以使用正则表达式:如果重新匹配(“^[+-]?*(\d+(\.\d*)?\.\d+)([eE][+-]?\d+)?$”,则输入字符串):
接受20e-1==2.0==2
。看
测试输入是否不是emp