Python中print(f'***')中f是什么意思


Python3.6新增了一種f-字符串格式化

格式化的字符串文字前綴為’f’和str.format()相似。它們包含由花括號包圍的替換區域。替換字段是表達式或變量,在運行時進行評估,然后使用format()協議進行格式化。以 f 開頭,包含的{}表達式在程序運行時會被表達式的值代替。

import asyncio

# Python 3.5開始引入了新的語法async和await
# 把@asyncio.coroutine替換為async
async def countdown(name,num):
    while num > 0:
        print(f'countdown[{name}]:{num}')
        await asyncio.sleep(1) # 異步調用asyncio.sleep(1):
        num -= 1
# 把yield from替換為await

def main():
    loop = asyncio.get_event_loop() # 獲取EventLoop
    tasks =[countdown("O", 3), countdown("N", 5)]
    loop.run_until_complete(asyncio.wait(tasks)) # 執行coroutine
    loop.close

if __name__ == '__main__':
    main()

運行結果

print(f'{name}')其中 { } 相當於占位符,程序運行時花括號部分會變成相應的變量值,如果print('{name}')中 f 被去掉,就是普通的打印功能,原封不動地打印字符串 {name}

asyncio異步相關知識點

Python 3.5開始引入了新的語法async和await

  • 把@asyncio.coroutine替換為async
  • 把yield from替換為await

__name__ == '__main__'

__name__ == '__main__'用雙下划線開頭且結尾的變量,在 Python 中被稱為內置變量
dir(__builtins__)可查看 Python 全部內置變量和內置函數

__name__ 是當前模塊名,當模塊被直接運行時模塊名為__main__。意思是,當模塊被直接運行時,下面的代碼塊將被運行,當模塊是被導入時,代碼塊不被運行

Python3.4以及早期版本,需要用早期的寫法

import asyncio

@asyncio.coroutine
def countdown(name, num):
    while num > 0:
        print(f'countdown[{name}]:{num}')
        yield from asyncio.sleep(1)
        num -= 1

def main():
    loop = asyncio.get_event_loop()
    tasks =[countdown("A", 3), countdown("B", 5)]
    loop.run_until_complete(asyncio.wait(tasks))
    loop.close

if __name__ == '__main__':
    main()

運行結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM