lsc00844 发表于 2020-6-12 23:36:30

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

这个就不行。。

Twilight6 发表于 2020-6-12 23:37:51

a=str() 和b=''没有区别吧

Twilight6 发表于 2020-6-12 23:39:04



第一个代码的代码中代表 把 n 参数转化为字符串
lenght=len(str(n))


而第二个代码单纯的代表 'n' 字符串
lenght=len('n')
所以第二个代码返回的长度是 1

java2python 发表于 2020-6-12 23:41:33

我真的试了下,两个都能执行
>>> 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']
>>>

lsc00844 发表于 2020-6-12 23:42:42

这样代入类型和效果也一样啊

Twilight6 发表于 2020-6-12 23:45:53

java2python 发表于 2020-6-12 23:41
我真的试了下,两个都能执行

你输入大于个位数的就会发现差距了

lsc00844 发表于 2020-6-12 23:45:57

java2python 发表于 2020-6-12 23:41
我真的试了下,两个都能执行

输入12345,长的就不行了

Twilight6 发表于 2020-6-12 23:47:33

lsc00844 发表于 2020-6-12 23:45
输入12345,长的就不行了

'n' 是代表一个字符串而不是参数   你看了上面我回复的还是没理解吗?

Twilight6 发表于 2020-6-12 23:49:07

lsc00844 发表于 2020-6-12 23:45
输入12345,长的就不行了



n = 12345
str(n)
>>> '12345'
str('n')
>>> 'n'
所以 str(n) != str('n')

带上引号的n本身就是个字符串

lsc00844 发表于 2020-6-12 23:50:46

Twilight6 发表于 2020-6-12 23:39
第一个代码的代码中代表 把 n 参数转化为字符串




试了下,确实传入的lenght长度不一样了,但是在外部单独执行的时候为什么长度又是一样的?

Twilight6 发表于 2020-6-12 23:55:39

lsc00844 发表于 2020-6-12 23:50
试了下,确实传入的lenght长度不一样了,但是在外部单独执行的时候为什么长度又是一样的?


外部单独执行是什么意思,你可能对字符串和变量有些误解

没带引号的 算参数   带上引号的算字符串

lsc00844 发表于 2020-6-12 23:59:09

Twilight6 发表于 2020-6-12 23:55
外部单独执行是什么意思,你可能对字符串和变量有些误解

没带引号的 算参数   带上引号的算字符串

大概懂了,谢谢大神~

Twilight6 发表于 2020-6-13 00:01:18

lsc00844 发表于 2020-6-12 23:59
大概懂了,谢谢大神~

另一个帖子把代码发上去,发图片不如直接代码效果好

lsc00844 发表于 2020-6-13 00:01:43

Twilight6 发表于 2020-6-13 00:01
另一个帖子把代码发上去,发图片不如直接代码效果好

好的
页: [1]
查看完整版本: a=str() 和b=''区别是什么?