游子学习 发表于 2021-3-27 21:51:18

python while 循环问题求解

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随便画的,仅供参考{:10_256:}

逆袭的小李 发表于 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()                              #这个说实话我也没太明白 {:10_261:}求大神继续补充一下
    number = number - 1         #停止最外层循环的条件

对服执纪9966 发表于 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,你会舒服很多{:10_256:}。一起坚持吧。

追随心中所想 发表于 2021-3-28 17:08:08

我像你一样属于那种比较纯粹的小白(编程小白+英语小白),建议先看看‘小甲鱼’老师的徒弟“孙兴华”老师的视频,再来学习while循环。

柿子饼同学 发表于 2021-3-28 20:19:28

本帖最后由 柿子饼同学 于 2021-3-28 20:48 编辑

你学习不买书看?
代码不写?
作业不做?{:10_249:}

z5560636 发表于 2021-3-28 20:26:31

柿子饼同学 发表于 2021-3-28 19:52
问题1

问题3


{:10_247:}   无情,还有流程图,不过估计他更加看不懂了。

弈秋呜呜呜 发表于 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循环
我刚开始也是完全小白的去学,在视频里跟着敲,课后作业认真琢磨,不会的上网查资料或者上论坛问。敲得多了有些东西就知道了

游子学习 发表于 2021-3-28 22:35:35

柿子饼同学 发表于 2021-3-27 21:51
问题1

问题3


谢谢

游子学习 发表于 2021-3-28 22:39:39

柿子饼同学 发表于 2021-3-28 20:19
你学习不买书看?
代码不写?
作业不做?

冤枉,我买了一堆书,小甲鱼视频里有些没有,我是真的纯新手, 基础都是一点点百度的,什么进制名称啊之类的一点不懂,作业只有答案,很多不懂的我都在这论坛发请教贴的{:5_105:}

剑廿三 发表于 2021-3-28 22:49:56

这东西还是画个流程图就清晰了

追随心中所想 发表于 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

追随心中所想 发表于 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
页: [1]
查看完整版本: python while 循环问题求解