鱼C论坛

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

[已解决]格式化输出问题

[复制链接]
发表于 2022-4-29 11:56:50 | 显示全部楼层 |阅读模式

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

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

x
这是改进我们的小游戏最后一讲双色球题目:
下面是我的写法,程序是有问题的。

  1. import random
  2. while True:
  3.     z = random.randint(1,16)
  4.     c = random.sample(range(1,34),k=6)
  5.     print("开奖结果是:%d ,特别号码是:%d" % (*c, z))
  6.     input("按任意键继续开奖")
复制代码


我的才猜想是不是问题出在这行

  1. print("开奖结果是:%d ,特别号码是:%d" % (*c, z))
复制代码


应该是格式化输出*C这里面包含了多个数子,而我用的是%d,去格式化应该是有问题的;
那么如果我要按照我这样的写法输出,该怎么做?
最佳答案
2022-4-29 12:03:27
本帖最后由 isdkz 于 2022-4-29 12:08 编辑

c 解包后有 6 个整数,所以要用 6 个 %d

  1. import random
  2. while True:
  3.     z = random.randint(1,16)
  4.     c = random.sample(range(1,34),k=6)
  5.     print("开奖结果是:%d %d %d %d %d %d,特别号码是:%d" % (*c, z))
  6.     input("按任意键继续开奖")
复制代码


或者不解包,直接用 %s :
  1. import random
  2. while True:
  3.     z = random.randint(1,16)
  4.     c = random.sample(range(1,34),k=6)
  5.     print("开奖结果是:%s,特别号码是:%d" % (c, z))
  6.     input("按任意键继续开奖")
复制代码

  1. import random
  2. while True:
  3.     z = random.randint(1,16)
  4.     c = random.sample(range(1,34),k=6)
  5.     print("开奖结果是:%s,特别号码是:%d" % (' '.join(map(str, c)), z))
  6.     input("按任意键继续开奖")
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-29 12:03:27 | 显示全部楼层    本楼为最佳答案   
本帖最后由 isdkz 于 2022-4-29 12:08 编辑

c 解包后有 6 个整数,所以要用 6 个 %d

  1. import random
  2. while True:
  3.     z = random.randint(1,16)
  4.     c = random.sample(range(1,34),k=6)
  5.     print("开奖结果是:%d %d %d %d %d %d,特别号码是:%d" % (*c, z))
  6.     input("按任意键继续开奖")
复制代码


或者不解包,直接用 %s :
  1. import random
  2. while True:
  3.     z = random.randint(1,16)
  4.     c = random.sample(range(1,34),k=6)
  5.     print("开奖结果是:%s,特别号码是:%d" % (c, z))
  6.     input("按任意键继续开奖")
复制代码

  1. import random
  2. while True:
  3.     z = random.randint(1,16)
  4.     c = random.sample(range(1,34),k=6)
  5.     print("开奖结果是:%s,特别号码是:%d" % (' '.join(map(str, c)), z))
  6.     input("按任意键继续开奖")
复制代码

评分

参与人数 1荣誉 +2 鱼币 +2 收起 理由
lbf4325 + 2 + 2

查看全部评分

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

使用道具 举报

发表于 2022-4-29 12:03:42 From FishC Mobile | 显示全部楼层
不能用%d   就直接用连接吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-29 13:27:48 | 显示全部楼层
直接用字符串拼接,这么整就跟C没区别了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-29 16:01:04 | 显示全部楼层
wp231957 发表于 2022-4-29 12:03
不能用%d   就直接用连接吧
  1. import random
  2. while True:
  3.     z = random.randint(1,16)
  4.     c = random.sample(range(1,34),k=6)
  5.     print("开奖结果是:",*c,"\n特别号码是:" ,z)
  6.     input("按任意键继续开奖:")
复制代码


大哥你说的是这个意思把!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-29 16:02:23 From FishC Mobile | 显示全部楼层
lbf4325 发表于 2022-4-29 16:01
大哥你说的是这个意思把!

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

使用道具 举报

 楼主| 发表于 2022-4-29 16:06:14 | 显示全部楼层
isdkz 发表于 2022-4-29 12:03
c 解包后有 6 个整数,所以要用 6 个 %d

最后这个用法我去瞧瞧看。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-29 16:11:22 | 显示全部楼层

嗯谢谢提醒!忘了print函数的用法!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-29 16:12:29 | 显示全部楼层
老八秘制 发表于 2022-4-29 13:27
直接用字符串拼接,这么整就跟C没区别了

没太明白你的意思 ,和楼上大哥说的是一个意思吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-29 04:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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