鱼C论坛

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

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

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

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

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

x
a=str()
b=''
>>> type(a)
<class 'str'>
>>> type(b)
<class 'str'>
这里显示都是str类型
为何代码里不一样?
  1. def fun1(n):
  2.         lenght=len(str(n))
  3.         temp=''
  4.         list1=[]
  5.         for i in range(1,lenght+1):
  6.                 temp=str(n//(10**(i-1)))
  7.                 list1.insert(0,(temp[-1]))
  8.                 print(list1)

  9.         return list1
复制代码

这个可以正常运行

  1. def fun1(n):
  2.         lenght=len('n')
  3.         temp=''
  4.         list1=[]
  5.         for i in range(1,lenght+1):
  6.                 temp=str(n//(10**(i-1)))
  7.                 list1.insert(0,(temp[-1]))
  8.                 print(list1)

  9.         return list1
复制代码


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


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



而第二个代码单纯的代表 'n' 字符串
  1. lenght=len('n')
复制代码

所以第二个代码返回的长度是 1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-12 23:37:51 | 显示全部楼层
a=str() 和b=''  没有区别吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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


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



而第二个代码单纯的代表 'n' 字符串
  1. lenght=len('n')
复制代码

所以第二个代码返回的长度是 1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-12 23:41:33 | 显示全部楼层
我真的试了下,两个都能执行
  1. >>> def fun1(n):
  2.             lenght=len(str(n))
  3.             temp=''
  4.             list1=[]
  5.             for i in range(1,lenght+1):
  6.                     temp=str(n//(10**(i-1)))
  7.                     list1.insert(0,(temp[-1]))
  8.                     print(list1)

  9.             return list1

  10.         
  11. >>> fun1(3)
  12. ['3']
  13. ['3']
  14. >>> def fun3(n):
  15.             lenght=len('n')
  16.             temp=''
  17.             list1=[]
  18.             for i in range(1,lenght+1):
  19.                     temp=str(n//(10**(i-1)))
  20.                     list1.insert(0,(temp[-1]))
  21.                     print(list1)

  22.             return list1

  23.         
  24. >>> fun3(3)
  25. ['3']
  26. ['3']
  27. >>>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-12 23:42:42 | 显示全部楼层
这样代入类型和效果也一样啊
微信截图_20200612234159.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

你输入大于个位数的就会发现差距了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

输入12345,长的就不行了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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


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

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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




  1. n = 12345
  2. str(n)
  3. >>> '12345'
  4. str('n')
  5. >>> 'n'
复制代码

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

带上引号的n本身就是个字符串
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

试了下,确实传入的lenght长度不一样了,但是在外部单独执行的时候为什么长度又是一样的?
微信图片_20200612234940.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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


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

没带引号的 算参数   带上引号的算字符串
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

大概懂了,谢谢大神~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

另一个帖子把代码发上去,发图片不如直接代码效果好
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

好的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-21 17:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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