惟余莽莽 发表于 2021-10-11 10:32:59

list中的数据

numbers = list(range(1,10))
print(numbers)
for number in numbers:
    if number == 1:
      print(str(number)+'st')
    else:
      print(str(number)+"nd")

我想请问一下在我这个代码中,numbers这个list里的数据类型是int么?为什么不能直接print出number,非要把number转化为字符串才能print呢?
谢谢

逃兵 发表于 2021-10-11 10:37:45

整型和字符串不能直接相加
可以用f字符串实现

numbers = list(range(1,10))
print(numbers)
for number in numbers:
    if number == 1:
      print(f'{number}st')
    else:
      print(f"{number}nd")

suchocolate 发表于 2021-10-11 10:39:23

因为 只有字符串和字符串才能进行拼接,如: '1' + 'st'。
如果改成 1+ 'st',就会报错。TypeError: unsupported operand type(s) for +: 'int' and 'str'。

如果不想转换,可以格式化输出:
print(f'{number}st')

大马强 发表于 2021-10-11 10:42:55

1、numbers这个list里的数据类型是int,你可以用这个验证
for number in numbers:
    print(type(number))
    if number == 1:
2、因为正是int,在print()函数中无法实现拼接功能,只能转换成str,也有另一种写法
numbers = list(range(1, 10))
print(numbers)
for number in numbers:
    # print(type(number))
    if number == 1:
      print(number, 'st', sep="")
    else:
      print(number, "nd", sep="")

大马强 发表于 2021-10-11 10:44:03

大马强 发表于 2021-10-11 10:42
1、numbers这个list里的数据类型是int,你可以用这个验证

2、因为正是int,在print()函数中无法实现拼接 ...

不加sep=“”
输出就会是这样 1 st
加了使其连起来

傻眼貓咪 发表于 2021-10-11 10:56:17

可以直接打印 number,但不能和字符串相加,比如:

整型加字符串:13 + "banana"(报错)
整型+整型:13 + 17 (可以)
字符串+字符串:"13" + "banana"(可以)

惟余莽莽 发表于 2021-10-11 11:14:45

谢谢大家

15013523101 发表于 2021-10-11 19:29:48

看谁还是py是弱语言?
页: [1]
查看完整版本: list中的数据