鱼C论坛

 找回密码
 立即注册
查看: 1242|回复: 8

[已解决]一直出现sequence item 0: expected str instance, int found(请问怎么办呀?)

[复制链接]
发表于 2020-4-18 15:47:23 | 显示全部楼层 |阅读模式

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

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

x
  1. """
  2.     用户购买彩票
  3.     要求:共有7个球,红球有6个
  4.         红球的数值在(1-33)的范围内且不能重复
  5.         蓝球的范围在(1-16)的范围内
  6.         (1)打印出你购买的号码
  7.         (2)判断是否中奖
  8. """


  9. import random
  10. #中奖号码
  11. red_ball = random.randint(1,33)
  12. blue_ball = random.randint(1,16)
  13. price_num = []
  14. while (red_ball not in price_num) and (len(price_num) < 7):
  15.     price_num.append(red_ball)
  16. price_result = "".join(price_num)

  17. #创建用户号码盒
  18. box_user = []

  19. #用户购买红球
  20. user = int(input("请输入第一个红球的号码: "))
  21. #如果超出范围
  22. while (user > 33) and (user < 1) and (user in box_user) and (len(box_user) < 6):
  23.     print("输入的号码不正确")
  24.     user = int(input("请重新输入: "))
  25. box_user.append(user)

  26. #用户购买蓝球
  27. user_blue = int(input("请输入最后一个蓝球的号码: "))
  28. box_user.append(user_blue)

  29. #将号码列表转换成用户彩票号码
  30. str_user = "".join(box_user)
  31. print("您的彩票号码是%s"%(str_user))

  32. #判断是否中奖
  33. if str_user == price_result:
  34.     print("恭喜你中奖了")
  35. else:
  36.     print("很遗憾,你没有中奖")
复制代码
最佳答案
2020-4-18 15:50:33
price_num里面的是数字,而join要作用在字符串上。
你可以append的时候就把添加的内容搞成字符串。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-18 15:50:33 | 显示全部楼层    本楼为最佳答案   
price_num里面的是数字,而join要作用在字符串上。
你可以append的时候就把添加的内容搞成字符串。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-18 17:21:33 | 显示全部楼层
要 join() 的序列必须每个元素都是字符串,所以添加的时候要用字符串:

  1. """
  2.     用户购买彩票
  3.     要求:共有7个球,红球有6个
  4.         红球的数值在(1-33)的范围内且不能重复
  5.         蓝球的范围在(1-16)的范围内
  6.         (1)打印出你购买的号码
  7.         (2)判断是否中奖
  8. """

  9. import random

  10. # 中奖号码
  11. red_ball = random.randint(1, 33)
  12. blue_ball = random.randint(1, 16)
  13. price_num = []
  14. while (red_ball not in price_num) and (len(price_num) < 7):
  15.     price_num.append(str(red_ball))
  16. price_result = "".join(price_num)

  17. # 创建用户号码盒
  18. box_user = []

  19. # 用户购买红球
  20. user = int(input("请输入第一个红球的号码: "))
  21. # 如果超出范围
  22. while (user > 33) and (user < 1) and (user in box_user) and (len(box_user) < 6):
  23.     print("输入的号码不正确")
  24.     user = int(input("请重新输入: "))
  25. box_user.append(str(user))

  26. # 用户购买蓝球
  27. user_blue = int(input("请输入最后一个蓝球的号码: "))
  28. box_user.append(str(user_blue))

  29. # 将号码列表转换成用户彩票号码
  30. str_user = "".join(box_user)
  31. print("您的彩票号码是%s" % str_user)

  32. # 判断是否中奖
  33. if str_user == price_result:
  34.     print("恭喜你中奖了")
  35. else:
  36.     print("很遗憾,你没有中奖")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-18 17:26:05 | 显示全部楼层
除了你使用整数来join导致错误以外,代码还有些其他的问题,修改了一部分,可以正常跑起来了:
  1. """
  2.     用户购买彩票
  3.     要求:共有7个球,红球有6个
  4.         红球的数值在(1-33)的范围内且不能重复
  5.         蓝球的范围在(1-16)的范围内
  6.         (1)打印出你购买的号码
  7.         (2)判断是否中奖
  8. """


  9. import random
  10. #中奖号码

  11. blue_ball = str(random.randint(1,16))
  12. price_num = []
  13. while len(price_num) < 6:
  14.     red_ball = str(random.randint(1,33))              #红球要生成6次,所以必须在循环里
  15.     if red_ball in price_num:
  16.         continue
  17.     price_num.append(red_ball)
  18. price_result = " ".join(price_num)+' '+blue_ball

  19. #创建用户号码盒
  20. box_user = []

  21. #用户购买红球
  22. a=1
  23. while len(box_user) < 6:                            #用户购买也要输入6次红球吧?
  24.     user = input("请输入第%d个红球的号码: " % a)
  25.     if int(user) > 33 or int(user) < 1 or (user in box_user):
  26.         print("输入的号码不正确!")
  27.         continue
  28.     a+=1
  29.     box_user.append(str(user))

  30. #用户购买蓝球
  31. while True:
  32.     user_blue = input("请输入最后一个蓝球的号码: ")
  33.     if 0<int(user_blue)<17:
  34.         break
  35.     print("输入的号码不正确!")
  36. box_user.append(user_blue)

  37. #将号码列表转换成用户彩票号码
  38. str_user = " ".join(box_user)
  39. print("您的彩票号码是:%s"%(str_user))

  40. #判断是否中奖
  41. if str_user == price_result:
  42.     print("恭喜你中奖了!")
  43. else:
  44.     print("很遗憾,你没有中奖!")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-18 19:45:24 | 显示全部楼层
txxcat 发表于 2020-4-18 17:26
除了你使用整数来join导致错误以外,代码还有些其他的问题,修改了一部分,可以正常跑起来了:

谢谢老哥
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-18 19:45:57 | 显示全部楼层
zltzlt 发表于 2020-4-18 17:21
要 join() 的序列必须每个元素都是字符串,所以添加的时候要用字符串:

谢谢老哥
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-18 19:46:34 | 显示全部楼层
qiuyouzhi 发表于 2020-4-18 15:50
price_num里面的是数字,而join要作用在字符串上。
你可以append的时候就把添加的内容搞成字符串。

谢谢老哥
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-18 19:46:37 | 显示全部楼层

如果你的问题已解决,请设置【最佳答案】。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-18 20:16:42 | 显示全部楼层
6
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-17 17:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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