a=str() 和b=''区别是什么?
a=str()b=''
>>> type(a)
<class 'str'>
>>> type(b)
<class 'str'>
这里显示都是str类型
为何代码里不一样?
def fun1(n):
lenght=len(str(n))
temp=''
list1=[]
for i in range(1,lenght+1):
temp=str(n//(10**(i-1)))
list1.insert(0,(temp[-1]))
print(list1)
return list1
这个可以正常运行
def fun1(n):
lenght=len('n')
temp=''
list1=[]
for i in range(1,lenght+1):
temp=str(n//(10**(i-1)))
list1.insert(0,(temp[-1]))
print(list1)
return list1
这个就不行。。 a=str() 和b=''没有区别吧
第一个代码的代码中代表 把 n 参数转化为字符串
lenght=len(str(n))
而第二个代码单纯的代表 'n' 字符串
lenght=len('n')
所以第二个代码返回的长度是 1 我真的试了下,两个都能执行
>>> def fun1(n):
lenght=len(str(n))
temp=''
list1=[]
for i in range(1,lenght+1):
temp=str(n//(10**(i-1)))
list1.insert(0,(temp[-1]))
print(list1)
return list1
>>> fun1(3)
['3']
['3']
>>> def fun3(n):
lenght=len('n')
temp=''
list1=[]
for i in range(1,lenght+1):
temp=str(n//(10**(i-1)))
list1.insert(0,(temp[-1]))
print(list1)
return list1
>>> fun3(3)
['3']
['3']
>>> 这样代入类型和效果也一样啊 java2python 发表于 2020-6-12 23:41
我真的试了下,两个都能执行
你输入大于个位数的就会发现差距了 java2python 发表于 2020-6-12 23:41
我真的试了下,两个都能执行
输入12345,长的就不行了 lsc00844 发表于 2020-6-12 23:45
输入12345,长的就不行了
'n' 是代表一个字符串而不是参数 你看了上面我回复的还是没理解吗?
lsc00844 发表于 2020-6-12 23:45
输入12345,长的就不行了
n = 12345
str(n)
>>> '12345'
str('n')
>>> 'n'
所以 str(n) != str('n')
带上引号的n本身就是个字符串 Twilight6 发表于 2020-6-12 23:39
第一个代码的代码中代表 把 n 参数转化为字符串
试了下,确实传入的lenght长度不一样了,但是在外部单独执行的时候为什么长度又是一样的? lsc00844 发表于 2020-6-12 23:50
试了下,确实传入的lenght长度不一样了,但是在外部单独执行的时候为什么长度又是一样的?
外部单独执行是什么意思,你可能对字符串和变量有些误解
没带引号的 算参数 带上引号的算字符串
Twilight6 发表于 2020-6-12 23:55
外部单独执行是什么意思,你可能对字符串和变量有些误解
没带引号的 算参数 带上引号的算字符串
大概懂了,谢谢大神~ lsc00844 发表于 2020-6-12 23:59
大概懂了,谢谢大神~
另一个帖子把代码发上去,发图片不如直接代码效果好 Twilight6 发表于 2020-6-13 00:01
另一个帖子把代码发上去,发图片不如直接代码效果好
好的
页:
[1]