鱼C论坛

 找回密码
 立即注册
查看: 3208|回复: 20

[已解决]编码问题

[复制链接]
发表于 2017-5-7 22:13:09 | 显示全部楼层 |阅读模式

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

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

x
temp = input('请输入一个整数:')
number = int(temp)
while number:
    i = number - 1
    while i:
        print('',end = '')
        i = i - 1
        g = number
        while g:
            print('*',end = '')
            g = g - 1
        print()
        number = number - 1
           
这是我刚刚写的,,,,这样运行后是请输入一个整数:8
********
*******
******
*****
****
***
**
就是到2   到不了1   这是为什么?  

                大神帮忙看看
最佳答案
2017-5-8 07:20:10
本帖最后由 当回首遇上转身 于 2017-5-8 07:25 编辑
以后代码请这样发
首先,正如@小甲鱼说的:Python中最重要的就是缩进
        while位置要确定好,不然实现的功能天差地别
其次,递进多用用for()循环,老是while()会把自己搞懵逼
再有
 print('',end = '')
这一句要这样加空格
 print(' ',end = '') 
最后附上代码
temp = input('请输入一个整数:')
number = int(temp)
for n in range(number):
    i = n
    while i:
        print(' ',end = '')
        i = i - 1
    g = number - n
    while g:
        print('*',end = '')
        g = g - 1
    print()
另外,想要实现你问题里面的输出的话,中间部分可以不要
还有这一句
 i = number -1
应为
i = number
附代码:
temp = input('请输入一个整数:')
number = int(temp)
while number:
    g = number
    while g:
        print('*',end = '')
        g = g - 1
    print()
    number = number - 1
           
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-5-7 22:30:12 | 显示全部楼层
本帖最后由 ooxx7788 于 2017-5-7 22:50 编辑

不对不对,你这个结构有问题,你不是先把空格打完了,再打*,有问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-7 22:31:32 | 显示全部楼层
temp = input('请输入一个整数:')
number = int(temp)
while number:
    i = number
    while i:
        print('',end = '')
        i = i - 1
        g = number
        while g:
            print('*',end = '')
            g = g - 1
        print()
        number = number - 1

你i = number -1 那么number=8的时候while i :只执行7次哦,会少一次
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-8 07:20:10 | 显示全部楼层    本楼为最佳答案   
本帖最后由 当回首遇上转身 于 2017-5-8 07:25 编辑
以后代码请这样发
首先,正如@小甲鱼说的:Python中最重要的就是缩进
        while位置要确定好,不然实现的功能天差地别
其次,递进多用用for()循环,老是while()会把自己搞懵逼
再有
 print('',end = '')
这一句要这样加空格
 print(' ',end = '') 
最后附上代码
temp = input('请输入一个整数:')
number = int(temp)
for n in range(number):
    i = n
    while i:
        print(' ',end = '')
        i = i - 1
    g = number - n
    while g:
        print('*',end = '')
        g = g - 1
    print()
另外,想要实现你问题里面的输出的话,中间部分可以不要
还有这一句
 i = number -1
应为
i = number
附代码:
temp = input('请输入一个整数:')
number = int(temp)
while number:
    g = number
    while g:
        print('*',end = '')
        g = g - 1
    print()
    number = number - 1
           
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-5-8 08:47:26 | 显示全部楼层
楼主你这个小同志犯问题很严重嘛  严重的违反党纪和人民的意愿嘛  
你看你的代码
temp = input('请输入一个整数:')
number = int(temp)
while number:
    i = number - 1
    while i:
        print('',end = '')
        i = i - 1
        g = number
        while g:
            print('*',end = '')
            g = g - 1
        print()
        number = number - 1
举个例子你把number输入3   程序只会打印出来***
                                                                        **
并且会死在里面出不来
主要是你这两段代码的从属问题  你把代码改成这样就对了

temp = input('请输入一个整数:')
number = int(temp)
while number:
    i = number - 1
    while i:
        print('',end = '')
        i = i - 1
    g = number
    while g:
        print('*',end = '')
        g = g - 1
    print()
    number = number - 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-8 08:52:02 | 显示全部楼层
也就是while i:和while g:是并列关系不是从属关系  至于为什么你会造成死在程序里面 那就是因为while i:执行完了  number还没有执行完  
送你一个代码  你们那种代码写的很麻烦
guss=0
temp=input('输入一个整数:')
if temp.isdigit():
    guss=int(temp)
    while(guss>0):
      
        print(' '*(guss-1)+'*'*guss)
        guss-=1
else:
    print('你输入有误')
   
   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-8 13:27:23 | 显示全部楼层
清风揽月shine 发表于 2017-5-8 08:47
楼主你这个小同志犯问题很严重嘛  严重的违反党纪和人民的意愿嘛  
你看你的代码
temp = input('请输入一 ...

对于这个从属问题就不理解,,,应该咋么去理解呢?就拿上面的题解释一下吧。    应该咋样去对应
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-8 13:29:14 | 显示全部楼层
ooxx7788 发表于 2017-5-7 22:30
不对不对,你这个结构有问题,你不是先把空格打完了,再打*,有问题。

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

使用道具 举报

 楼主| 发表于 2017-5-8 13:31:48 | 显示全部楼层
ButcherRabbit 发表于 2017-5-7 22:31
你i = number -1 那么number=8的时候while i :只执行7次哦,会少一次

在您的这种情况下,while i  和whileg 就没必要并列了吗?   为什么写成  i = number - 1就需要while i和while g 并列。。。。



   学霸解释一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-8 13:51:41 | 显示全部楼层
ButcherRabbit 发表于 2017-5-7 22:31
你i = number -1 那么number=8的时候while i :只执行7次哦,会少一次

number = number- 1和print()顺序能换一下吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-8 13:57:34 | 显示全部楼层
当回首遇上转身 发表于 2017-5-8 07:20
首先,正如@小甲鱼说的:Python中最重要的就是缩进
        while位置要确定好,不然实现的功能天差地别
其次 ...

I will not go past the road, I want to be a pathfinder
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-8 13:58:14 | 显示全部楼层
本帖最后由 ButcherRabbit 于 2017-5-8 14:01 编辑
枫丹白露666 发表于 2017-5-8 13:51
number = number- 1和print()顺序能换一下吗?


while g: 在while i:这个循环里面哦,你注意看缩进

number =number-1 和print() 是可以调换位置的,不影响程序运行


5楼那种,把while i  和while j 并行也行,就是while g 不在 while i的循环了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-8 14:16:57 | 显示全部楼层
枫丹白露666 发表于 2017-5-8 13:57
I will not go past the road, I want to be a pathfinder

Good to know, now go break some eggs
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-8 15:48:39 | 显示全部楼层
枫丹白露666 发表于 2017-5-8 13:27
对于这个从属问题就不理解,,,应该咋么去理解呢?就拿上面的题解释一下吧。    应该咋样去对应

自己把代码运行几遍 然后再把你错的代码运行几遍  你肯定是参考小甲鱼的代码的  自己在纸上把到每一步变量的值给写出来 你就知道我在讲什么  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-8 17:52:51 | 显示全部楼层
清风揽月shine 发表于 2017-5-8 15:48
自己把代码运行几遍 然后再把你错的代码运行几遍  你肯定是参考小甲鱼的代码的  自己在纸上把到每一步变 ...

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

使用道具 举报

 楼主| 发表于 2017-5-8 17:55:10 | 显示全部楼层
当回首遇上转身 发表于 2017-5-8 14:16
Good to know, now go break some eggs

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

使用道具 举报

 楼主| 发表于 2017-5-8 18:01:53 | 显示全部楼层
ButcherRabbit 发表于 2017-5-8 13:58
while g: 在while i:这个循环里面哦,你注意看缩进

number =number-1 和print() 是可以调换位置的 ...

temp = input('请输入一个整数:')
number = int(temp)
while number:
    i = number
    while i:
        print('',end = '')
        i = i - 1
        g = number
        while g:
            print('*',end = '')
            g = g - 1
            number = number - 1
            print()
         
        最后两行没有向后缩进导致结果是这样的

             请输入一个整数:8
*
*
*
*
*
*
*
*
                  为什么是一行一个呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-8 18:57:32 | 显示全部楼层


这是漫威某系列名为《复仇者联盟》电影里面穿钢铁战衣的某人的台词
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-8 21:45:01 | 显示全部楼层
当回首遇上转身 发表于 2017-5-8 18:57
这是漫威某系列名为《复仇者联盟》电影里面穿钢铁战衣的某人的台词

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

使用道具 举报

发表于 2017-5-8 23:43:01 | 显示全部楼层


只能意会,不能言传
加油就对了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 08:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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