一个疑问?
请教各位大佬一个问题具体情况如下,为什么一个可以正常运行,一个不可以正常运行,实在是不能明白
代码一:
def printlen ():
str1 = input('请输入一个字符串:')
str2 = str(len(str1))
print('字符串长度:'+str2)
printlen()
代码二:
def printlen ():
str1 = input('请输入一个字符串:')
str2 = len(str1)
print('字符串长度:'+str2)
printlen()
请大佬给与排异解惑
感谢 '字符串长度:'是个字符串
len(str1) 是个整数
不能拼接(+) 很简单,第二段代码的print输出的内容出了问题,你拿一个字符串和一个整数相加,简化你的代码来表示出问题就是"a"+1,你可以到idle测试一下就知道
第一段代码能运行因为str()把整形(整数)数据转换成了字符串,就变成了"a"+"1",结果是"a1",这样就是个单纯的字符串拼接,是没问题的
正确代码可以按第一种写法写,也可以写成print("字符串长度:" , str2)意思是分别打印逗号前后的值,就算不是字符串他也会自动转换,不过这样打出来的会多个空格
#后面的能看懂就看看,理解不了就算了,小问题
不想有空格可以加个sep=""参数,print("字符串长度:" , str2 , sep = "")
sep参数是print()在打印多个参数时他们之间用于分隔的字符串,默认是空格,所以在不加这个参数时打印出来的有多个空格,加了这个参数就把分隔的字符串改成无,就不会空一格了
另外提一嘴print还有个end参数,是控制结束字符的,默认是"\n",也就是换行符(不知道你学了没),当你不想换行的时候也可以把他改成""或者其他的 冬雪雪冬 发表于 2022-1-12 17:37
'字符串长度:'是个字符串
len(str1) 是个整数
不能拼接(+)
感谢大佬,回答的很简洁 PFBZSC 发表于 2022-1-12 18:54
很简单,第二段代码的print输出的内容出了问题,你拿一个字符串和一个整数相加,简化你的代码来表示出问题 ...
感谢大佬,回答的非常详细,还进行了扩充说明。非常便于理解,适合初学者和新手的难度进行理解。 本帖最后由 不弃_ 于 2022-2-10 19:05 编辑
”+“用与字符串中叫拼接,只适用于字符串之间,不能用于字符串与数字之间;用于数字之间叫相加 会返回两数之和 用人话来讲,它少了一个,二是把数字转换为字符串。用家的话数字加一个字符串是不能加的,所以你用转换为字符串才能加。你第二段代码没并没有转化为二,就是字符串格式还是数字格式,所以是不能。用字符串和数字加,所以那第二段代码错了。不知道你听没听懂,请你给我一个最佳答案呗。
页:
[1]