如何使用Python将用户输入转换为列表?

2024-10-02 10:22:21 发布

您现在位置:Python中文网/ 问答频道 /正文

d_num = []
d_num.append(input("Enter a figure to verify if is a Disarium number: "))

在上面的代码中,135print(d_num)的输入将返回'135',而不是'1,3,5'。你知道吗

快速解决方法是,提示用户在数字之间包含空格或其他字符,然后使用split命令。然而,这带来了一个问题,因为输出计算是基于数字的索引。你知道吗

例如:

输入:135 输出:真,135==1^1+3^2+5^3=135

有没有更简单的方法将用户输入转换成一个列表?你知道吗


Tags: to方法代码用户numberinputifis
2条回答

你想知道一种自动将用户输入的每个数字存储为列表项的方法,对吗?下面是我能想到的最简单的方法:

user_input = input("Enter a figure to verify if is a Disarium number: ")
d_num = [digit for digit in user_input]

d_num列表将分别存储每个数字,然后您可以将其转换为整数/浮点数,并执行计算以确定其是否是一个失序数。你知道吗

正如@Jérôme在评论中所建议的那样,一个更简单的解决方案是简单地将用户输入转换为一个列表,python处理将单个字符添加为列表项的工作。你知道吗

d_num = [digit for digit in user_input]可以写成d_num = list(user_input)

希望有帮助

调用list(d_num)将为您提供组成号码的单个字符的列表。从这里开始,你可以遍历它们,把它们转换成整数,然后把它们提升到适当的幂:

if int(d_num) == sum((int(d[1])**(d[0] + 1) for d in enumerate(list(d_num)))):
    print("%s is a Disarium number" % d_num)

编辑:
正如Jean-francois Fabre所说,实际上您不需要list调用—您可以直接枚举字符串的字符:

if int(d_num) == sum((int(d[1])**(d[0] + 1) for d in enumerate(d_num))):
    print("%s is a Disarium number" % d_num)

相关问题 更多 >

    热门问题