plovelove 发表于 2021-12-7 23:17:37

第29课第0,1,2的2题

求教下,为什么函数的行数在小甲鱼的作业里面是string,不是数字?
图一里面我想改成%d的格式,应该怎么写?
图二是我想分开写,实践下我的想法,怎么报错了?
是不是要回头继续去看看函数{:10_243:}

mu61 发表于 2021-12-8 00:20:19

i = input()
返回的是字符串,可以尝试type(i)查看类型

%d需要的类型是数字类型
可以写成 i = int(input()),取一个整型数

如果想要使用多个字符串格式化的方法
可以写成"%s%d"%("aaa",123)

2.6以上版本格式化字符串推荐使用format函数
例如
print("文件 {} 的前 {} 行内容如下".format(file_name, i))

3.6版本以上还可以使用fstr
例如
print(f"文件 {file_name} 的前 {i} 行内容如下")

C201818z 发表于 2021-12-8 09:03:08

第一个类型错误 TypeError 是因为input()函数得到的是字符串类型 %d 是格式化整数类型 所以报错 涉及知识 数据类型知识 类型转换   及时第二张图片分开写 i 的数据类型还是字符串

第二个不规范是格式化的方式参考楼上 多个参数格式化 可以用小括号圈起来

plovelove 发表于 2021-12-8 09:49:21

C201818z 发表于 2021-12-8 09:03
第一个类型错误 TypeError 是因为input()函数得到的是字符串类型 %d 是格式化整数类型 所以报错 涉及知识...

我明白了,后面的i = input() i返回的就已经是字符串类型了,这个没有意识到

plovelove 发表于 2021-12-8 09:50:00

mu61 发表于 2021-12-8 00:20
i = input()
返回的是字符串,可以尝试type(i)查看类型



细节啊,亲,懂了,我试下你说的函数{:10_279:}
页: [1]
查看完整版本: 第29课第0,1,2的2题