鱼C论坛

 找回密码
 立即注册
查看: 1437|回复: 21

零基础py第四讲那道输入8打出一堆星号的题

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

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

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

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

但我想到一个 过程好像简单点 运行出来结果一样貌似:

temp=input('请输入一个整数:')
numb=int(temp)
i=8
while numb and i>0 :
    print(' '*(i-1)+'*'*i)
    i=i-1


求大佬帮忙看看我自己想的这个对不对
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-1-14 22:27:40 | 显示全部楼层
本帖最后由 sunrise085 于 2019-1-14 22:30 编辑

这个也是对的。但是没必要定义i。这是我写的。
  1. num=int(input('请输入一个整数:'))
  2. while num:
  3.     print(' '*(num-1)+'*'*num)
  4.     num-=1
复制代码

用for循环,可以再少一行。
  1. num=int(input('请输入一个整数:'))
  2. for i in range (num,0,-1):
  3.     print(' '*(i-1)+'*'*i)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-14 22:31:06 | 显示全部楼层
sunrise085 发表于 2019-1-14 22:27
这个也是对的。但是没必要定义i。这是我写的。

用for循环,可以再少一行。

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

使用道具 举报

 楼主| 发表于 2019-1-14 22:35:23 | 显示全部楼层
sunrise085 发表于 2019-1-14 22:27
这个也是对的。但是没必要定义i。这是我写的。

用for循环,可以再少一行。

以 标准答案我有点看不懂 那个end是什么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-14 22:38:19 | 显示全部楼层
deku_desu 发表于 2019-1-14 22:35
以 标准答案我有点看不懂 那个end是什么


可以看一下帮助文档。
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
print()的参数end有默认值是'\n',即回车换行。这里设置end='',是不让它回车换行,使其输出在一行中。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-14 22:38:21 | 显示全部楼层
temp=input('请输入一个整数:')
numb=int(temp)
i=8
while numb and i>0 :             # 这行的 这个 numb 完全是多余的
    print(' '*(i-1)+'*'*i)
    i=i-1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-15 09:53:31 | 显示全部楼层
sunrise085 发表于 2019-1-14 22:38
可以看一下帮助文档。
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
print( ...

标答是不是有问题啊
我试了一下发现运行出来结果不一样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-15 09:57:06 | 显示全部楼层
sunrise085 发表于 2019-1-14 22:27
这个也是对的。但是没必要定义i。这是我写的。

用for循环,可以再少一行。

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
    number=number-1
    print('\n')
我这样改了一下,是不是最后两行变这个就对了(我运行下来好像没错)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-15 10:20:36 From FishC Mobile | 显示全部楼层
deku_desu 发表于 2019-1-15 09:57
temp = input('请输入一个整数:')
number = int(temp)
while number:

等等 我发现我这个最后一行“\n”这个不对
然后我把最后一行换成print(“”)就对了想知道这个是起到了换行的作用嘛
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-15 10:21:23 | 显示全部楼层
deku_desu 发表于 2019-1-15 09:53
标答是不是有问题啊
我试了一下发现运行出来结果不一样


标准答案没有问题啊,我试了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-15 10:48:34 From FishC Mobile | 显示全部楼层
13572044595 发表于 2019-1-15 10:21
标准答案没有问题啊,我试了

是的是我搞错了
但是最后一行print()是代表换行还是啥?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-15 10:54:35 | 显示全部楼层
deku_desu 发表于 2019-1-15 10:48
是的是我搞错了
但是最后一行print()是代表换行还是啥?


小甲鱼的最后一行,代表换行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-15 11:03:20 From FishC Mobile | 显示全部楼层
13572044595 发表于 2019-1-15 10:54
小甲鱼的最后一行,代表换行

哦哦
以及我试了一下
好像除了print(),print()里面是单引号(中间没空格)也可以
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-15 11:07:07 | 显示全部楼层
deku_desu 发表于 2019-1-15 11:03
哦哦
以及我试了一下
好像除了print(),print()里面是单引号(中间没空格)也可以

print() 函数可以有参数,也可以为空
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-15 11:13:57 From FishC Mobile | 显示全部楼层
13572044595 发表于 2019-1-15 11:07
print() 函数可以有参数,也可以为空

我就想知道print()里什么都不打的话就代表换行嘛
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-15 11:19:05 | 显示全部楼层
deku_desu 发表于 2019-1-15 11:13
我就想知道print()里什么都不打的话就代表换行嘛

一个函数可以有多个参数,因为 print 第一个参数是 不确定(多个) 参数,所以想要启用后面的参数功能,需要   关键字=**

print(*objects, sep=' ', end='\n', file=sys.stdout)

参数:
        objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
        sep -- 用来间隔多个对象,默认值是一个空格。
        end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
        file -- 要写入的文件对象。

参考:http://www.runoob.com/python/python-func-print.html

以上仅供参考,想要获取最新功能IDLE  下,输入 help(print)  命令
  1. >>> help(print)
  2. Help on built-in function print in module builtins:

  3. print(...)
  4.     print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)        # 帮助文档里面比上面多一个参数 ,     注: 我的版本是  v3.6.5
  5.    
  6.     Prints the values to a stream, or to sys.stdout by default.
  7.     Optional keyword arguments:
  8.     file:  a file-like object (stream); defaults to the current sys.stdout.
  9.     sep:   string inserted between values, default a space.
  10.     end:   string appended after the last value, default a newline.
  11.     flush: whether to forcibly flush the stream.

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

使用道具 举报

发表于 2019-1-15 11:20:28 | 显示全部楼层
deku_desu 发表于 2019-1-15 11:13
我就想知道print()里什么都不打的话就代表换行嘛

print(),你什么都不输入,那也有默认参数 end = ‘\n’,  所以它会自动换行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-15 11:27:34 | 显示全部楼层
你们是怎么脑子转的那么快的啊,能想出这么多简洁的方法
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-15 11:27:54 From FishC Mobile | 显示全部楼层
13572044595 发表于 2019-1-15 11:20
print(),你什么都不输入,那也有默认参数 end = ‘\n’,  所以它会自动换行

也就是一般情况下 print(“里面是一堆字符串”)都是默认end=“\n”也就是默认换行的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-15 11:30:49 | 显示全部楼层
deku_desu 发表于 2019-1-15 11:27
也就是一般情况下 print(“里面是一堆字符串”)都是默认end=“\n”也就是默认换行的


无论你 print() 输不输出东西,默认参数 end  都会换行的,不想换行需要指明~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-13 07:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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