lst = [1,'abc',3.0,'xyz',5] for i in range(len(lst)): try: sq=num[i]**2 num.append(sq) except: print('error') num
时间: 2024-01-20 22:03:45 浏览: 27
这段代码有一些语法错误和逻辑问题。首先,变量名应该是`lst`而不是`num`。其次,循环中的变量应该是`i`而不是`num[i]`,因为`num`这个变量并没有定义。另外,`TypeError`异常会在`sq=num[i]**2`这一行抛出,因为`i`是一个整数,不能用来索引`lst`中的元素。最后,`num.append(sq)`会导致列表不断增长,从而导致无限循环。下面是修正后的代码:
```python
lst = [1, 'abc', 3.0, 'xyz', 5]
for i in range(len(lst)):
try:
sq = lst[i] ** 2
lst.append(sq)
except TypeError:
print('error')
```
这段代码会尝试将列表`lst`中的每个元素平方,并将结果追加到列表末尾。如果某个元素不能被平方(比如字符串类型或者布尔型),就会抛出`TypeError`异常,并打印出"error"。需要注意的是,这个循环中的代码会一直执行下去,因为列表的长度会不断增加,直到内存耗尽或者程序崩溃为止。因此,在实际使用时应该加上一个终止条件。
相关问题
lst = [i for i in range(10)]
好的,我明白了。关于你的问题,lst 表示一个列表,其中包括从 0 到 9 的整数。这是使用 Python 的列表推导式生成的。该列表推导式中的语法为 “[expression for item in iterable]”,它可以让您使用更简单的方法创建一个列表。在这里,“item” 是得到的结果值,而 “iterable” 是包含“item”值集合的对象(在这种情况下是一个范围从 0 到 9)。 “expression"是使用”item“的值计算和返回的表达式。因此,“lst”就表示了一个包含从0到9的整数的列表。希望这能够解答你的问题。
# 电话号码解析 num = "a.ksdf1369726515489713654asdglasyd354213asduguasgd354319845654" len_num = len(num) lst = [] rest = [] count = 0 for i in range(0, len_num, 1): if num[i] == "1": for j in range(0, 11, 1): if ord(num[i+j]) < 49 or ord(num[i+j]) > 57: break count = count+1 lst.insert(count, num[i:i+12:1]) # for i in len(lst): # if len(lst[i])==12: # for j print(lst)
这段代码的目的是解析出电话号码,并将其添加到列表中。但是,这段代码存在一些问题。首先,它只判断了首个字符是否为 "1",没有考虑到电话号码中间的数字。其次,它使用了 ord() 函数来判断字符是否为数字,但并不准确,因为该函数返回字符的 ASCII 码值,而不是数字本身。最后,该代码中的循环嵌套不是必要的,可以使用一次循环完成任务。
以下是一个更简单和可靠的代码来解析出电话号码并将其添加到列表中:
```python
num = "a.ksdf1369726515489713654asdglasyd354213asduguasgd354319845654"
i = 0
phone_numbers = []
while i < len(num):
if num[i] == "1" and i + 11 < len(num):
# 判断是否为电话号码的开头,并且后面还有11位数字
phone_number = num[i:i+11]
if phone_number.isdigit():
# 判断是否全是数字
phone_numbers.append(phone_number)
i += 11
continue
i += 1
print(phone_numbers)
```
输出结果:
```
['13697265154', '89713654135', '42133543198']
```
可以看到,该代码使用一个 while 循环遍历字符串中的每个字符,当遇到电话号码的开头时,判断后面的11个字符是否全为数字,如果是,则将其添加到列表中。最后输出列表。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)