1. 程式人生 > >Python3之編碼、註釋、輸入輸出

Python3之編碼、註釋、輸入輸出

一、python的內容編碼

當python程式碼中有中文時,用python2執行會報錯,一般需要在程式碼開頭手動設定編碼格式;python3直譯器中自帶UTF-8編碼器,可以不設定。

指定編碼格式的幾種方法,如下

#coding=utf-8
#coding:utf-8
# -*- coding:utf-8 -*-

二、註釋

#我是單行註釋
'''
我是多行註釋,使用單引號。
我是多行註釋,使用單引號。
我是多行註釋,使用單引號。
'''
"""
我是多行註釋,使用雙引號。
我是多行註釋,使用雙引號。
我是多行註釋,使用雙引號。
"""
#前面指定編碼中的#為指定語法

三、輸出print()

程式設計入門的經典語句

#輸出hello world!
print("hello world!")

執行結果為:

hello world!

稍微複雜一點的輸出:

x = "hello"
y = "XiaoDong"

#輸出(單個變數)
print("輸出結果:%s"%x)  #相當於將變數x的值放在%s的位置

#輸出(多個變數)
print("輸出結果:%s,%s"%(x,y))   #按照先後順序,將x,y的值放在%s的位置

#重複輸出20個---,作為分界線
print("---"*20)

#格式化輸出format()
print("{} {}"
.format("hello","world")) #按照預設順序,先hello,後world #format()函式可以接受不限個數引數,位置可以不按順序 print("{1} {0} {1}".format("hello","world")) #字串型別變數的輸出 print("網站:{name}, 地址:{url}".format(name="百度", url="www.baidu.com")) #字典型別變數輸出 site = {"name": "百度", "url": "www.baidu.com"} print("網站:{name}, 地址:{url}".format(**site)) #列表型別變數輸出
my_list = ["百度","www.baidu.com"] print("網站:{0[0]}, 地址:{0[1]}".format(my_list)) # {0[0]}中左邊的0是必須的 #format()格式化數字 print("{:.2f}".format(3.14159)) #當需要輸出{}大括號時,使用兩個{{}}實現 print("{:+.2f}{{轉義大括號}}".format(3.14159))

執行結果為:

輸出結果:hello
輸出結果:hello,XiaoDong
------------------------------------------------------------
hello world
world hello world
網站:百度, 地址:www.baidu.com
網站:百度, 地址:www.baidu.com
網站:百度, 地址:www.baidu.com
3.14
+3.14{轉義大括號}

對format()函式的解釋

format()是一種格式化字串的函式,它增強了字串格式化的功能。其基本語法是通過 {} 和 : 來代替以前的 % 。同時,format()函式可以接受不限個數引數,位置可以不按順序。

format()函式的使用:


圖片來源於網路

format()函式數字的格式化

格式 舉例 輸出 備註
{:.2f} “{:.2f}”.format(3.14159) ‘3.14’ 保留小數點後兩位
{:+.2f} “{:+.2f}”.format(3.14159) ‘+3.14’ 帶符號保留小數點後兩位
{:+.2f} “{:+.2f}”.format(-3.1) ‘-3.10’ 帶符號保留小數點後兩位
{:.0f} “{:.0f}”.format(3.1) ‘3’ 不帶小數
{:0>2d} “{:0>2d}”.format(5) ‘05’ 補零(填充左邊, 寬度為2)
{: >2d} “{: >2d}”.format(5) ’ 5’ 補空格(填充左邊, 寬度為2)
{:x<4d} “{:x<4d}”.format(5) ‘5xxx’ 補x(填充右邊, 寬度為4)
{:x^5d} “{:x^5d}”.format(5) ‘xx5xx’ 補x(填充兩邊, 寬度為5)
{:,} “{:,}”.format(1000000) ‘1,000,000’ 以逗號分隔的數字格式
{:.2%} “{:.2%}”.format(0.25) ‘25.00%’ 百分比格式
{:e} “{:e}”.format(123000000) ‘1.230000e+08’ 標準指數記法
{:.2e} “{:.2e}”.format(100000000) ‘1.00e+08’ 指定小數後位數指數記法
{:.2g} “{:.2g}”.format(123000000) ‘1.2e+08’ 保留2位有效數字

不用format()實現print的格式化輸出:

#進位制
print("十進位制3的二進位制:",bin(3))    #注意這裡不是用%b表示二進位制
print("十進位制11的八進位制: 0o%o"%11)
print("十進位制18的十六進位制: 0x%x"%18)

#浮點數形式輸出
print ("保留小數點後兩位:%.2f"%1.314)

#指數形式輸出
print("標準指數形式:%e"%123456)
print("保留2位小數指數形式:%.2e"%123456)

#有效數字輸出
print("標準有效數字形式:%g"%123456)
print("保留2位有效數字:%.2g"%123456)

#指定佔位符寬度(數字)
print("指定寬度,右對齊:%8d"%12)
print("指定寬度,左對齊:%-8d"%12)

#字串格式化輸出
print("指定寬度,左對齊:%-10s"%"Xiao")
print("指定寬度,右對齊:%10s"%"Xiao")
print("擷取2位字串,指定寬度10,預設右對齊:%10.2s"%"Xiao")

#萬能格式符%r,它會將後面給的引數原樣打印出來,帶有型別資訊
form = "%r %r %r %r"
print(form%(1,"a",True,form))

執行結果為:

十進位制3的二進位制: 0b11
十進位制11的八進位制: 0o13
十進位制18的十六進位制: 0x12
保留小數點後兩位:1.31
標準指數形式:1.234560e+05
保留2位小數指數形式:1.23e+05
標準有效數字形式:123456
保留2位有效數字:1.2e+05
指定寬度,右對齊:      12
指定寬度,左對齊:12      
指定寬度,左對齊:Xiao      
指定寬度,右對齊:      Xiao
擷取2位字串,指定寬度10,預設右對齊:        Xi
1 'a' True '%r %r %r %r'

注:文章主要是本人在學習python過程中的一些筆記,便於後期複習,所以某些地方不會很詳細。由於個人水平的限制,若有錯誤的地方,還請指正。程式碼部分是在python3環境下測試。