鱼C论坛

 找回密码
 立即注册
查看: 3171|回复: 12

[已解决]python while 循环问题求解

[复制链接]
发表于 2021-3-27 21:51:18 | 显示全部楼层 |阅读模式
35鱼币
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



运行后的效果我就不截图了
我想问几个问题还有可能还有很多
1,能不能请大神在每行后面注解一下这一行的作用
2,很懵,这是几个循环,教学视频没有讲解while 循环中再来 while的不太懂,这是循环了第一下然后在空格后面再循环***吗?这是运行流程是什么样子的?
3,这种的怎么才能从根本理解。教学视频根本不够,或者说还是新手都会这样,学多了练多了 以后是不是就会好起来。
4,是真的一点没看明白这个程序运行的思路是什么流程。临时又赋予变量临时又加上了while循环,还有倒数第二个print()这是循环空格的意思吗,就算循空格也在应该在前面循环啊因为空格在*号前面啊,为啥不先循环 j 呢?好难搞懂思路。
5,新手学这个 太困了,头迷糊,想睡了,可能不会及时看到以为回复答谢,请见谅。
最佳答案
2021-3-27 21:51:19
本帖最后由 柿子饼同学 于 2021-3-28 20:17 编辑

问题1
temp = input('请输入一个整数:')    #接收用户输入的字符串temp
number = int(temp)                #将temp转换成整型(就是整数)
while number:                     #这里将number作为循环条件,只有当number为0时,才能跳出循环
    i = number - 1                # number 每次循环就减1,赋值到变量i里面
    while i:                      #和上面的循环一样    
        print(' ', end = '')      #在同一行打印一个空格
        i = i - 1                 # i 自己减1,到0的时候跳出循环否则一直打印空格,也就是i等于多少就有多少个空格
    j = number                    #这没什么好说的
    while j:
        print('*', end = '')      
        j = j - 1                 #和上面的i是一样的,j等于多少就有多少个星号
    print()                       #换行
    number = number - 1           #number自减1  
问题3
孰能生巧,只要多练习自然就行了
问题2和4  随便画的,仅供参考

最佳答案

查看完整内容

问题1 问题3 孰能生巧,只要多练习自然就行了 问题2和4 随便画的,仅供参考
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-27 21:51:19 | 显示全部楼层    本楼为最佳答案   
本帖最后由 柿子饼同学 于 2021-3-28 20:17 编辑

问题1
temp = input('请输入一个整数:')    #接收用户输入的字符串temp
number = int(temp)                #将temp转换成整型(就是整数)
while number:                     #这里将number作为循环条件,只有当number为0时,才能跳出循环
    i = number - 1                # number 每次循环就减1,赋值到变量i里面
    while i:                      #和上面的循环一样    
        print(' ', end = '')      #在同一行打印一个空格
        i = i - 1                 # i 自己减1,到0的时候跳出循环否则一直打印空格,也就是i等于多少就有多少个空格
    j = number                    #这没什么好说的
    while j:
        print('*', end = '')      
        j = j - 1                 #和上面的i是一样的,j等于多少就有多少个星号
    print()                       #换行
    number = number - 1           #number自减1  
问题3
孰能生巧,只要多练习自然就行了
问题2和4  随便画的,仅供参考
屏幕截图 2021-03-28 201502.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-27 22:39:24 | 显示全部楼层
temp = input('请输入一个整数:')              # 用户输入一个整数 赋值 给temp
number = int(temp)                              # 转换成 整型
while number:                                       # 循环 开始 循环条件就是这个整型 不为0 即可
    i = number - 1                             #    得到 输出空格的数量
    while i:                                       # 循环开始
        print(' ', end = '')                      #  输出 空格   并且不换行
        i = i - 1                                 #设置的停止循环条件 循环到0退出循环
    j = number                          #  得到 输出*号的数量
    while j:                                  # 循环 开始      
        print('*', end = '')                # 输出 *号  并且不换行
        j = j - 1                           # 停止循环条件
    print()                                #  这个说实话我也没太明白   求大神继续补充一下
    number = number - 1           #停止最外层循环的条件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-28 12:20:35 | 显示全部楼层
本帖最后由 对服执纪9966 于 2021-3-28 12:24 编辑

第2问和第4问:
一共3个循环,whilie这个循环语句 后面会有条件,条件为真的时候,就会一直执行里面的循环体。但是不能一直循环下去啊。
你看第一个循环里面(python这么严格要求缩进),不难发现有number = number - 1这个东西,基本上循环里都有这个,这就是说这个循环语句要循环number这么多次。
所以,第一个循环的意思就是要打印number这么多行,因为print()这个东西有一个默认功能,就是换行,所以要放在最后面,对应着外面的那个while()。

print()这个东西在后面函数那里就会说到,print()这个功能就里面有一个默认参数''end'',默认的情况下end = '\n'(就是换行),那end = ''就是不换行咯。
我是想说,像运算符小学就学过的当然容易接收,后面要接收的东西会越来越多吧。
看教学视频的时候,不理解就多播放几次,播放速度1.5X,你会舒服很多。一起坚持吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-28 17:08:08 | 显示全部楼层
我像你一样属于那种比较纯粹的小白(编程小白+英语小白),建议先看看‘小甲鱼’老师的徒弟“孙兴华”老师的视频,再来学习while循环。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-28 20:19:28 | 显示全部楼层
本帖最后由 柿子饼同学 于 2021-3-28 20:48 编辑

你学习不买书看?
代码不写?
作业不做?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-28 20:26:31 | 显示全部楼层

   无情,还有流程图,不过估计他更加看不懂了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-28 20:33:48 | 显示全部楼层
temp = input('请输入一个整数:') # 输入数字,只不过目前还是一个字符串
number = int(temp) # 将输入的数字转换为整形
while number: # 进行number循环
    i = number - 1 # 为i赋值
    while i: # 进行 i 次循环
        print(' ', end = '') # 打印空格,不换行
        i = i - 1
    j = number # 为j赋值
    while j: # 进行j次循环
        print('*', end = '') # 打印 * ,不换行,即跟在前面打印的空格后面
        j = j - 1
    print() # 进行换行操作
    number = number - 1 # 改变number的值
一共有3次循环,即在number循环内部有两个同一级的循环,先循环打印空格,在循环打印 *。最外层循环控制内部两次循环的次数。运行流程:number循环 --》 i循环(一直循环完毕)---》j循环(打印的内容和i循环打印的内容在同一行)---》换行操作(print()) ----》 给number赋值 ----》再次进行number循环
我刚开始也是完全小白的去学,在视频里跟着敲,课后作业认真琢磨,不会的上网查资料或者上论坛问。敲得多了有些东西就知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-3-28 22:35:35 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-3-28 22:39:39 | 显示全部楼层
柿子饼同学 发表于 2021-3-28 20:19
你学习不买书看?
代码不写?
作业不做?

冤枉,我买了一堆书,小甲鱼视频里有些没有,我是真的纯新手, 基础都是一点点百度的,什么进制名称啊之类的一点不懂,作业只有答案,很多不懂的我都在这论坛发请教贴的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-28 22:49:56 | 显示全部楼层
这东西还是画个流程图就清晰了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-28 23:34:40 | 显示全部楼层

j = 1
while j <= 9:
    print(' '*j, end='')

    i = 1

    while i <= j:      
        print("*",end = '')
        i = i + 1

    print()
    j = j + 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-28 23:42:11 | 显示全部楼层
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
a = input('请输入一个整数:')
b = int(a)

j = 1
while j <= b:
    print(' '*j, end='')

    i = 1

    while i <= j:      
        print("*",end = '')
        i = i + 1

    print()
    j = j + 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 04:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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