找到1到10之间整数的倒数

发布于 2025-01-28 19:35:39 字数 324 浏览 4 评论 0原文

因此,我需要编写一个程序,该程序请求一个从1到10的整数并计算其倒数。

while True:
    try:
        integer = int(input("Enter an integer between 1 to 10 "))
        parameter = integer in range(1,10)
        
        equation = 1/integer

        print(equation)
        break 

    except ValueError:
        print("not int")

so I need to write a program that requests an integer from 1 through 10 and calculates its reciprocal.

while True:
    try:
        integer = int(input("Enter an integer between 1 to 10 "))
        parameter = integer in range(1,10)
        
        equation = 1/integer

        print(equation)
        break 

    except ValueError:
        print("not int")

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

纸伞微斜 2025-02-04 19:35:39

您可以使用 assert> assert 检查数字是否在1和10范围内。此外,我认为,您不应该使用break,因为您想永远获得整数。 :

while True:
    try:
        integer = int(input("Enter an integer between 1 to 10 "))
        parameter = integer in range(1,10)
        
        assert parameter # asserts the condition and checks if its True or False
        equation = 1/integer
        print(equation)

    except ValueError:
        print("not int")
        
    except AssertionError: # if assertion is False then an AssertionError is raised
        print("not between 1-10")

输出:

Enter an integer between 1 to 10 12
not between 1-10
Enter an integer between 1 to 10 2
0.5
Enter an integer between 1 to 10 val
not int

You can use assert to check if the number is in the range of 1 and 10. Also, in my opinion, you shouldn't be using break because you want to get the integer forever. :

while True:
    try:
        integer = int(input("Enter an integer between 1 to 10 "))
        parameter = integer in range(1,10)
        
        assert parameter # asserts the condition and checks if its True or False
        equation = 1/integer
        print(equation)

    except ValueError:
        print("not int")
        
    except AssertionError: # if assertion is False then an AssertionError is raised
        print("not between 1-10")

Output:

Enter an integer between 1 to 10 12
not between 1-10
Enter an integer between 1 to 10 2
0.5
Enter an integer between 1 to 10 val
not int
岛歌少女 2025-02-04 19:35:39

假设OP不考虑尝试/除了违反不使用任何“条件结构”的要求:

try:
    integer = int(input("Enter an integer between 1 to 10: "))
    1 / (integer in range(1, 11))
    print(1 / integer)
except (ValueError, ZeroDivisionError):
    print('Input not an integer in specified range')

Assuming OP doesn't consider try/except to contravene the requirement of not using any "conditional structure" then:

try:
    integer = int(input("Enter an integer between 1 to 10: "))
    1 / (integer in range(1, 11))
    print(1 / integer)
except (ValueError, ZeroDivisionError):
    print('Input not an integer in specified range')
红ご颜醉 2025-02-04 19:35:39

由于布尔值是整数的事实:

>>> a = -1
>>> a = (0, a)[a in range(1, 11)]
>>> try:
...     print(1 / a)
... except ZeroDivisionError:
...     print('not in 1 to 10')
...
not in 1 to 10

因此您的问题可以如下解决:

while True:
    try:
        integer = int(input("Enter an integer between 1 to 10 "))
        integer = (0, integer)[integer in range(1, 11)]
        print(1 / integer)

    except ValueError:
        print("not int")

    except ZeroDivisionError:
        print("not between 1 to 10")

By virtue of the fact that bool value is integer:

>>> a = -1
>>> a = (0, a)[a in range(1, 11)]
>>> try:
...     print(1 / a)
... except ZeroDivisionError:
...     print('not in 1 to 10')
...
not in 1 to 10

So your problem can be solved as follows:

while True:
    try:
        integer = int(input("Enter an integer between 1 to 10 "))
        integer = (0, integer)[integer in range(1, 11)]
        print(1 / integer)

    except ValueError:
        print("not int")

    except ZeroDivisionError:
        print("not between 1 to 10")
邮友 2025-02-04 19:35:39

你真的很近!
唯一要更改的是如何格式化输出,请尝试这样的事情:

while True:
try:
    integer = int(input("Enter an integer between 1 to 10 "))
    parameter = integer in range(1, 10)

    equation = 1 / integer

    print("The reciprocal of " + str(integer) + " is 1/" + str(integer) + " or " + str(1/integer))
    break

except ValueError:
    print("Not an integer, please try again.")

You are really close!
The only thing to change is how the output is formatted, try something like this:

while True:
try:
    integer = int(input("Enter an integer between 1 to 10 "))
    parameter = integer in range(1, 10)

    equation = 1 / integer

    print("The reciprocal of " + str(integer) + " is 1/" + str(integer) + " or " + str(1/integer))
    break

except ValueError:
    print("Not an integer, please try again.")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文