鱼C论坛

 找回密码
 立即注册
查看: 1916|回复: 7

[已解决]小甲鱼python入门004课后测试题

[复制链接]
发表于 2017-9-19 21:33:46 | 显示全部楼层 |阅读模式

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

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

x
temp = input('请输入一个整数:')
number = int(temp)
while number:
    i = number - 1

    while i:
        print(' ', end = '')
        i = i - 1
    j = number
    while j:
        print('*', end = '')
        j = j - 1
    print()
    number = number - 1
------------------------------------------------------------------------------------
print(' ', end = '') 中的 end = ''这段代码怎么理解呀?
我自己写的代码也能实现功能,就是小甲鱼的代码上面这种书写格式理解不了。
num=int(input("请输入一个数"))
if num>0:
    i=0
    b=num
    while i<num:
        print((" "*(b-1)) +"*"*b)
        i+=1
        b-=1
        
else:
    print("数字太小")
这是我的代码
最佳答案
2017-9-19 22:09:20
  print((" "*(b-1)) +"*"*b),你的代码是一次在一行输出多个空格,多个星号,
而while i:
         print(' ', end = '')
         i = i - 1
则是在循环中输出空格,如果不加end='',默认循环输出的话,会一行一个空格,而加了end=''后,输出一个空格后不会再换行,而是仍然在同一行执行下一次循环,继续输出空格
使用 help(print)查看print函数用法,可以看到end参数的用法,不加end,默认就是end='/n',
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.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-9-19 21:51:04 | 显示全部楼层

回帖奖励 +2 鱼币

就是打印完了空格后面的,就是下一行输出不换行
自己多试试吧

书写格式有啥不懂,你们的都可以,越学到后面方法就越多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-19 22:09:20 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +2 鱼币

  print((" "*(b-1)) +"*"*b),你的代码是一次在一行输出多个空格,多个星号,
而while i:
         print(' ', end = '')
         i = i - 1
则是在循环中输出空格,如果不加end='',默认循环输出的话,会一行一个空格,而加了end=''后,输出一个空格后不会再换行,而是仍然在同一行执行下一次循环,继续输出空格
使用 help(print)查看print函数用法,可以看到end参数的用法,不加end,默认就是end='/n',
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.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-19 22:30:05 | 显示全部楼层

回帖奖励 +2 鱼币

print函数有一个参数end,表示print输出结尾是什么,不设置的话默认为‘\n’,"end=' '"表示以空格结尾。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-20 00:35:56 | 显示全部楼层

回帖奖励 +2 鱼币

print()默认是打印完字符串会自动添加一个换行符,end=""参数告诉print()用“”里的值代替换行符,此处为空表示只打印字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-20 09:28:01 | 显示全部楼层

回帖奖励 +2 鱼币

这个是print()函数的用法,用help(print)可以在IDLE中查到print的官方文档。
帮助文档这么写的:print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)你问的就是对应end的这个可选参数(这个应该懂吧),这个参数默认是换行'\n',意思是把value输出后,光标切换到下一行行首。如果end='',那么输出value后就用空字符替代'\n',意思是光标不切换,停在输出这行的行尾。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-20 09:52:51 | 显示全部楼层
本帖最后由 流浪1123 于 2017-9-20 09:56 编辑

我给提供几个有意思的代码的:
  1. for i in range(10):
  2.     if i % 2 != 0:
  3.         print("跳过不执行")
  4.     else:
  5.         i += 2
  6.         print("没有continue2,4,6,8,10全部都是在这里打印的",i)  
  7. print("================")

  8. for i in range(10):
  9.     if i % 2 != 0:
  10.         print("",end = "")
  11.     else:
  12.         i += 2
  13.         print("2,4,6,8,10全部都是在这里打印的",i)  
  14. print("================")

  15. for i in range(10):
  16.     if i % 2 != 0:
  17.         continue
  18.         print("跳过不执行")
  19.     i += 2
  20.     print("2,4,6,8,10全部都是在这里打印的",i)  
  21. print("================")
复制代码


在代码2中:
  1.         print("",end = "")
复制代码

是真正跳过 执行了代码(不显示而已)没有字符显示,且不换行

在代码3中:
  1.         continue
  2.         print("跳过不执行")
复制代码

是真正意义上的跳过 且不 执行(连执行都没有,直接跳出来)

  1.         print(" ",end = "")
复制代码

打印了空格不换行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-20 14:30:17 | 显示全部楼层
谢谢各位啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 08:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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