课后作业23.24讲
题目:1. 写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。举例:get_digits(12345) ==>以下是自己写的(小白刚学不到一个月,希望可以指点,轻喷)
def get_digits(n):
length = len(n)
str1 = str(n)
list1 = []
for each in range(length):
for i in range(str1):
list1.append(i)
print(list1)
get_digits(12345)
def get_digits(n):
length = len(str(n))
str1 = str(n)
list1 = []
for i in str1:
list1.append(i)
print(list1)
get_digits(12345) 我觉得一个好的函数不应该有print 语句
你的需求可以修改一下:
def get_digits(n):
return list(str(n))
print(get_digits(12345)) 少了个int(),题目要求输出的列表里是数字,不是字符串
list1.append(int(i))
你的程序的问题,如下:
、def get_digits(n):
length = len(n)#n是整数,不能作为len的参数
str1 = str(n)
list1 = []
for each in range(length): #不用2层循环,这一层去掉
for i in range(str1): #str1是字符串,不能作为range的参数
list1.append(i) #加入列表的是字符串,不是整数
print(list1)
get_digits(12345)
修改后的:
def get_digits(n):
str1 = str(n)
list1 = []
for i in str1:
list1.append(int(i))
return list1
print(get_digits(12345))
另一种写法:
def get_digits(n):
list1 = []
while n:
list1.insert(0, n % 10)
n //= 10
return list1
print(get_digits(12345)) 感谢楼上所有楼主的回答,我都明白了自己的缺陷,最佳答案我就按照详细度给了。{:10_266:} 冬雪雪冬 发表于 2021-9-30 16:12
你的程序的问题,如下:
、
def get_digits(n):
str1 = str(n)
list1 = []
for i in str1:
list1.append(int(i))
return list1
print(get_digits(12345))
楼主你好,还有个问题是,
list1.append(int(i))
这里不用int不是也可以吗 W1ND123 发表于 2021-10-1 09:43
def get_digits(n):
str1 = str(n)
list1 = []
i是字符串,如果加入列表的需要整数,就用int转换一下。 冬雪雪冬 发表于 2021-10-1 15:18
i是字符串,如果加入列表的需要整数,就用int转换一下。
明白了 谢谢!!!!!
页:
[1]