第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用打印功能縮進的邏輯

使用打印功能縮進的邏輯

喵喵時光機 2023-02-07 14:28:44
我希望將“波浪”模式打印到控制臺,例如:   /\  /  \ /    或者:   /\  /  \      \       \最后,顯示為一個大的多波:   /\  /\  /  \/  \ /        \           \基于描述向上/向前或向下/向后方向/斜線中斜線數(shù)量的整數(shù)列表。我定義了兩個函數(shù),一個用于波的左側(cè)最長,反之亦然:from itertools import zip_longestdef left_wave(water_l, water_r):    """When left side of wave is largest"""    l_str = " " * water_l + "/"    if water_r == 1:        r_str = "\\"    elif water_r:        r_str = " " * (water_r * 2 - 2) + "\\"    else:        r_str = ""    line = l_str + r_str    print(line)def right_wave(water_l, water_r):    """When right side of wave is largest"""    if water_l:        l_str = " " * water_l + "/"        factor_r = water_r * 2 - 2    else:        l_str = " "        factor_r = water_r * 2 - 2    r_str = " " * factor_r + "\\"    line = l_str + r_str    print(line)我調(diào)用的print_sequence()定義如下:def print_sequence(args):    """Show all waves."""    for wave_height_l, wave_height_r in zip_longest(args[0::2], args[1::2], fillvalue=0):        for water_l, water_r in zip_longest(reversed(range(1, wave_height_l + 1)),                                            range(1, wave_height_r + 1),                                            fillvalue=0):            if wave_height_l > wave_height_r:                left_wave(water_l, water_r)            else:                right_wave(water_l, water_r)運行如下:args = [11, 2,        5, 7,        # 4        ]print_sequence(args)目前返回:           /\          /  \         /        /       /      /     /    /   /  / /     /\    /  \   /    \  /      \ /        \           \             \我現(xiàn)在正在努力解決的主要問題是:我在right_wave函數(shù)中犯的邏輯錯誤是什么?(縮進是錯誤的)。此外,我將如何開始在同一行上打印 2 個波浪?也許end=""在打印函數(shù)調(diào)用中用作參數(shù)?
查看完整描述

2 回答

?
慕碼人2483693

TA貢獻1860條經(jīng)驗 獲得超9個贊

如果list是您的選擇,這里有一個打印波浪的簡單方法:


def print_wave(args):

    total_cols = sum(args)

    total_rows = args[0]  # init total rows by first arg

    matrix = [[' ' for _ in range(total_cols)] for _ in range(total_rows)]


    curr_col = 0

    curr_row = total_rows - 1

    down = True


    for num in args:

        down = not down

        char = '\\' if down else '/'

        # update total rows and current row if need

        if down:

            diff = curr_row + num - total_rows

            if diff > 0:

                for _ in range(diff):

                    matrix.append([' ' for _ in range(total_cols)])

                total_rows += diff

        else:

            diff = num - 1 - curr_row

            if diff > 0:

                for _ in range(diff):

                    matrix.insert(0, [' ' for _ in range(total_cols)])

                total_rows += diff

                curr_row += diff

        for i in range(num):

            matrix[curr_row][curr_col] = char

            # for conjection not update curr row for the last loop

            if i != num - 1:

                if down:

                    curr_row += 1

                else:

                    curr_row -= 1

            curr_col += 1


    for row in matrix:

        for col in row:

            print(col, end='')

        print()

簡單測試args=[3, 5, 4, 11, 2, 5, 7]:


  /\

 /  \      /\

/    \    /  \

      \  /    \

       \/      \

                \

                 \

                  \

                   \                /

                    \              /

                     \  /\        /

                      \/  \      /

                           \    /

                            \  /

                             \/

希望這會有所幫助。


查看完整回答
反對 回復(fù) 2023-02-07
?
呼如林

TA貢獻1798條經(jīng)驗 獲得超3個贊

當(dāng)它是 python 2x 時,這很簡單,它是由末尾的一個簡單逗號完成的魔術(shù),例如。Print("a"), Print("b") 輸出:ab Incase of python 3x

你必須使用。end=" " 控制下一個打印函數(shù)之間的空格


查看完整回答
反對 回復(fù) 2023-02-07
  • 2 回答
  • 0 關(guān)注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號