python - 9.2.9:字符串转整数
问题描述
我有一个任务,我被困住了。以下是说明。
创建一个名为 safe_int 的函数,它接受一个参数。此函数应尝试将参数转换为整数。如果成功,该函数应返回该整数。否则,该函数应返回 0。
然后,在列表推导中使用此函数从给定列表中创建一个列表。新列表应该包含一个 0 或正确的整数来代替给定列表中的每个字符串: [0, 2, 7, 0] 确保打印出结果列表。
这是我到目前为止得到的
list_of_strings = ["a", "2", "7", "zebra"]
num=[]
a=input("Enter the number count")
i=0
for i in range(0,int(a)):
b=input("Enter the number")
num.append(b)
def safe_int(num):
i=0
list = [int(x) if x.isdigit() else 0 for x in list_of_strings]
print list
for i in range(0,int(a)-1):
if( num[i].isdigit()):
num[i]=num[i]
else:
num[i]=0
safe_int(num)
print(num)
要求如下:
您应该定义一个名为“safe_int”的函数成功
函数“safe_int”应该正好有 1 个参数成功
您应该调用函数 safe_int 成功
您应该在列表理解失败中使用 safe_int
您仍然应该定义“list_of_strings”成功
list_of_strings 应该包含不是整数的元素 成功
您应该将非整数值替换为 0 Success
我无法满足此要求:
- 您应该在列表理解失败中使用 safe_int
有人知道怎么做吗?
解决方案
我认为你过于复杂了。这应该涵盖所有这些基础:
def safe_int(string):
return int(string) if string.isdigit() else 0
list_of_strings = ["a", "2", "7", "zebra"]
list_of_numbers = [safe_int(num) for num in list_of_strings] # <-- use the function INSIDE the list comprehension
print(list_of_numbers)
输出
[0, 2, 7, 0]
小费:
我通常尽量不让我的函数使用超出其范围的任何变量。仅使用常量 (IN_ALL_CAPS) 并在功能块中传递变量。在建模类时它将为您提供良好的服务并使调试更容易。
推荐阅读
- c++ - C++ 模块化项目链接问题和未定义的引用错误
- algorithm - 如何简化 Big-O 表达式
- java - 超类对象还是子类对象?为什么?
- python - 在 python 3.6(64 位)上安装 pandas 失败
- c++ - 声明的变量在其他类中不可访问
- sql-server - 在 Join 条件中使用标量函数
- javascript - 将树状文件目录转换为 JSON 对象
- java - com.microsoft.sqlserver.jdbc.SQLServerException : 参数号4没有设置值
- animation - 动画 Three.js 顶点
- vba - 在excel VBA中选择另一个用户表单或空白时如何关闭用户表单?