鱼C论坛

 找回密码
 立即注册
查看: 1255|回复: 6

[已解决]一个疑问?

[复制链接]
发表于 2022-1-12 17:28:59 | 显示全部楼层 |阅读模式

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

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

x
请教各位大佬一个问题
具体情况如下,为什么一个可以正常运行,一个不可以正常运行,实在是不能明白

代码一:
def printlen ():
    str1 = input('请输入一个字符串:')
   
    str2 = str(len(str1))
    print('字符串长度:'+  str2)
printlen()

代码二:
def printlen ():
    str1 = input('请输入一个字符串:')
   
    str2 = len(str1)
    print('字符串长度:'+  str2)
printlen()

请大佬给与排异解惑
感谢
最佳答案
2022-1-12 18:54:18
很简单,第二段代码的print输出的内容出了问题,你拿一个字符串和一个整数相加,简化你的代码来表示出问题就是"a"+1,你可以到idle测试一下就知道
第一段代码能运行因为str()把整形(整数)数据转换成了字符串,就变成了"a"+"1",结果是"a1",这样就是个单纯的字符串拼接,是没问题的
正确代码可以按第一种写法写,也可以写成print("字符串长度:" , str2)意思是分别打印逗号前后的值,就算不是字符串他也会自动转换,不过这样打出来的会多个空格

#后面的能看懂就看看,理解不了就算了,小问题

不想有空格可以加个sep=""参数,print("字符串长度:" , str2 , sep = "")
sep参数是print()在打印多个参数时他们之间用于分隔的字符串,默认是空格,所以在不加这个参数时打印出来的有多个空格,加了这个参数就把分隔的字符串改成无,就不会空一格了
另外提一嘴print还有个end参数,是控制结束字符的,默认是"\n",也就是换行符(不知道你学了没),当你不想换行的时候也可以把他改成""或者其他的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-1-12 17:37:42 | 显示全部楼层
'字符串长度:'是个字符串
len(str1) 是个整数
不能拼接(+)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-1-12 18:54:18 | 显示全部楼层    本楼为最佳答案   
很简单,第二段代码的print输出的内容出了问题,你拿一个字符串和一个整数相加,简化你的代码来表示出问题就是"a"+1,你可以到idle测试一下就知道
第一段代码能运行因为str()把整形(整数)数据转换成了字符串,就变成了"a"+"1",结果是"a1",这样就是个单纯的字符串拼接,是没问题的
正确代码可以按第一种写法写,也可以写成print("字符串长度:" , str2)意思是分别打印逗号前后的值,就算不是字符串他也会自动转换,不过这样打出来的会多个空格

#后面的能看懂就看看,理解不了就算了,小问题

不想有空格可以加个sep=""参数,print("字符串长度:" , str2 , sep = "")
sep参数是print()在打印多个参数时他们之间用于分隔的字符串,默认是空格,所以在不加这个参数时打印出来的有多个空格,加了这个参数就把分隔的字符串改成无,就不会空一格了
另外提一嘴print还有个end参数,是控制结束字符的,默认是"\n",也就是换行符(不知道你学了没),当你不想换行的时候也可以把他改成""或者其他的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-1-12 19:30:21 | 显示全部楼层
冬雪雪冬 发表于 2022-1-12 17:37
'字符串长度:'是个字符串
len(str1) 是个整数
不能拼接(+)

感谢大佬,回答的很简洁
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-12 19:31:20 | 显示全部楼层
PFBZSC 发表于 2022-1-12 18:54
很简单,第二段代码的print输出的内容出了问题,你拿一个字符串和一个整数相加,简化你的代码来表示出问题 ...

感谢大佬,回答的非常详细,还进行了扩充说明。非常便于理解,适合初学者和新手的难度进行理解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-10 19:03:35 | 显示全部楼层
本帖最后由 不弃_ 于 2022-2-10 19:05 编辑

”+“用与字符串中叫拼接,只适用于字符串之间,不能用于字符串与数字之间;用于数字之间叫相加 会返回两数之和
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-10 21:28:17 From FishC Mobile | 显示全部楼层
用人话来讲,它少了一个,二是把数字转换为字符串。用家的话数字加一个字符串是不能加的,所以你用转换为字符串才能加。你第二段代码没并没有转化为二,就是字符串格式还是数字格式,所以是不能。用字符串和数字加,所以那第二段代码错了。不知道你听没听懂,请你给我一个最佳答案呗。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 06:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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