鱼C论坛

 找回密码
 立即注册
查看: 1417|回复: 13

[已解决]a=str() 和b=''区别是什么?

[复制链接]
发表于 2020-6-12 23:36:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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

这个就不行。。
最佳答案
2020-6-12 23:39:04


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


而第二个代码单纯的代表 'n' 字符串
lenght=len('n')
所以第二个代码返回的长度是 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-12 23:37:51 | 显示全部楼层
a=str() 和b=''  没有区别吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-12 23:39:04 | 显示全部楼层    本楼为最佳答案   


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


而第二个代码单纯的代表 'n' 字符串
lenght=len('n')
所以第二个代码返回的长度是 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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']
>>> 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-12 23:42:42 | 显示全部楼层
这样代入类型和效果也一样啊
微信截图_20200612234159.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-12 23:45:53 | 显示全部楼层
java2python 发表于 2020-6-12 23:41
我真的试了下,两个都能执行

你输入大于个位数的就会发现差距了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-12 23:45:57 | 显示全部楼层
java2python 发表于 2020-6-12 23:41
我真的试了下,两个都能执行

输入12345,长的就不行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-12 23:47:33 | 显示全部楼层
lsc00844 发表于 2020-6-12 23:45
输入12345,长的就不行了


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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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本身就是个字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-12 23:50:46 | 显示全部楼层
Twilight6 发表于 2020-6-12 23:39
第一个代码的代码中代表 把 n 参数转化为字符串

试了下,确实传入的lenght长度不一样了,但是在外部单独执行的时候为什么长度又是一样的?
微信图片_20200612234940.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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


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

没带引号的 算参数   带上引号的算字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

大概懂了,谢谢大神~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-13 00:01:18 | 显示全部楼层
lsc00844 发表于 2020-6-12 23:59
大概懂了,谢谢大神~

另一个帖子把代码发上去,发图片不如直接代码效果好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-13 00:01:43 | 显示全部楼层
Twilight6 发表于 2020-6-13 00:01
另一个帖子把代码发上去,发图片不如直接代码效果好

好的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 17:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表