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-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:} 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:24 编辑
第2问和第4问:
一共3个循环,whilie这个循环语句 后面会有条件,条件为真的时候,就会一直执行里面的循环体。但是不能一直循环下去啊。
你看第一个循环里面(python这么严格要求缩进),不难发现有number = number - 1这个东西,基本上循环里都有这个,这就是说这个循环语句要循环number这么多次。
所以,第一个循环的意思就是要打印number这么多行,因为print()这个东西有一个默认功能,就是换行,所以要放在最后面,对应着外面的那个while()。
print()这个东西在后面函数那里就会说到,print()这个功能就里面有一个默认参数''end'',默认的情况下end = '\n'(就是换行),那end = ''就是不换行咯。
我是想说,像运算符小学就学过的当然容易接收,后面要接收的东西会越来越多吧。
看教学视频的时候,不理解就多播放几次,播放速度1.5X,你会舒服很多{:10_256:}。一起坚持吧。 我像你一样属于那种比较纯粹的小白(编程小白+英语小白),建议先看看‘小甲鱼’老师的徒弟“孙兴华”老师的视频,再来学习while循环。 本帖最后由 柿子饼同学 于 2021-3-28 20:48 编辑
你学习不买书看?
代码不写?
作业不做?{:10_249:} 柿子饼同学 发表于 2021-3-28 19:52
问题1
问题3
{:10_247:} 无情,还有流程图,不过估计他更加看不懂了。 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-27 21:51
问题1
问题3
谢谢 柿子饼同学 发表于 2021-3-28 20:19
你学习不买书看?
代码不写?
作业不做?
冤枉,我买了一堆书,小甲鱼视频里有些没有,我是真的纯新手, 基础都是一点点百度的,什么进制名称啊之类的一点不懂,作业只有答案,很多不懂的我都在这论坛发请教贴的{:5_105:} 这东西还是画个流程图就清晰了
j = 1
while j <= 9:
print(' '*j, end='')
i = 1
while i <= j:
print("*",end = '')
i = i + 1
print()
j = j + 1 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]