为了账号安全,请及时绑定邮箱和手机立即绑定

在这个练习中我应该把变量放在哪里?

在这个练习中我应该把变量放在哪里?

杨魅力 2023-08-22 10:44:12
我得到了这个练习,其中我打印的句子的结尾必须是符号/字母“p”。当我运行这个程序时,结果是这样的: 如果我使用数字 9:p q p qp q pp q p 正如您所看到的,“p”始终位于句子的开头,但我希望它始终位于句子的末尾。像这样的东西。q p q pp q pq pp我认为变量“a”每次都必须减1。虽然,我不知道该把它放在哪里。这是代码。number = int((input()+1)/2 - 1)i = 1while i <= number:    a = number    while a >= i:        if a % 2 == 0:            print("q", end = " ")            a -= 1        elif a % 2 == 1:            print("p", end = " ")            a -= 1    print()    i += 1
查看完整描述

3 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

在此示例中,您要查看的行数是与输入 + 1 相加的整数。1+2+3+4 = 10 = 9+1。将有 4 行,并且在每行上您想要跟踪该行上的字母数。使用更好的变量名称可以更轻松地遵循代码。


input = 9

n_lines = 1

i = 1

while i < input:

    i += n_lines

    n_lines += 1


for line_number in range(n_lines):

    number_letters = n_lines - line_number  # This will be number of letters: 4, 3, 2, 1

    for i in range(number_letters - 1):

        print("q", end="")

    print("p")


查看完整回答
反对 回复 2023-08-22
?
HUH函数

TA贡献1836条经验 获得超4个赞

我对你的代码做了一些更改(与 python 3 一起使用)


input_num = int(input())

number = int((input_num + 1) / 2 - 1)



def print_line(line_length):

    if line_length % 2 == 1:

        # start with p

        letters = ['p', 'q']

    else:

        # start with q

        letters = ['q', 'p']


    for i in range(line_length):

        pos = i % 2

        # print the relevant letter

        print(letters[pos], end=' ')

    print()


我做了一个知道如何打印特定行的方法。

它接收line_length并知道如何打印 p 和 q。

如果行长是奇数,我们需要从 p 开始

  • 1 - p

  • 3-pqp

  • 5 - pqpqp

  • ETC..

如果线长是偶数,我们从 q 开始

  • 2 - qp

  • 4 - qpqp

  • 6 - qpqpqp

  • ETC...

for n in range(number, 0, -1):

    print_line(n)


查看完整回答
反对 回复 2023-08-22
?
SMILET

TA贡献1796条经验 获得超4个赞

使用 [-1] 将“p”放在末尾



查看完整回答
反对 回复 2023-08-22
  • 3 回答
  • 0 关注
  • 4069 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信