Python每日一練(3)-輸出編程三種境界

王國維先生在《人間詞話》提出人生成大事業、大學問必須經過三種境界:古今之成大事業、大學問者,必經過三種之境界:"昨夜西風凋碧樹。獨上高樓,望盡天涯路。"此第一境也。"衣帶漸寬終不悔,爲伊消得人憔悴。"此第二境也。"衆裏尋他千百度,驀然回首,那人卻在,燈火闌珊處。"此第三境也。此等語皆非大詞人不能道。然遽以此意解釋諸詞,恐爲晏、歐諸公所不許也。

編程學習的過程其實和王國維先生提出的人生三種之境界相似,成爲編程大神,需要經過迷茫、隱忍和運斤成風的過程。

1. 三招隔行輸出編程三種之境界

用三種方法,將編程三種之境界各行詩詞之間加一個空行然後再輸出,輸出效果如下圖所示。
在這裏插入圖片描述
示例代碼如下:

# 第一種方法: 用print()來表示換行 在許多控制檯程序中會用到
print("\033[0;34m\t\t 編程三種之境界")
print()
print("中外之編程成大事業者,必經過三種之境界")
print()
print("昨夜西風凋碧樹。獨上高樓,望盡天涯路。------此第一境也。")
print()
print("衣帶漸寬終不悔,爲伊消得人憔悴。------此第二境也。")
print()
print("衆裏尋她千百度,驀然回首,那人卻在,燈火闌珊處。------此第三境也\033[0m")
print("-" * 50)

# 第二種方法: 在需要換行詩句末尾加\n
print("\033[0;34m\t\t 編程三種之境界\n")
print("中外之編程成大事業者,必經過三種之境界\n")
print("昨夜西風凋碧樹。獨上高樓,望盡天涯路。------此第一境也。\n")
print("衣帶漸寬終不悔,爲伊消得人憔悴。------此第二境也。\n")
print("衆裏尋她千百度,驀然回首,那人卻在,燈火闌珊處。------此第三境也\033[0m")
print("-" * 50)

# 第三種方法: 在下一行詩句句首加上\n
print("\033[0;34m\t\t 編程三種之境界")
print("\n中外之編程成大事業者,必經過三種之境界")
print("\n昨夜西風凋碧樹。獨上高樓,望盡天涯路。", end="------")
print("此第一境也。")
print("\n衣帶漸寬終不悔,爲伊消得人憔悴。", end="------")
print("此第二境也。")
print("\n衆裏尋她千百度,驀然回首,那人卻在,燈火闌珊處。------此第三境也\033[0m")
print("-" * 50)

2. 只用一行代碼輸出編程三種之境界

用一行代碼,將編程三重之境界各行詩詞之間加一個空行然後輸出打印,輸出效果如下圖所示。
在這裏插入圖片描述
示例代碼如下:

# 第一種方法: 使用\n 記住一定要寫兩個\n 第一個\n表示跳到空白行 第二個\n表示跳到下一句詩句
# 因爲寫一行太長 所以我手動回車 Pycharm自動幫我進行了換行處理 實際是一行代碼
print("\033[0;34m\t\t 編程三種之境界\n\n中外之編"
      "程成大事業者,必經過三種之境界\n\n昨夜西風凋碧樹。獨上"
      "高樓,望盡天涯路。------此第一境也。\n\n衣帶漸寬終不悔,爲伊"
      "消得人憔悴。------此第二境也。\n\n衆裏尋她千百度,驀然回首,那人卻在,燈火闌珊處。------此第三境也\033[0m")
print("-" * 50)
# 第二種方法: 使用chr()函數
print("\033[0;34m\t\t 編程三種之境界" + chr(10) + chr(10) + "中外之編"
        "程成大事業者,必經過三種之境界" + chr(10) + chr(10) + "昨夜西風凋碧樹。獨上"
            "高樓,望盡天涯路。------此第一境也。" + chr(
    10) + chr(10) + "衣帶漸寬終不悔,爲伊消得人憔悴。------此第二境也。"
      + chr(10) + chr(10) + "衆裏尋她千百度,驀然回首,那人卻在,燈火闌珊處。------此第三境也\033[0m")
print("-" * 50)
# 第三種方法: 在詩句間通過","和"\n"轉義符實現 有三種表現形式
print("\033[0;34m\t\t 編程三種之境界\n",
      "\n中外之編程成大事業者,必經過三種之境界。\n",
      "\n昨夜西風凋碧樹。獨上高樓,望盡天涯路。------------此第一境也。\n",
      "\n衣帶漸寬終不悔,爲伊消得人憔悴。------------此第二境也。\n",
      "\n衆裏尋他千百度,驀然回首,那人卻在,燈火闌珊處。------------此第三境也。\033[0m")
print("-" * 50)
print("\033[0;34m\t\t 編程三種之境界\n\n",
      "中外之編程成大事業者,必經過三種之境界。\n\n",
      "昨夜西風凋碧樹。獨上高樓,望盡天涯路。------------此第一境也。\n\n",
      "衣帶漸寬終不悔,爲伊消得人憔悴。------------此第二境也。\n\n",
      "衆裏尋他千百度,驀然回首,那人卻在,燈火闌珊處。------------此第三境也。\033[0m")
print("-" * 50)
print("\033[0;34m\t\t 編程三種之境界",
      "\n\n中外之編程成大事業者,必經過三種之境界。",
      "\n\n昨夜西風凋碧樹。獨上高樓,望盡天涯路。------------此第一境也。",
      "\n\n衣帶漸寬終不悔,爲伊消得人憔悴。------------此第二境也。",
      "\n\n衆裏尋他千百度,驀然回首,那人卻在,燈火闌珊處。------------此第三境也。")

3. 動態滾動多行輸出編程三種之境界

輸出編程三種之境界詩句,實現每隔0.7秒鐘輸出1句詩句,輸出效果如下圖所示。在這裏插入圖片描述
示例代碼如下:

import time

print("\t\t 編程三種之境界\n")
time.sleep(0.7)
print("中外之編程成大事業者,必經過三種之境界\n")
time.sleep(0.7)
print("昨夜西風凋碧樹。獨上高樓,望盡天涯路。---此第一境也。\n")
time.sleep(0.7)
print("衣帶漸寬終不悔,爲伊消得人憔悴。---此第二境也。\n")
time.sleep(0.7)
print("衆裏尋她千百度,驀然回首,那人卻在,燈火闌珊處。---此第三境也。")

4. 動態滾動一行輸出編程三種之境界

輸出編程三種之境界詩句,實現動態原位置實現每隔2秒鐘輸出1句詩句,輸出效果如下圖所示。在這裏插入圖片描述
示例代碼如下:

import time
import sys

sys.stdout.write("\r")
sys.stdout.write("              編程三種之境界")
sys.stdout.flush()
time.sleep(2)
sys.stdout.write("\r")
sys.stdout.write("中外之編程成大事業者,必經過三種之境界")
sys.stdout.flush()
time.sleep(2)
sys.stdout.write("\r")
sys.stdout.write("昨夜西風凋碧樹。獨上高樓,望盡天涯路。---此第一境也。")
sys.stdout.flush()
time.sleep(2)
sys.stdout.write("\r")
sys.stdout.write("衣帶漸寬終不悔,爲伊消得人憔悴。---此第二境也。")
sys.stdout.flush()
time.sleep(2)
sys.stdout.write("\r")
sys.stdout.write("衆裏尋他千百度,驀然回首,那人卻在,燈火闌珊處。---此第三境也。")

5. 滾動字幕輸出編程三種之境界

輸出編程三種之境界詩句,實現動態原位置按字順序輸出詩句,間隔時間爲0.3秒,輸出效果如下圖所示。
在這裏插入圖片描述
示例代碼如下:

# 按字動態輸出,可以將詩句放到列表中,然後按照順序,利用for循環動態輸出詩句。實現代碼如下:
import time
import sys

verse_list = ["編程三種之境界",
        "中外之編程成大事業者,必經過三種之境界。",
        "昨夜西風凋碧樹。獨上高樓,望盡天涯路---此第一境也。",
        "衣帶漸寬終不悔,爲伊消得人憔悴---此第二境也。",
        "衆裏尋他千百度,驀然回首,那人卻在,燈火闌珊處---此第三境也。"]
i = 0
for item in verse_list:
    for i in range(len(item)):
        sys.stdout.write("\r")
        sys.stdout.write(item[0:i + 1])
        sys.stdout.flush()
        time.sleep(0.3)

6. 多行滾動字幕輸出編程三種之境界

輸出編程三種之境界詩句,實現動態多行滾動字幕按字順序輸出詩句,間隔時間爲0.3秒,輸出效果如下圖所示。
在這裏插入圖片描述
示例代碼如下:

import time
import sys

verse_list = ["             編程三種之境界",
              "中外之編程成大事業者,必經過三種之境界。",
              "昨夜西風凋碧樹。獨上高樓,望盡天涯路---此第一境也。",
              "衣帶漸寬終不悔,爲伊消得人憔悴---此第二境也。",
              "衆裏尋他千百度,驀然回首,那人卻在,燈火闌珊處---此第三境也。"]
i = 0
j = 0
for i in range(len(verse_list)):
    for j in range(len(verse_list[i])):
        sys.stdout.write("\r")
        if i == 1 and j == 0:
            sys.stdout.write(verse_list[0] + '\n')
        elif i == 2 and j == 0:
            sys.stdout.write(verse_list[1] + '\n')
        elif i == 3 and j == 0:
            sys.stdout.write(verse_list[2] + '\n')
        elif i == 4 and j == 0:
            sys.stdout.write(verse_list[3] + '\n')
        sys.stdout.write(verse_list[i][0:j + 1])
        sys.stdout.flush()
        time.sleep(0.3)

7. 隨機動態一行輸出多首詩詞

輸出編程三種之境界詩句,實現動態原位置按字順序輸出詩句,間隔時間爲0.3秒,輸出效果如下圖所示。
在這裏插入圖片描述
示例代碼如下:

import time
import sys
import random

verse_list = [["編程三種之境界", "中外之編程成大事業者,必經過三種之境界。",
         "昨夜西風凋碧樹。獨上高樓,望盡天涯路---此第一境也。",
         "衣帶漸寬終不悔,爲伊消得人憔悴---此第二境也。",
         "衆裏尋他千百度,驀然回首,那人卻在,燈火闌珊處---此第三境也。"],
        ["朝辭白帝彩雲間,", "千里江陵一日還。", "兩岸猿聲啼不住,", "輕舟已過萬重山。"]]
i = 0
while True:
    new = random.choice(verse_list)
    for item in new:
        for i in range(len(item)):
            sys.stdout.write("\r")
            sys.stdout.write(item[0:i + 1])
            sys.stdout.flush()
            time.sleep(0.3)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章