在我們工作編碼的過程中,如果一段代碼的邏輯比較復雜,不是特別容易理解,可以適當的添加注釋,以輔助自己 或者其他編碼人員解讀代碼。
注釋是給程序員看的,為了讓程序員方便閱讀代碼,解釋器會忽略注釋。使用自己熟悉的語言,適當的對代碼進行注釋說明是一種良好的編碼習慣(不寫注釋小心扣工資)。
以#開頭,#右邊的所有東西當做說明,而不是真正要執行的程序,起輔助說明作用。
# 輸出hello world
print("hello world")# 輸出hello world
Shift + 3
,或者Ctrl + ?
都可以生成#號
注釋一般在代碼的上方進行編寫,盡量不要跟在代碼的後邊。保持良好的編碼習慣
以 ‘’’ 開始,並以 ‘’’ 結束,我們稱之為多行注釋。
''' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 佛祖保佑 永無BUG 佛曰: 寫字樓裡寫字間,寫字間裡程序員; 程序人員寫程序,又拿程序換酒錢。 酒醒只在網上坐,酒醉還來網下眠; 酒醉酒醒日復日,網上網下年復年。 但願老死電腦間,不願鞠躬老板前; 奔馳寶馬貴者趣,公交自行程序員。 別人笑我忒瘋癫,我笑自己命太賤; 不見滿街漂亮妹,哪個歸得程序員? '''
對於重復使用,並且經常需要修改的數據,可以定義為變量,來提高編程效率。
定義變量的語法為: 變量名 = 變量值
。(這裡的 = 作用是賦值。)
定義變量後可以使用變量名來訪問變量值。
# 定義一個變量表示這個字符串。如果需要修改內容,只需要修改變量對應的值即可
# 注意,變量名不需要使用引號包裹
weather = "今天天氣真好"
print(weather)
print(weather)
print(weather)
說明:
1)變量即是可以變化的量,可以隨時進行修改。
2)程序就是用來處理數據的,而變量就是用來存儲數據的。
在 Python裡為了應對不同的業務需求,也把數據分為不同的類型。
重點關注:int、float、String、List
python中沒有double類型,也沒有char 字符類型
Tuple:和List類似,用一個數據代表很多數據的集合
Dictionary:和現實中字典功能類似
# int
money = 100
print(100)
# float
price = 99.9
print(price)
# boolean
# 變量要見名識意,不要用中文拼音,會被人看不起
# 男 True,女 False
sex = True
print(sex)
# String
# 字符串使用單引號或雙引號都可以,但是必須成對出現
str = 'hello '
str2 = 'world'
print(str + str2)
# 單引號和雙引號的嵌套
str3 = '"哈哈"'
str4 = "'哈哈'"
print(str3)
print(str4)
# 單引號和雙引號會就近匹配,相同的不可以嵌套
# str5 = ""嘿嘿"" 錯誤用法
# list
name_list = ['張飛', '關羽']
print(name_list)
# 獲取list中下標為0的字符串,下標從0開始計算:0、1、2、3....
print(name_list[0])
# tuple
age_tuple = (18, 19, 20)
print(age_tuple)
# dictionary 字典
person = {
'name': '張三', 'age': 18}
print(person)
在python中,只要定義了一個變量,而且它有數據,那麼它的類型就已經確定了,不需要咱們開發者主動的 去說明它的類型,系統會自動辨別。也就是說在使用的時候 "變量沒有類型,數據才有類型"。
str5 = "hello"
print(type(str5))
#<class 'str'>
#str是string的一個縮寫
如果臨時想要查看一個變量存儲的數據類型,可以使用 type(變量的名字),來查看變量存儲的數據類型。
計算機編程語言中,標識符(或者叫變量)是用戶編程時使用的名字,用於給變量、常量、函數、語句塊等命名,以建立起名稱與使用之間的關系。
標識符由字母、下劃線和數字組成($等符號都不可以),且不能以數字開頭。
嚴格區分大小寫。
不能使用關鍵字。
起一個有意義的名字,盡量做到看一眼就知道是什麼意思(提高代碼可 讀性) 比如: 名字 就定義為 name , 定義學生用 student
# 正確示例
name = "張三"
age = 18
#錯誤命名
a = "張三"
b = 18
1)小駝峰式命名法(lower camel case): 第一個單詞以小寫字母開始;第二個單詞的首字母大寫, 例如:myName、aDog
2)大駝峰式命名法(upper camel case): 每一個單字的首字母都采用大寫字母,例如:FirstName、LastName.
3)還有一種命名法是用下劃線“_”來連接所有的單詞,比如send_buf.
Python的命令規則遵循PEP8標准
一些具有特殊功能的標識符,這就是所謂的關鍵字。
關鍵字,已經被python官方使用了,所以不允許開發者自己定義和關鍵字相同名字的標識符。
False None True and as assert break class continue def del elif else except finally for from global if import in is lambda nonlocal not or pass raise return try while with yield
轉換成為整數
print(int("123")) # 123 將字符串轉換成為整數
print(int(123.78)) # 123 將浮點數轉換成為整數
print(int(True)) # 1 布爾值True轉換成為整數是 1
print(int(False)) # 0 布爾值False轉換成為整數是 0
# 以下兩種情況將會轉換失敗
''' 123.456 和 12ab 字符串,都包含非法字符,不能被轉換成為整數,會報錯 print(int("123.456")) print(int("12ab")) '''
轉換成為浮點數
f1 = float("12.34")
print(f1) # 12.34
print(type(f1)) # float 將字符串的 "12.34" 轉換成為浮點數 12.34
f2 = float(23)
print(f2) # 23.0
print(type(f2)) # float 將整數轉換成為了浮點數
轉換成為字符串
str1 = str(45)
str2 = str(34.56)
str3 = str(True) #True
print(type(str1),type(str2),type(str3))
轉換成為布爾值
print(bool(1)) #True,非0的整數都是True
print(bool(' ')) #True,空格也是True
print(bool(0.1)) #True,非0的浮點數都是True
# 以下情況都是False
print(bool(0)) #False
print(bool(0.0)) #False
print(bool('')) #False,沒有內容的字符串都是False
print(bool("")) #False
print(bool({
})) #False,只要字典中有數據,強制轉換為bool,就返回True
print(bool([])) #False,只要列表中有數據,強制轉換為bool,就返回True
print(bool(())) #False只要元組中有數據,強制轉換為bool,就返回True
tuple1 = (0)
print(bool(tuple1)) #False
tuple2 = (0, 0)
print(bool(tuple)) #True
以a=10 ,b=20為例進行計算
注意:混合運算時,優先級順序為: ** 高於 * / % // 高於 + - ,為了避免歧義,建議使用 () 來處理運
算符優先級。 並且,不同類型的數字在進行混合運算時,整數將會轉換成浮點數進行運算。
>>> 10 + 5.5 * 2
21.0
>>> (10 + 5.5) * 2
31.0
注意:在python中, + 兩端都是字符串才可以進行拼接字符串,不是字符串類型的數據可以通過str()強轉為字符串 ,再進行拼接
字符串的乘法,是將字符串重復多少次
print('11' + '22') #1122
print(' hello world' * 3) # hello world hello world hello world
# 同時為多個變量賦值(使用等號連接)
>>> a = b = 4
>>> a
4
>>> b
4
>>> # 多個變量賦值(使用逗號分隔)
>>> num1, f1, str1 = 100, 3.14, "hello"
>>> num1
100
>>> f1
3.14
>>> str1
"hello"
# 示例:+=
>>> a = 100
>>> a += 1 # 相當於執行 a = a + 1
>>> a
101
# 示例:*=
>>> a = 100
>>> a *= 2 # 相當於執行 a = a * 2
>>> a
200
# 示例:*=,運算時,符號右側的表達式先計算出結果,再與左邊變量的值運算
>>> a = 100
>>> a *= 1 + 2 # 相當於執行 a = a * (1+2)
>>> a
300
以下假設變量a為10,變量b為20:
面試題:一下代碼的輸出結果是什麼,為什麼會有這樣的輸出。
a = 34
a > 10 and print('hello world') #輸出
a < 10 and print('hello world') #不輸出
a >10 or print('你好世界') #不輸出
a <10 or print('你好世界') #輸出
思考:
邏輯運算的短路問題
邏輯與運算和邏輯或運算取值時為什麼是那種規則。
and和or有短路效果
age = 10
print("我今年%d歲" % age)
name = "張三"
print("我的姓名是%s, 年齡是%d" % (name, age))
在Python中,獲取鍵盤輸入的數據的方法是采用 input 函數
password = input("請輸入密碼:")
print('您剛剛輸入的密碼是:%s' % password)
注意:
input()的小括號中放入的是提示信息,用來在獲取數據之前給用戶的一個簡單提示
input()在從鍵盤獲取了數據以後,會存放到等號右邊的變量中
input()會把用戶輸入的任何值都作為字符串來對待
if語句是用來進行判斷的,其使用格式如下:
if 要判斷的條件:
條件成立時,要做的事情
#示例
if age >= 18:
print("我已經成年了")
小總結:
if判斷語句的作用:就是當滿足一定 條件時才會執行代碼塊語句,否則就不執行代碼塊語句。
注意:if下一行代碼的縮進為一個tab鍵,或者4個空格。PyCharm可以按Ctrl + Alt + L 直接格式化代碼
if-else的使用格式
if 條件:
滿足條件時的操作
else:
不滿足條件時的操作
age = 18
if age >= 18:
print("你成年了")
else:
print("你是未成年人")
age = int(input("請輸入年齡:"))
if age >= 18:
print("你成年了")
else:
print("未成年人")
elif的功能
if xxx1:
事情1
elif xxx2:
事情2
elif xxx3:
事情3
說明:
當xxx1滿足時,執行事情1,然後整個if結束
當xxx1不滿足時,那麼判斷xxx2,如果xxx2滿足,則執行事情2,然後整個if結束
當xxx1不滿足時,xxx2也不滿足,如果xxx3滿足,則執行事情3,然後整個if結束
示例:
score = int(input("請輸入分數"))
if score >= 90:
print("優秀")
elif score >= 80:
print("良好")
elif score > 60:
print("及格")
else:
print("不及格")
在Python中 for循環可以遍歷任何序列的項目,如一個列表或者一個字符串等。
fo循環的格式
for 臨時變量 in 列表或者字符串等可迭代對象:
循環滿足條件時執行的代碼
for循環的使用
for s in "hello":
print(s)
range 可以生成數字供 for 循環遍歷,它可以傳遞三個參數,分別表示 起始、結束和步長。
for i in range(5):
print(i)
a_list = ['張三', '李四', '王五']
for i in a_list:
print(i)