Python技巧: 用isnumeric等代替数值异常处理

简介: 实现Python代码,输入数字,然后输出这个数字的三倍。 >>> n = input("Enter a number: ") Enter a number: 6 >>> print(f"{n} * 3 = {n*3}") 6 * 3 = 666 input函数总是返回字符串。

实现Python代码,输入数字,然后输出这个数字的三倍。

>>> n = input("Enter a number: ")
Enter a number: 6
>>> print(f"{n} * 3 = {n*3}")
6 * 3 = 666
AI 代码解读

input函数总是返回字符串。可以通过int转换字符串为整数:

>>> n = int(n)
>>> print(f"{n} * 3 = {n*3}")
6 * 3 = 18
AI 代码解读

但是,如果输入不是数值,则会报错:

Enter a number: abcd
ValueError: invalid literal for int() with base 10: 'abcd'
AI 代码解读

比较常用的方法是在“try”块中运行转换,并捕获我们可能获得的任何异常。但字符串的isdigit方法可以更优雅地解决这个问题。

>>> '1234'.isdigit()
True
>>> '1234 '.isdigit()  # space at the end
False
>>> '1234a'.isdigit()  # letter at the end
False
>>> 'a1234'.isdigit()  # letter at the start
False
>>> '12.34'.isdigit()  # decimal point
False
>>> ''.isdigit()   # empty string
False
AI 代码解读

str.isdigit对正则表达式'^ d + $'返回True。

>>> n = input("Enter a number: ")
>>> if n.isdigit():
        n = int(n)
        print(f"{n} * 3 = {n*3}")
AI 代码解读

Python还包括另一方法str.isnumeric,他们有什么区别?

>>> n = input("Enter a number: ")
>>> if n.numeric():
        n = int(n)
        print(f"{n} * 3 = {n*3}")
AI 代码解读

字符串只包含数字0-9时str.isdigit返回True。str.isnumeric则还能识别英语意外语言的数值。

>>> '一二三四五'.isdigit()
False
>>> '一二三四五'.isnumeric()
True
>>> int('二')
ValueError: invalid literal for int() with base 10: '二'
AI 代码解读

str.isdecimal

>>> s = '2²'    # or if you prefer, s = '2' + '\u00B2'
>>> s.isdigit()
True
>>> s.isnumeric()
True
>>> s.isdecimal()
False
AI 代码解读
目录
打赏
0
0
0
0
971
分享
相关文章
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
106 2
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
124 2
[oeasy]python068_异常处理之后做些什么_try语句的完全体_最终_finally
介绍了 Python 中 `try` 语句的完全体,包括 `try`、`except`、`else` 和 `finally` 子句的使用。通过实例展示了如何捕获异常并输出详细的错误信息,如文件名和行号。特别强调了 `finally` 子句的作用,无论是否发生异常,`finally` 都会执行,常用于清理操作。最后总结了 `try` 语句的四个部分及其应用场景,并简要提及了 Python 社区的决策机制。 #try #except #else #finally
26 1
Python中的异常处理
本文深入探讨了Python中的异常处理机制,包括异常的捕获、处理、抛出及最佳实践。通过try-except语句块,程序可以在运行时处理错误,增强健壮性和可维护性。文章还介绍了自定义异常类的创建与使用,并提供了代码示例和详细的语法说明。最后,总结了异常处理的最佳实践,如精确捕获异常、提供有用错误信息等,帮助开发者编写更可靠的代码。
87 14
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
164 1
Python中的异常处理除了Try语句,你还会啥?
Python中的异常处理除了Try语句,你还会啥?
106 1
Python编程中的异常处理:理解与实践
【9月更文挑战第14天】在编码的世界里,错误是不可避免的。它们就像路上的绊脚石,让我们的程序跌跌撞撞。但是,如果我们能够预见并优雅地处理这些错误,我们的程序就能像芭蕾舞者一样,即使在跌倒的边缘,也能轻盈地起舞。本文将带你深入了解Python中的异常处理机制,让你的代码在面对意外时,依然能保持优雅和从容。
181 73
|
4月前
|
Python中的异常处理机制
Python中的异常处理机制
66 2
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
特征工程是机器学习流程中的关键步骤,通过将原始数据转换为更具意义的特征,增强模型对数据关系的理解能力。本文重点介绍处理数值变量的高级特征工程技术,包括归一化、多项式特征、FunctionTransformer、KBinsDiscretizer、对数变换、PowerTransformer、QuantileTransformer和PCA,旨在提升模型性能。这些技术能够揭示数据中的潜在模式、优化变量表示,并应对数据分布和内在特性带来的挑战,从而提高模型的稳健性和泛化能力。每种技术都有其独特优势,适用于不同类型的数据和问题。通过实验和验证选择最适合的变换方法至关重要。
131 5
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等