鱼C论坛

 找回密码
 立即注册
查看: 1557|回复: 10

[已解决]零基础py第九讲三色球那道题

[复制链接]
发表于 2019-1-18 22:02:57 | 显示全部楼层 |阅读模式

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

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

x
有红、黄、蓝三种颜色的求,其中红球 3 个,黄球 3 个,绿球 6 个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配

print('red\tyellow\tgreen')
for red in range(0, 4):
    for yellow in range(0, 4):
        for green in range(2, 7):
            if red + yellow + green == 8:
                # 注意,下边不是字符串拼接,因此不用“+”哦~
                print(red, '\t', yellow, '\t', green)

我搜了一下,大概知\t的意思是横向制表符,但是谁能讲下用法啊?像这个标答里的代码,怎么开头\t不加引号,最后一行的\t加引号之类的
最佳答案
2019-1-18 22:38:24
本帖最后由 13572044595 于 2019-1-18 22:58 编辑
怎么开头\t不加引号,最后一行的\t加引号之类


\t   \n  \r...  之类的 ‘转义字符’  都必须是 str 类型

开头的 \t  是在引号(‘’) 里面的,所以不用加,
最后一行需要单独加,



\t  -- 横向制表符,总长度,好像是两个  ‘ Tab 缩进’,也就是 8 个空格,

  1. >>>
  2. >>> print('1\t2\t3')      # 默认是 8 位, 字符 1 也算 1位,所以间隔 7 个空格
  3. 1        2        3
  4. >>>
  5. >>> print('123456789\t2\t3')      # 当你的字符 等于 8 位,会以 8*2=16位算, 包含你的字符
  6. 123456789        2        3
  7. >>>
复制代码



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-1-18 22:10:36 | 显示全部楼层
>>> print('red', 'yellow',  'green')
red yellow green
>>> print('redyellowgreen')
redyellowgreen

这不就清楚明了了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-18 22:38:24 | 显示全部楼层    本楼为最佳答案   
本帖最后由 13572044595 于 2019-1-18 22:58 编辑
怎么开头\t不加引号,最后一行的\t加引号之类


\t   \n  \r...  之类的 ‘转义字符’  都必须是 str 类型

开头的 \t  是在引号(‘’) 里面的,所以不用加,
最后一行需要单独加,



\t  -- 横向制表符,总长度,好像是两个  ‘ Tab 缩进’,也就是 8 个空格,

  1. >>>
  2. >>> print('1\t2\t3')      # 默认是 8 位, 字符 1 也算 1位,所以间隔 7 个空格
  3. 1        2        3
  4. >>>
  5. >>> print('123456789\t2\t3')      # 当你的字符 等于 8 位,会以 8*2=16位算, 包含你的字符
  6. 123456789        2        3
  7. >>>
复制代码



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-18 23:26:38 | 显示全部楼层
13572044595 发表于 2019-1-18 22:38
\t   \n  \r...  之类的 ‘转义字符’  都必须是 str 类型

开头的 \t  是在引号(‘’) 里面的,所以 ...

我数了一下,每个字符之间好像包含8个空格
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-18 23:42:13 | 显示全部楼层
deku_desu 发表于 2019-1-18 23:26
我数了一下,每个字符之间好像包含8个空格


你是直接在我回复的 那个 代码格式里面数的吗?
我也不为什么会多一个,
我用数字标记了,你自己看吧:


QQ截图20190118234131.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-18 23:47:22 | 显示全部楼层
print("12345678901234567890")
print(1,2,3)
print("1\t2\t3")
print("123456789\t123456789\t123456789")
print("1       2       3")
print("123456789       123456789       123456789")
试试这个实验就明白了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-18 23:50:03 | 显示全部楼层
\t长度相当于七个空格但是是一个字符,就是一个删除按键可以把那么多空格全删了,带\是转译的,说白了就是字符串里面要有一些特殊功能的符号,那肯定要在字符串里啊,所以\t一定也在字符串里,就是绿色的那种
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-18 23:51:53 | 显示全部楼层
print括号里的字符串外的逗号就是黑色逗号,相当于空一个空格的长度
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-18 23:57:12 | 显示全部楼层
所以输出的东西中间的空是一个逗号加上一个tab加上一个逗号,用那个鼠标框一下可以发现是三个字符,就是相当于9个空,另外,第三层循环可以去掉的
试试这个:
print('red\tyellow\tgreen')
for red in range(0, 4):
    for yellow in range(0, 4):
            green = 8-red-yellow
                # 注意,下边不是字符串拼接,因此不用“+”哦~
            if green<=6:
                print(red, '\t', yellow, '\t', green)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-18 23:58:34 | 显示全部楼层
13572044595 发表于 2019-1-18 23:42
你是直接在我回复的 那个 代码格式里面数的吗?
我也不为什么会多一个,
我用数字标记了,你自己看吧 ...

可能是多输入了一个黑色逗号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-19 14:51:39 | 显示全部楼层
13572044595 发表于 2019-1-18 22:38
\t   \n  \r...  之类的 ‘转义字符’  都必须是 str 类型

开头的 \t  是在引号(‘’) 里面的,所以 ...

我又试了几下,现在懂了
就是字符<8的,从第一个字符串的第一个字符开始到下一个字符串的第一个字符之前一共8个位置,比如 "red/tgreen" ,那就是red三个位置加空格5个位置然后才是green
如果字符>8,那个就按16个位置算,比如‘1234567890/t123' 就相当于9个数字占九个位置,然后7个空格占七个位置接着就是123
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 09:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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