第16天:例外 - 字符串到整数| hackerrank | Python
#初学者 #python #codenewbie #hackerrank

问题

在此问题中,我们获得了一个字符串,S,并要求打印其整数值。如果S无法转换为整数,我们将打印“坏字符串”。此任务测试了我们对Python中字符串转换和异常处理的理解。

该任务还施加了限制:我们必须使用在提交语言中内置的字符串到授权和异常处理结构。如果我们尝试使用循环/条件语句,我们将获得0分。

输入

输入是一个字符串,S

约束

  • 1态mo> - ρ 6 1 \le \lvert S \rvert \le 6 , where S\lvert S \rvert is the length of string koude0.
  • koude0 is composed of either lowercase letters (az)( a - z ) or decimal digits (09)( 0 - 9 ) .
  • Here are some sample inputs:

    Sample Input 0:

    daima0

    Sample Input 1:

    daima1

    4 输出

    如果无法将S转换为整数,则输出应为S的整数值。

    这是样本输入的相应输出:

    样本输出0:

    3
    

    样本输出1:

    Bad String
    

    解释

    示例情况0包含一个整数,因此当我们尝试将其转换为整数时,它不应引起异常。因此,我们打印3

    示例案例1不包含任何整数,因此将其转换为整数的尝试会引起例外。因此,我们的异常处理程序打印“不良字符串”。

    解决方案

    让我们讨论有关此问题及其独特属性的两个不同的解决方案。

    源代码1

    第一个解决方案使用一个try-except-exceptly block来处理字符串S向整数的转换。

    S = input()
    result = ''
    try:
        S = int(S)
        result = S
    except Exception as e:
        result = 'Bad String'
    finally:
        print(result)
    

    在此代码中,我们首先读取输入S。然后,我们使用一个尝试块尝试将S转换为整数。如果转换成功,我们将整数值分配给result。如果转换提出异常(这意味着S不能转换为整数),我们将在块中捕获异常,并将“不良字符串”分配给result。最后,我们打印result。使用finally块的使用可确保打印result是否升高了。

    源代码2

    第二个解决方案通过直接在Try-Except块中打印来简化第一个解决方案,从而消除了对finally块和result变量的需求。

    S = input()
    try:
        S = int(S)
        print(S)
    except Exception as e:
        print('Bad String')
    

    在此代码中,我们读取输入S,然后使用一个尝试块尝试将S转换为整数。如果转换成功,我们将直接打印S。如果转换提出了例外,我们会在块中捕获异常,并打印“不良字符串”。

    两种解决方案都有效地解决了问题,但第二个解决方案更简洁。它们之间的选择取决于您是否希望将打印语句与异常处理代码分开(如解决方案1中),或者您是否喜欢将这两个步骤结合起来的更简化的方法(如解决方案2中)。

    结论

    这个问题很好地证明了如何在Python中使用异常处理来管理转换数据类型时可能发生的潜在错误。尽管两种解决方案都有效地解决了问题,但它们代表了处理异常的不同样式。第一个解决方案将结果的打印与异常处理分开,而第二个解决方案将这些步骤结合在一起以进行更简化的代码。

    请记住,您选择的样式通常取决于问题的细节和您的个人编码偏好。了解多种问题的方法总是有益的,因此您可以选择最适合您需求的方法。

    您可以在HackerRank上找到原始问题。

    有关更有见地的解决方案和与技术相关的内容,请随时在我的Beacons page上与我联系。

    ranggakd - Link in Bio & Creator Tools | Beacons

    @ranggakd |中心详细信息摘要摘要哦,您好,我是一个程序员AI Tech Writer Data Suctioner数据实践者数学瘾君子开源贡献者量子计算爱好者详细信息中心。

    favicon 信标