【Python新手求助】星号递减程序
本帖最后由 lzymm1 于 2020-1-25 10:41 编辑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
它的输出结果是类似输入 6 就输出
******
*****
****
***
**
*
这样的,但是为什么只需要写一个while i 就可以让它打印出 i 的次数,而不需要单独设置变量再乘上去?很不解。
这是我写的程序:
temp = input("请输入一个整数")
result = int(temp)
while result > 0:
print(" "* result)
print("*"* result)
result = result - 1
卡在这里很久了,求大佬帮忙解答一下{:10_266:} 本帖最后由 lzymm1 于 2020-1-25 10:35 编辑
倒数第二行的星号不整齐,应该是对齐下来的帖子里不知道为什么不整齐 while i 就是当 i 不为 0 时执行循环。假设 i = 6,每执行一次循环体 i 就减 1,那么循环体就会被执行 6 次。
你写的程序也可以。 zltzlt 发表于 2020-1-25 10:57
while i 就是当 i 不为 0 时执行循环。假设 i = 6,每执行一次循环体 i 就减 1,那么循环体就会被执行 6 次 ...
这个不行啊,输入出来没有打斜的{:10_266:} lzymm1 发表于 2020-1-25 11:02
这个不行啊,输入出来没有打斜的
看错了,加上 end=""(不换行)就可以了:
temp = input("请输入一个整数")
result = int(temp)
while result > 0:
print(" " * result, end="")
print("*" * result)
result = result - 1 其实,这段程序可以缩减成一行(看不懂没关系):
for i in range(int(input("请输入一个整数:")), 0, -1): print(' ' * i + '*' * i) zltzlt 发表于 2020-1-25 11:03
看错了,加上 end=""(不换行)就可以了:
谢谢! zltzlt 发表于 2020-1-25 11:20
其实,这段程序可以缩减成一行(看不懂没关系):
好的{:10_298:} 本帖最后由 lzymm1 于 2020-1-30 15:03 编辑
*******
******
*****
****
***
**
* zltzlt 发表于 2020-1-25 10:57
while i 就是当 i 不为 0 时执行循环。假设 i = 6,每执行一次循环体 i 就减 1,那么循环体就会被执行 6 次 ...
为什么是当i不为0时执行循环?这个0有什么特殊意义吗?也就是说i=负数的时候它也会执行循环对吧?为什么是0而不是其他数? lzymm1 发表于 2020-1-30 15:06
为什么是当i不为0时执行循环?这个0有什么特殊意义吗?也就是说i=负数的时候它也会执行循环对吧?为什么 ...
这是规定,知道就好。。 zltzlt 发表于 2020-1-25 10:57
while i 就是当 i 不为 0 时执行循环。假设 i = 6,每执行一次循环体 i 就减 1,那么循环体就会被执行 6 次 ...
因为不是很懂,所以我一直把【while i】这类型的理解成【当 i 存在时:】
这样理解的话跟原来的意思会有什么差距吗? lzymm1 发表于 2020-1-30 15:08
因为不是很懂,所以我一直把【while i】这类型的理解成【当 i 存在时:】
这样理解的话跟原来的意思会有 ...
当然有差距,while i 不是当 i 存在时就执行循环体,while i 是当 i 存在并且它的值为真(即不为 0,在 Python 中 0、0.0、空字符串、None、False 都被视为假)才执行循环体。 zltzlt 发表于 2020-1-30 15:09
当然有差距,while i 不是当 i 存在时就执行循环体,while i 是当 i 存在并且它的值为真(即不为 0,在 P ...
噢好的 zltzlt 发表于 2020-1-30 15:09
当然有差距,while i 不是当 i 存在时就执行循环体,while i 是当 i 存在并且它的值为真(即不为 0,在 P ...
还有一些像是 int() 我的理解是把括号内的字符串或其他数据作为整数提取,如果其中掺杂了其他非数字的数据,那就无法提取。这种理解对吗? lzymm1 发表于 2020-1-30 15:47
还有一些像是 int() 我的理解是把括号内的字符串或其他数据作为整数提取,如果其中掺杂了其他非数字的数 ...
int() 函数功能就是将括号内的字符串或数据转化成整数类型,你的理解基本是对的 zltzlt 发表于 2020-1-30 15:48
int() 函数功能就是将括号内的字符串或数据转化成整数类型,你的理解基本是对的
好的,谢谢。 zltzlt 发表于 2020-1-30 15:48
int() 函数功能就是将括号内的字符串或数据转化成整数类型,你的理解基本是对的
import random
times = 3
secret = random.randint(1,10)
print('------------------我爱鱼C工作室------------------')
# 这里先给guess赋值(赋一个绝对不等于secret的值)
guess = 0
# print()默认是打印完字符串会自动添加一个换行符,end=" "参数告诉print()用空格代替换行
# 嗯,小甲鱼觉得富有创意的你应该会尝试用 end="JJ"?
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")
while (guess != secret) and (times > 0):
temp = input()
guess = int(temp)
times = times - 1 # 用户每输入一次,可用机会就-1
if guess == secret:
print("我草,你是小甲鱼心里的蛔虫吗?!")
print("哼,猜中了也没有奖励!")
else:
if guess > secret:
print("哥,大了大了~~~")
else:
print("嘿,小了,小了~~~")
if times > 0:
print("再试一次吧:", end=" ")
else:
print("机会用光咯T_T")
print("游戏结束,不玩啦^_^")
为什么要在用户输入之前就给guess赋值?我尝试跳过了这一步,程序运行的结果没有任何改变。
import random
times = 3
secret = random.randint(1,10)
print('------------------我爱鱼C工作室------------------')
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")
while times > 0:
temp = input()
guess = int(temp)
times = times - 1
if guess == secret:
print("我草,你是小甲鱼心里的蛔虫吗?!")
print("哼,猜中了也没有奖励!")
else:
if guess > secret:
print("哥,大了大了~~~")
else:
print("嘿,小了,小了~~~")
if times > 0:
print("再试一次吧:", end=" ")
else:
print("机会用光咯T_T")
print("游戏结束,不玩啦^_^")
是不是说明这一步是多余的?在用户输入前就给guess赋值的目的是什么?
lzymm1 发表于 2020-2-4 14:55
为什么要在用户输入之前就给guess赋值?我尝试跳过了这一步,程序运行的结果没有任何改变。
是不是 ...
第一段代码,如果不给 guess 赋值,程序执行到这一步:
while (guess != secret)
就会报错。
PS:以后提问请发提问帖,不要在这里回复。 zltzlt 发表于 2020-2-4 14:59
第一段代码,如果不给 guess 赋值,程序执行到这一步:
while (guess != secret)
我把这个也删了,我主要是不知道为什么要加个给guess赋值,也就是说这一步是没有必要的?
页:
[1]
2