追梦少年啊 发表于 2023-1-17 18:05:06

为什么会报错

这是代码:
i = 0
n = 0
while i <= 100:
    if i % 2 != 0:
      print(i, end=' ')
      i += 1
      n += 1
    else:
      i += 1
print('有' + n + '个奇数!')
报错:TypeError: can only concatenate str (not "int") to str
前面可以运行,后面就不可以了
求助大佬!

sfqxx 发表于 2023-1-17 18:06:56

报错的意思是:"+"号后面只能加字符串
所以我们要强制转换为字符串
i = 0
n = 0
while i <= 100:
    if i % 2 != 0:
      print(i, end=' ')
      i += 1
      n += 1
    else:
      i += 1
print('有' + str(n) + '个奇数!')#改了这里,加上str,强制转换

jackz007 发表于 2023-1-17 18:08:47

本帖最后由 jackz007 于 2023-1-17 18:10 编辑

      这一句
print('有' + n + '个奇数!')
      字符串不可以与整型数相加,以前可以运行应该是这样写的
print('有' , n , '个奇数!')
         如果一定要用加号,那就得这么改
print('有' + str(n) + '个奇数!')

chinajz 发表于 2023-1-17 20:33:57

也可以这样写:
i = 0
n = 0
while i <= 100:
    if i % 2 != 0:
      print(i, end=' ')
      i += 1
      n += 1
    else:
      i += 1
print(f'有{n}个奇数!')

追梦少年啊 发表于 2023-1-17 20:58:48

谢谢各位
页: [1]
查看完整版本: 为什么会报错