鱼C论坛

 找回密码
 立即注册
查看: 2147|回复: 3

[已解决]看不懂代码什么意思,请帮忙解释一下

[复制链接]
发表于 2020-11-9 00:03:35 | 显示全部楼层 |阅读模式

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

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

x
Screenshot_2020-11-08-23-52-09-630_com.android.browser.jpg
最佳答案
2020-11-9 11:21:18
本帖最后由 笨鸟学飞 于 2020-11-9 11:23 编辑
for i in range(0,5):        #for in 循环不多解释
    for j in range(i+1):
        if i == 4:                     #for i in循环中,i=4的情况就是在最后一行,所以这里意思是最后一行全打印‘*’
            print("*",end='')
            continue
        if j == 0 or j == i:      #这个表示是三角形2条边的情况
            print("*",end='')     
        else:                         #这个表示没在2条边的情况
            print(" ",end='')
        print()     #这个表示打印完了一行,打印个换行符
           
=========你可能不太懂print()函数==========
>>> help(print)
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
   
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.

重点给你说下sep=' ', end='\n'
sep表示多参数的分割字符串,默认是空格
例如:
>>> print(1,2,3)
1 2 3
>>> print(1,2,3,sep='')  #这里设置成空字符串
123

end='\n'表示print()函数结尾默认为换行符(\n表示换行符)
例如:
>>> if 2>1:
        print(1,2,3,end='\t123')    #这里把结尾换成了制表符+123,并没有换行符,所以下一行直接接在123后面
        print(4,5,6)         #这里end未设置参数,默认换行,因此下面一行会换行后再打印
        print(1,2,3)

       
1 2 3        1234 5 6
1 2 3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-9 03:11:55 | 显示全部楼层
首先吧,我想说的是初学的时候动手是最重要的。

别试图用手机+脑补代码的形式来学习,这样意义不大,一定要动手,一定要动手!

像这道题你跟着敲一遍,前后尝试调整代码,就知道它是怎么一回事了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-11-9 08:51:04 | 显示全部楼层
一是定位,把屏幕想象成一个棋盘
二是 输出目标 比如 星号
三是 输出空格   比如 斜边 需要输出前导空格,空心需要中间输出空格等
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-9 11:21:18 | 显示全部楼层    本楼为最佳答案   
本帖最后由 笨鸟学飞 于 2020-11-9 11:23 编辑
for i in range(0,5):        #for in 循环不多解释
    for j in range(i+1):
        if i == 4:                     #for i in循环中,i=4的情况就是在最后一行,所以这里意思是最后一行全打印‘*’
            print("*",end='')
            continue
        if j == 0 or j == i:      #这个表示是三角形2条边的情况
            print("*",end='')     
        else:                         #这个表示没在2条边的情况
            print(" ",end='')
        print()     #这个表示打印完了一行,打印个换行符
           
=========你可能不太懂print()函数==========
>>> help(print)
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
   
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.

重点给你说下sep=' ', end='\n'
sep表示多参数的分割字符串,默认是空格
例如:
>>> print(1,2,3)
1 2 3
>>> print(1,2,3,sep='')  #这里设置成空字符串
123

end='\n'表示print()函数结尾默认为换行符(\n表示换行符)
例如:
>>> if 2>1:
        print(1,2,3,end='\t123')    #这里把结尾换成了制表符+123,并没有换行符,所以下一行直接接在123后面
        print(4,5,6)         #这里end未设置参数,默认换行,因此下面一行会换行后再打印
        print(1,2,3)

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-17 15:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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