濟(jì)南網(wǎng)站建設(shè)優(yōu)化精準(zhǔn)客源app
文章目錄
- 注釋(Comment)
- 解釋伴隨行
- 文本編碼問(wèn)題
- 輸入輸出語(yǔ)句(Input & Output)
- 輸出語(yǔ)句
- 普通輸出
- 格式化輸出(3種)
- format 格式總結(jié)
- 輸入語(yǔ)句
- 基本語(yǔ)句
- if 語(yǔ)句
- match 語(yǔ)句(Python3.10 新增)
- for 循環(huán)語(yǔ)句
- while 循環(huán)語(yǔ)句
- while/for .. else語(yǔ)句
- continue 語(yǔ)句
- break 語(yǔ)句
- return 語(yǔ)句
- pass 語(yǔ)句
- 總結(jié)
注釋(Comment)
- 單行注釋
# 注釋內(nèi)容
#
井號(hào),只能單行注釋。 - 多行注釋
由'''2023.1.21新年好! ''' """除了單引號(hào)雙引號(hào)也可以哦 """
'''
或"""
包裹,可以多行注釋,一般用于解釋函數(shù)或程序功能。
解釋伴隨行
在一些編輯器中,新建 Python 模板會(huì)自帶形如#!/usr/bin/env python
的注釋 。
實(shí)際上,#!
是類Unix系統(tǒng)中的Shebang
符號(hào),即解釋伴隨行。該代碼告訴操作系統(tǒng)執(zhí)行該腳本時(shí),調(diào)用系統(tǒng)環(huán)境下的 python 解釋器。可以在git bash
中使用,直接調(diào)用文件名執(zhí)行。
$ ./test.py
在Windows系統(tǒng)中,該代碼實(shí)際無(wú)效,可以刪除。例如在power shell
中運(yùn)行,仍需采用python [file]
形式調(diào)用。
python test.py
文本編碼問(wèn)題
在新建 Python 模板往往會(huì)自帶以下注釋之一,一般位于文件開(kāi)頭前兩行。
# coding = utf-8
# -*- coding: utf-8 -*-
解釋器會(huì)讀取該注釋,并按指定文本編碼解碼,從而避免亂碼問(wèn)題。
在Python2.x版本中,默認(rèn)編碼格式為ASCII,而Python3.x中,默認(rèn)編碼格式為UTF-8。
如果出現(xiàn)中文亂碼或報(bào)錯(cuò)現(xiàn)象,可以指定編碼格式為GBK。大小寫(xiě)皆可。
# coding = GBK
# coding = gbk
# -*- coding: GBK -*-
# -*- coding: gbk -*-
輸入輸出語(yǔ)句(Input & Output)
輸入輸出語(yǔ)句是實(shí)現(xiàn)人機(jī)交互的關(guān)鍵。
輸出語(yǔ)句
完整格式形如print(*object(s), sep=' ', end='\n', file = sys.stdout, flush = False)
參數(shù) | 含義 |
---|---|
*object(s) | 任意數(shù)量的輸出,以逗號(hào), 分隔 |
sep | 可選,指定如何分割多個(gè)輸出對(duì)象,默認(rèn)為空格' ' |
end | 可選,指定在末尾打印的內(nèi)容,默認(rèn)為換行'\n' |
file | 可選,寫(xiě)入方法的對(duì)象,默認(rèn)為sys.stdout |
flush | 可選,指定輸出是刷新(True )還是緩沖(False )。默認(rèn)為False |
普通輸出
語(yǔ)法格式形如
print(常量、變量、表達(dá)式列表)
實(shí)例為
print("Hello world")
a = 1
print(a)
print(2)
print(a, 2)
-
Python 可以同時(shí)輸出多個(gè)值,輸出結(jié)果由空格分隔,這是由
sep
參數(shù)默認(rèn)為空格' '
決定的。而C語(yǔ)言必須書(shū)寫(xiě)多個(gè)格式聲明才能實(shí)現(xiàn)。可見(jiàn) Python 的輸出功能更加簡(jiǎn)潔、強(qiáng)大。 -
Python 中一個(gè) print 輸出結(jié)束后會(huì)自動(dòng)換行,而C語(yǔ)言的 printf 不會(huì)。這是由
end
參數(shù)默認(rèn)為換行'\n'
決定的。
格式化輸出(3種)
-
格式一:
print(格式控制 % 輸出列表)
print("我今年的年齡%d" % 18) print("酒精濃度為%s%%" % 50) print("今年是%d,去年是%d,明年是%d" % (2023, 2022, 2024)) print("今年是%s,去年是%s,明年是%s" % (2023, 2022, 2024))
該格式與C語(yǔ)言類似。多個(gè)輸出時(shí)用小括號(hào)包裹。輸出百分號(hào)使用兩個(gè)連續(xù)的百分號(hào)
%%
。Python 中
%s
既可以輸出字符串,也可以輸出整型和浮點(diǎn)型。C語(yǔ)言無(wú)法這樣。 -
格式二:
print("普通字符{format格式}".format(輸出列表))
# 無(wú)編號(hào) print("我今年的年齡{}".format(18)) print("今年是{},去年是{},明年是{}".format(2023, 2022, 2024)) # 帶編號(hào) print("今年是{0},去年是{1},明年是{2}".format(2023, 2022, 2024)) print("今天是{0}年的尾聲,你好{0},再見(jiàn){0}".format(2022) # 帶鍵值 print("我是{a},她是,喜歡{a}".format(a = "小明", b = "小紅"))
- format格式功能非常強(qiáng)大,風(fēng)格與 C# 類似。詳見(jiàn) format 格式總結(jié)。
- 帶編號(hào)的format格式在重復(fù)使用某些變量時(shí)具備優(yōu)勢(shì),使得表達(dá)簡(jiǎn)潔,靈活。
- 帶鍵值的format格式可以使表達(dá)式不拘泥于順序,而按鍵值配對(duì),更加靈活。
-
格式三:
print(f"普通字符{常量、變量、表達(dá)式}")
year = 2023 print(f"我的年齡是{18}歲,今年是{year}年,1+2={1+2}")
f - 格式化字符串(Python3.6新增) 比百分號(hào)輸出格式與format 輸出格式更加高效簡(jiǎn)潔。
format 格式總結(jié)
格式 | 樣例 | 輸出 | 說(shuō)明 |
---|---|---|---|
{:.nf} | {:.0f} 3.1415 | 3 | 保留n位小數(shù)(n = 0,1…) |
{:+.nf} | {:+.2f} 3.1415 | +3.14 | 帶符號(hào)保留n位小數(shù) |
{:m>nd} | {:0>3d} 1 | 001 | 向左補(bǔ)0 |
{:m<nd} | {:x<3d} 1 | 1xx | 向右補(bǔ)x |
{:>nd} | {:>3d} 1 | 右對(duì)齊 | |
{:<nd} | {:<3d} 1 | 左對(duì)齊 | |
{:^nd} | {:^3d} 1 | 中間對(duì)齊 | |
{:,} | {:,} 100000 | 100,000 | 千位分隔符 |
{:%} | {:.0%} 0.5 | 50% | 百分比格式 |
{:e} | {:.1e} 5000000 | 5.0e+06 | 指數(shù)格式 |
輸入語(yǔ)句
語(yǔ)法格式形如
str1 = input(“提示信息”)
- 輸出提示信息后,等待用戶輸入
- 一般存儲(chǔ)至變量中,如
password = input("請(qǐng)輸入密碼:")
- 所有用戶輸入都視作字符串類型,如果后續(xù)用于數(shù)值比較,需要轉(zhuǎn)換數(shù)據(jù)類型。
顯然,Python 優(yōu)化了C語(yǔ)言中的輸入語(yǔ)句,將用戶提示輸出語(yǔ)句和輸入綁定在一起。
基本語(yǔ)句
if 語(yǔ)句
i = 0;
if i > 1:# 邏輯代碼pass
elif i < -1:# 邏輯代碼pass
else:# 邏輯代碼pass
由if
、elif
、else
劃分分支,常用于單變量分類討論??梢?strong>嵌套,但不推薦過(guò)多的嵌套,不夠優(yōu)雅。
注意:
- Python 中用關(guān)鍵字
elif
代替了else if
。 pass
關(guān)鍵詞用于給未完成的邏輯代碼占位,避免語(yǔ)法報(bào)錯(cuò)。
match 語(yǔ)句(Python3.10 新增)
i = 1;
match i:case 0:# 邏輯代碼passcase 1:# 邏輯代碼passcase 2|3:# 邏輯代碼passcase _:# 邏輯代碼pass
match 語(yǔ)句用于多分支離散型數(shù)據(jù)分類。Python3.10 新增。
-
case _
類似C語(yǔ)言中的default,可以匹配任意字段。 -
當(dāng)不同 case 子句的語(yǔ)句塊一致,可以通過(guò)
|
設(shè)置多個(gè)匹配條件,共用語(yǔ)句塊。
從形式和上述用法上match 語(yǔ)句和 C語(yǔ)言中的switch 語(yǔ)句幾乎沒(méi)什么不同,而且使用 if 語(yǔ)句也完全可以實(shí)現(xiàn)上述需求,那這種新特性的意義何在?
實(shí)際上,match 語(yǔ)句適用范圍遠(yuǎn)遠(yuǎn)不止上述字面量的分類判斷。列舉一個(gè)比較重要的特性:match 語(yǔ)句可以將match
后的待匹配變量的值,賦值給case
后的變量
def func1(name):match name:case "":print("...")case myName:print(f"Hi, my name is {myName}!")
func1("TOM") # Hi, my name is TOM!
for 循環(huán)語(yǔ)句
# 1
str1 = "abcdef" # 字符串序列
for i in str:print(i)# 2
for i in range(1, 6):print(i) # 1 2 3 4 5# 3
str1 = "abcdef" # 字符串序列
for i, j in enumerate(str):print(f"第{i}個(gè)字母為{j}")# 4. 錯(cuò)誤示例
list1 = [1, 2, 3, 4, 5]
for i, num in enumerate(list1):if num == 2:list1.remove(list1[i])print(num) # 1 2 4 5 與預(yù)期輸出不符# 5. 正確示例
list1 = [1, 2, 3, 4, 5]
for i, num in enumerate(list1.copy()):if num == 2:list1.remove(list1[i])print(num) # 1 2 3 4 5
for 循環(huán)一般用于可迭代對(duì)象的遍歷。
如對(duì)列表等可變類型進(jìn)行循環(huán)操作 ,涉及增改刪時(shí)需慎重。這些操作會(huì)改變原有列表元素,從而導(dǎo)致遍歷結(jié)果異常。
正確且常用的操作是將列表通過(guò)copy
方法復(fù)制一份,對(duì)該復(fù)制列表進(jìn)行遍歷即可。
while 循環(huán)語(yǔ)句
i = 0
while i <= 5:# 邏輯代碼i += 1
while 循環(huán)與 for 循環(huán)往往可以等價(jià)替換,常用于退出條件明確而循環(huán)次數(shù)未知的情況。
在游戲編程中,我們往往習(xí)慣用While True
無(wú)限循環(huán)包裹。
while/for … else語(yǔ)句
# 1. while..else
i = 0
while i <= 5:print(i)i += 1
else: # 循環(huán)正常退出時(shí)執(zhí)行print("循環(huán)結(jié)束!")# 2. for..else
str1 = "abcdef"
for str in str1:print(str)
else: # 循環(huán)正常退出時(shí)執(zhí)行print("正常結(jié)束!")
else 關(guān)鍵字可以和循環(huán)配合使用,這是C語(yǔ)言所不具備的特性。當(dāng)循環(huán)正常退出時(shí)執(zhí)行 else 后的代碼。
注:break 會(huì)影響 else 的執(zhí)行,continue 不會(huì)影響。
continue 語(yǔ)句
continue
用于循環(huán)語(yǔ)句中,跳過(guò)當(dāng)前循環(huán),繼續(xù)下一個(gè)循環(huán)。注意計(jì)數(shù)器是否變化,否則容易死循環(huán)。
break 語(yǔ)句
break
用于循環(huán)語(yǔ)句或 switch 語(yǔ)句中,跳出當(dāng)前層循環(huán),不能跳出多層循環(huán)。
return 語(yǔ)句
# 無(wú)變量
return# 單個(gè)變量
return True
return x
return a+b# 多個(gè)變量
return a, b # 默認(rèn)以元組形式返回
return (a, b) # 與上式等效
return [a, b] # 以列表形式返回
return {'1': a, '2': b} # 以字典形式返回
用于函數(shù)中,可以跳出當(dāng)前函數(shù)。當(dāng)缺省時(shí),實(shí)際返回None
。
特別的,Python支持同時(shí)返回多個(gè)變量,默認(rèn)以元組類型打包。這是C語(yǔ)言所不具備的。
pass 語(yǔ)句
pass
表示什么都不做。在編程的過(guò)程中,可以先用 pass
關(guān)鍵字占位,后續(xù)再補(bǔ)充邏輯。
總結(jié)
本章總結(jié)了諸多Python中的語(yǔ)句,現(xiàn)在,你可以書(shū)寫(xiě)一些簡(jiǎn)單的小程序了。