鱼C论坛

 找回密码
 立即注册
查看: 1974|回复: 9

[已解决]零基础学python第九讲作业问题

[复制链接]
发表于 2018-3-31 16:13:17 | 显示全部楼层 |阅读模式

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

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

x
第九讲课后作业三色球问题,老师的代码,变量用red\yelow\green
  1. print('red\tyellow\tgreen')
  2. for red in range(0, 4):
  3.     for yellow in range(0, 4):
  4.         for green in range(2, 7):
  5.             if red + yellow + green == 8:
  6.                 # 注意,下边不是字符串拼接,因此不用“+”哦~
  7.                 print(red, '\t', yellow, '\t', green)
复制代码

我偷懒,变量用r,y,g,执行出来无法对齐,这是怎么回事儿?莫非必须变量与第一行print的抬头一致吗?怎么破?谢谢老师们
最佳答案
2018-3-31 16:34:58
print(1,2)
执行结果是1 2
因为print的sep参数,默认为' ',就是说,每个逗号都会用空格分开
因此,你的'\t'左右都有一个空格

可以考虑
print(red, '\t', yellow, '\t', green,sep='')
或者
print('{}\t{}\t{}'.format(red,yellow,green))

QQ截图20180331163512.png

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

使用道具 举报

发表于 2018-3-31 16:22:47 | 显示全部楼层
print(red, '\t', yellow, '\t', green)
,号分开会多个空格

  1. print('red\tyellow\tgreen')
  2. for red in range(0, 4):
  3.     for yellow in range(0, 4):
  4.         for green in range(2, 7):
  5.             if red + yellow + green == 8:
  6.                 # 注意,下边不是字符串拼接,因此不用“+”哦~
  7.                 print('%d\t%d\t%d'%(yellow,green,red))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-31 16:34:56 | 显示全部楼层
  1. print('r\ty\tg')
  2. for r in range(0, 4):
  3.     for y in range(0, 4):
  4.         for g in range(2, 7):
  5.             if r + y + g == 8:
  6.                 print(r, '\t', y, '\t', g,sep = '')
复制代码


代码最后一行的print()函数输出多个参数时,默认各个参数之间是用空格隔开的(sep = ' '),所以输出会对不齐,如果需要对其,需将间隔参数指定为空(sep = '')

关于print()函数的参数使用方法,建议使用help(print)查看函数文档。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-31 16:34:58 | 显示全部楼层    本楼为最佳答案   
print(1,2)
执行结果是1 2
因为print的sep参数,默认为' ',就是说,每个逗号都会用空格分开
因此,你的'\t'左右都有一个空格

可以考虑
print(red, '\t', yellow, '\t', green,sep='')
或者
print('{}\t{}\t{}'.format(red,yellow,green))

QQ截图20180331163512.png

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

使用道具 举报

 楼主| 发表于 2018-3-31 16:35:37 | 显示全部楼层
ba21 发表于 2018-3-31 16:22
print(red, '\t', yellow, '\t', green)
,号分开会多个空格

老师原来的代码执行后可以对齐,我用r,y,g替换变量red,yellow,green后出现无法对齐的情况
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-31 18:46:58 | 显示全部楼层
lenin_king 发表于 2018-3-31 16:35
老师原来的代码执行后可以对齐,我用r,y,g替换变量red,yellow,green后出现无法对齐的情况

可以对齐好吧。上的代码你有运行?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-1 20:19:57 | 显示全部楼层
ba21 发表于 2018-3-31 18:46
可以对齐好吧。上的代码你有运行?

我是说这个代码可以对齐,把变量名更换了就不齐了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-1 21:00:05 | 显示全部楼层
本帖最后由 ba21 于 2018-4-1 21:03 编辑
lenin_king 发表于 2018-4-1 20:19
我是说这个代码可以对齐,把变量名更换了就不齐了


不知道你讲什么东西。
下面这样算不算对齐?真不知道有没有调试代码

print(red, '\t', yellow, '\t', green,sep='')
或者
print('{}\t{}\t{}'.format(red,yellow,green))

print('%d\t%d\t%d'%(yellow,green,red))
都是一个意思好吧。所以我就在想,为什么你觉得上面2个就可以,我这个就不行。那个朋友没有发我发的这个格式,是因为我发了,他就列举了另2个格式。

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

使用道具 举报

 楼主| 发表于 2018-4-2 10:39:18 | 显示全部楼层
ba21 发表于 2018-4-1 21:00
不知道你讲什么东西。
下面这样算不算对齐?真不知道有没有调试代码

谢谢你回复,我当然是调试过,不调试怎么知道我的对不齐,你们说的可以。
至于没有把最佳答案评给您,主要因为:
1、我是小白,水平低,没有完全看懂你第一次回复的内容
2、你也没有完全看懂我的问题
3、我最先看懂了4楼的回复。
再次表示感谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-2 12:19:54 | 显示全部楼层
lenin_king 发表于 2018-4-2 10:39
谢谢你回复,我当然是调试过,不调试怎么知道我的对不齐,你们说的可以。
至于没有把最佳答案评给您,主 ...

最佳不最佳不是问题。。
print(red, '\t', yellow, '\t', green,sep='')
或者
print('{}\t{}\t{}'.format(red,yellow,green))
难道这2个你就能对齐了?

3个一样的东西。为什么print('%d\t%d\t%d'%(yellow,green,red))这个就不行,你就没找下原因,是不是你哪里没有正确替换?你何不把用了print('%d\t%d\t%d'%(yellow,green,red))不能对齐的代码上上来。
找到问题根本才是解决之道吧。你就说print('%d\t%d\t%d'%(yellow,green,red))不行;等下次遇到问题还是找不到原因。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-10 00:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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