亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何將隨機的 0 和 1 轉換為列表?

如何將隨機的 0 和 1 轉換為列表?

慕少森 2023-10-25 10:27:15
我正在學習一門課程,其中我制作了一個打印'*'1 和' '0 的程序。我想把圖像變成0和1。所以我從網站上獲取了它,以便我可以用自己的代碼打印它。我編寫了另一個代碼,用于將該未格式化的列表轉換為格式化列表,該網站給出了以下結果,我想將其轉換為列表。100011111111111000011111111111111111111110011111111111000001111111111111111111110001111000000000000011111111111111111111000111000000000000001111111111111111111110001100000000000000111111111111111111111110000000110000000011111111111111111111000000000011100000001111111111111111111100001000011100000000111111111111111111110001111111100000000011111111111111111111000001100000000000001111111111111111111100000001100000000000111111111111111111111100000111000000000011111111111111111111111000000000000000001111111111111111111111100000000000000001111111111111111111111111000000000000000111111111111111111111111100000000000000011111111111111111111111111000000000000001111111111111111111111110100000000000001111111111111111111111111010000000000000111111111111111111111110000000000000000000111111111111111111110000000000000000000011111111111111111111000000000000000000001111111111111111111100000000000000000000111111111111111111110000000000000000000011111111111111111111000000000000000000001111111111111111111100000000000000000000111111111111111111110000000000000000000011111111111111111111000000000000000000001111111111111111111100000000000000000000111111111111111111110000011000000000000011111111111111111111000001110000000000001111111111111111111100100111000001000000111111111111111111110100111100000000000011111111111111111111000111100000000000011111111111111111111100111110000000000001111111111111111111110010110000011100000011111111111111111111000001010000000000011111111111111111111100000000000000000011111111111111111111110000000000000000001111111111111111111111i = 0pyt_img = ''for num in img:    if i == 0:        pyt_img += f'[{num}'        i = i+1    elif i >= 1 & i < 39:        pyt_img += f',{num}'        i = i + 1    elif i >= 40:        pyt_img += f'{num}]\n'        i = 0print(pyt_img)問題是它永遠不會到達,i = 40所以i = 40線路永遠無法工作。
查看完整描述

4 回答

?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

給定您的img字符串,您可以使用str.join嵌套列表理解來實現此目的


>>> print('\n'.join(''.join('*' if i == '1' else ' ' for i in line) for line in img.split('\n')))

*   ***********    *********************

*  ***********     *********************

   ****             ********************

   ***              ********************

*   **              ********************

***       **        ********************

          ***       ********************

    *    ***        ********************

   ********         ********************

     **             ********************

       **           ********************

**     ***          ********************

***                 ********************

***                *********************

****               *********************

****               *********************

*****              *********************

*** *             **********************

*** *             **********************

*                   ********************

                    ********************

                    ********************

                    ********************

                    ********************

                    ********************

                    ********************

                    ********************

                    ********************

                    ********************

     **             ********************

     ***            ********************

  *  ***     *      ********************

 *  ****            ********************

   ****            *********************

  *****            *********************

  * **     ***      ********************

     * *           *********************

                  **********************

                  **********************



查看完整回答
反對 回復 2023-10-25
?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

&您使用的按位運算符的優先級elif i >= 1 & i < 39:高于比較運算符。

因此,由于優先級,條件被評估為

elif?i?>=?(1?&?i)?<?39:

比較鏈使其等價于

elif?(i?>=?(1?&?i))??and??((1?&?i)?<?39):

1 & i是 和 的按位1i,它將等于 的最后一位i,因此如果i是偶數則為0,如果i為奇數則為 1。

i> (1 & i)永遠都是如此True,也是如此(1 & i) < 39。你的整體狀況始終是True。


查看完整回答
反對 回復 2023-10-25
?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

您正在執行按位與&運算而不是邏輯and。Python 利用and關鍵字來執行您所建議的操作。

此外,您i == 39if聲明中排除了大小寫,因此i永遠不會變成 40。修改您的if聲明以包含其中,因此if i >= 1 and i <= 39。


查看完整回答
反對 回復 2023-10-25
?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

elif i >= 1 & i < 39:

        pyt_img += f',{num}'

        i = i + 1

i僅當大于或等于 1 且i小于 39 時,才會進入該代碼分支。這意味著如果i 是 39,則不會進入,因為 39 不小于 39。因此,它不會加 1,i并且i永遠不會達到 40。如果你使用elif i >= 1 and i <=39:它應該可以正常工作。


查看完整回答
反對 回復 2023-10-25
  • 4 回答
  • 0 關注
  • 215 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號