第二章:python必备基础语法
文章目錄
- 第二章 python必備基礎語法
- 一、變量
- 1.1 什么是變量?有什么用處?
- 1.2 如何聲明一個變量(即定義變量)?
- 1.3 變量的命名規則及風格
- 1.4 變量值的三大特性
- 作業:
- 1.5 基本數據類型
- 1.5.1 數字類型(number)
- 1.5.2 字符串(String)
- 1.5.3 列表(List)
- 1.5.4 字典
- 二、輸入、輸出
- 練習:
- 格式化輸出
- 作業:
- 作業答案:
- 三、流程控制if、else、elif
- 3.1 if、else、elif基本用法
- 作業
- 答案
- 四、python運算符
- 4.1 算數運算符
- 4.2 比較運算符
- 4.3 賦值運算符
- 4.4 邏輯運算符
- 4.5 成員運算符
- 4.6 位運算符
- 4.7 成員運算符(了解)
- 4.8 運算符優先級(了解)
- 作業:
- 五、循環結構(while、for)
- 5.1 什么是循環?什么是循環結構?
- 5.2 while循環
- 5.2.1 python中while語句的一般形式:
- 5.2.2 下面舉個例子
- 練習:使用while計算1到100之和
- 5.2.3 無限循環
- 5.2.4 while循環 + else語句
- 5.2.5 while循環 + continue
- 5.2.5 while循環 + break
- 作業:
- 作業答案:
- 5.3 for循環
- 5.3.1 for循環基本語法
- 5.3.2 for循環 + range函數
- 作業:
- 作業答案:
- 章節習題
- 題目
- 答案
第二章 python必備基礎語法
經過第一章的學習,我們對python有了一定的了解,接下來我們學習它的基礎語法。
一、變量
1.1 什么是變量?有什么用處?
變量就是可以發生改變的量(即可變的量);是用來記錄事物狀態,并且變量是可以發生改變的。
1.2 如何聲明一個變量(即定義變量)?
name = 'wuchangwen' # 即變量值通過賦值符號(=)傳給變量名的過程 gender = 'male' age = 181.3 變量的命名規則及風格
命名規則:
''' 1.變量名只能是字母、數字、下劃線的任意組合; 2.變量名的第一個字符不能是數字; 3.關鍵字和特殊符號不可以聲明為變量名 '''#查看python中的關鍵字 import keyword print(keyword.kwlist)命名風格:
tom_age = 18 # 小寫加下劃線TomAge = 18 #駝峰體1.4 變量值的三大特性
id:內存地址不同,id則不同 type:類型 value:值作業:
1.什么是變量? 2.如何定義一個變量? 3.變量的命名規則和風格有哪些? 4.變量值有哪些特性? 5.小明同學今年三歲了,在未來之星幼兒園讀小班,是班里唯一的男同學;請用變量名(名字、年齡、性別)把小明的信息打印出來。 name = '小明' age = 3 gender = 'male' print(name,age,gender)1.5 基本數據類型
這里我們先認識基本概念,后面我們會專門講解它們的內置方法。
1.5.1 數字類型(number)
python中的數字類型有四種:整數(整型)、小數(浮點型)、布爾型和復數 整型(int):1,100,1000等 浮點型(float):3.14、1.99等 布爾型(bool):True和False 復數(complex):1 + 2j、8.9 + 1.9j1.5.2 字符串(String)
python中單引號和雙引號完全相同 str = '我是字符串'|| str = "我是字符串"使用三引號可以寫多行字符串 str = ''' 我是字符串1 我是字符串2 我是字符串3 ''' str = """ 我是字符串1 我是字符串2 我是字符串3 """1.5.3 列表(List)
列表類型可以用來記錄多個同種屬性的值(比如同一個班級多個學生的姓名、同一個人的多個愛好等),并且存取都十分方便 name_list = ['小明','小文','小凱']1.5.4 字典
字典可以用來記錄人的名字、性別、年齡等,主要以key:value的形式來存放數據 info_dict = {'name':'小文','gender':'男','age':18}二、輸入、輸出
# 將用戶的輸入內容賦值給 name 變量名 name = input('請輸入您的名字: ') # 輸入 print('您的名字:',name) # 輸出 # 簡單地說: # 輸入:我們通過學習不斷把新知識注入大腦 # 輸出:我們把自己會的知識說出來教給他人練習:
# 利用輸入、輸出的方式輸入名字、年齡、性別 name = input('請輸入名字:') age = input('請輸入年齡:') gender = input('請輸入性別:') print('名字:',name,' 年齡:',age,' 性別:',gender)經過練習,我們了解了輸入輸出的基本用法,接下來我們學習格式化輸出
格式化輸出
格式化輸出的用法有很多,我們主要學習一些常用的方法。
# %d(用于連接整數) print('上海第一中學總人數:%d'%3000)# %s(用于連接字符串) print('小明的家在%s'%"上海市")# 常用轉義字符 \(續行符) \\(反斜杠符號) \n(換行符) \t(橫向制表符) print('My name\is wuchangwen') print('一年有四個季節 \\春 \\夏 \\秋 \\冬') print('一年有四個季節 \n春 \n夏 \n秋 \n冬') print('一年有四個季節\t春\t夏\t秋\t冬')# format: # (1)不帶編號,即“{}” print('My name is {},my age is {}'.format('wuchangwen',18)) # (2)帶數字編號,可調換順序,即“{1}”、“{2}” print('My name is {0},my age is {1}'.format('wuchangwen',18)) print('My name is {1},my age is {0}'.format(18,'wuchangwen')) # 可以打亂順序輸出 # (3)帶關鍵字,即“{name}”、“{age}” print('My name is {name},my age is {age}'.format(name='wuchangwen',age=18))作業:
1.請用%d打印出你的年齡 2.請用%s格式化輸出打印班級男女比率 3.請用轉義字符 \(續行符) \\(反斜杠符號) \n(換行符) \t(橫向制表符) 分別打印出一句話。 4.請用format的三種方法打印班級考勤。作業答案:
# 1.請用%d打印出你的年齡 print('My age is %d'%18)# 2.用%s格式化輸出打印班級男女比率 print('我們班由%s的男同學和%s的女同學組成。'%('51%','49%'))# 3.請用轉義字符 \(續行符) \\(反斜杠符號) \n(換行符) \t(橫向制表符) 分別打印出一句話。 print('昨天我學了\ python簡介') print('樹上的鳥兒\\時而跳\\時而唱歌\\時而觀望遠處') print('上海著名的旅游景點:\n外灘\n迪士尼\n上海動物園') print('昨天刮了風\t今天下了雨\t明天太陽就會出來!')# 4.請用format打印班級考勤。 print('上海985大學:{}, 總人數:{}, 實到人數:{}, 請假人數:{},請假人:{}'.format('人工智能精英班',30,29,1,'張三')) print('上海985大學:{0}, 總人數:{1}, 實到人數:{2}, 請假人數:{3},請假人:{4}'.format('人工智能精英班',30,29,1,'張三')) print('上海985大學:{school}, 總人數:{sum}, 實到人數:{count}, 請假人數:{num},請假人:{name}'.format(school='人工智能精英班',sum=30,count=29,num=1,name='張三'))三、流程控制if、else、elif
3.1 if、else、elif基本用法
''' 如果你今年大于18歲了,則打印 恭喜你成年了 否則打印 你還未未成年 ''' age = input('please input your age: ') age = int(age) if age > 18:print('恭喜你成年了') else:print('你還未未成年')''' 根據多用戶輸入的內容輸出其會員信息 wuchangwen --> 超級會員 tom --> 普通會員 tony --> 沒會員 其他 --> 會員不存在 ''' name = input('請輸入會員名:') if name == 'wuchangwen':print('超級會員') elif name == 'tom':print('普通會員') elif name == 'tony':print('沒會員') else:print('會員不存在!')作業
一、選擇題 1.以下代碼輸出的結果是? if None:print(“Hello”) A.False B.Hello C.沒有任何輸出 D.語法錯誤2.在 if...elif...else 的多個語句塊中只會執行一個語句塊? A.正確 B.錯誤 C.根據條件決定 D.Python中沒有elif語句3.以下代碼輸出結果為? for i in [1, 0]:print(i+1) A.21 B.[2,1] C.2 D.0二、代碼題 ''' 4.根據學生成績為學生評級 學生分數小于等于100分大于等于90分,則打印優秀 學生分數小于90分大于等于75分,則打印良好 學生分數小于75分大于等于60分,則打印及格 學生分數小于60分,則打印不及格,要更加努力! '''答案
1.C 2.A 3.A 4.根據學生成績為學生評級 score = int(input('請輸入你的分數:')) if 90 <= score <= 100:print('優秀') elif 75 <= score <90:print('良好') elif 60 <= score < 75:print('及格') else:print('不及格,要更加努力!')四、python運算符
4.1 算數運算符
a = 9 b = 3 print(a + b) # 加 12 print(a - b) # 減 6 print(a * b) # 乘 27 print(a / b) # 除 3.0 print(a % b) # 取模 返回除法的余數 0 print(a ** b) # 冪 返回a的b次冪 729 print(a // b) # 取整除 返回商的整數部分 34.2 比較運算符
a = 9 b = 3print(a == b) # 等于 False print(a != b) # 不等于 True print(a > b) # 大于 True print(a < b) # 小于 False print(a >= b) # 大于等于 True print(a <= b) # 小于等于 False4.3 賦值運算符
a = 9 b = 3 c = a + b # 簡單的賦值運算 print(c) # 12 b += a # 加法賦值運算 等同于 b = b + a print(b) # 12 b -= a # 減法賦值運算 等同于 b = b - a print(b) # -6 b *= a # 乘法賦值運算 等同于 b = b * a print(b) #27 b /= a # 除法賦值運算 等同于 b = b / a print(b) # 0.3333333333333333 b %= a # 取模賦值運算 等同于 b = b % a print(b) # 3 b **= a # 冪賦值運算 等同于 b = b ** a print(b) # 19683 b //= a # 取整除賦值運算 等同于 b = b // a print(b) # 04.4 邏輯運算符
a = True b = Falseprint(a and b) # “與” 有一個錯則全錯 print(a or b) # “或” 有一個對則全對 print(not a) # "非" 如果b為True,則返回False print(not b) # "非" 如果b為False,則返回True4.5 成員運算符
L = [1,2,3,4,5,6,7,8]print(1 in L) # 如果在L中找到1,則返回True print(9 in L) # 如果在L中找不到9,則返回False print(9 not in L) # 如果在L中找不到9,則返回True print(1 not in L) # 如果在L中找到1,則返回False4.6 位運算符
a = 1 b = 1 print(id(a) is id(b)) # is是判斷兩個標識符是不是引用自一個對象 print(id(a) is not id(b)) # is not是判斷兩個標識符是不是引用自不同對象4.7 成員運算符(了解)
# 變量 a 為 60,b 為 13,二進制格式如下: a = 0011 1100b = 0000 1101a&b = 0000 1100a|b = 0011 1101a^b = 0011 0001~a = 1100 0011實例
a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0c = a & b; # 12 = 0000 1100 print "1 - c 的值為:", cc = a | b; # 61 = 0011 1101 print "2 - c 的值為:", cc = a ^ b; # 49 = 0011 0001 print "3 - c 的值為:", cc = ~a; # -61 = 1100 0011 print "4 - c 的值為:", cc = a << 2; # 240 = 1111 0000 print "5 - c 的值為:", cc = a >> 2; # 15 = 0000 1111 print "6 - c 的值為:", c4.8 運算符優先級(了解)
作業:
1.把上面的案例多練兩遍,要求做到熟練掌握。2.x 的 y 次方(xy) 以下表達式正確的是? A.x^y B.x**y C.x^^y D.python沒有提到3.22 % 3 表達式輸出結果為? A.7 B.4 C.3 D.14.3*1**3 表達式輸出結果為? A.27 B.9 C.3 D.15.9//2 表達式輸出結果為? A.1 B.2 C.3 D.46.如果表達式的操作符有相同的優先級,則運算規則是? A.左到右 B.右到左 C.從中間到兩邊 D.看心情7.以下代碼輸出結果為? x = True y = False z = Falseif x or y and z:print("yes") else:print("no") A.yes B.no C.typeerror· D.nameerror8.以下代碼輸出結果為? x = True y = False z = Falseif not x or y:print(1) elif not x or not y and z:print(2) elif not x or y or not y and x:print(3) else:print(4) A.1 B.2 C.3 D.4答案:2.B 3.D 4.C 5.D 6.A 7.A 8.C五、循環結構(while、for)
5.1 什么是循環?什么是循環結構?
老師我知道!循環就是重復做事情。
對的,循環就是重復做某件事情,比如每天學習、工作、呼吸等等。
循環結構是指在程序中需要反復執行某個功能而設置的一種程序結構(通俗的說就是重復執行某段代碼塊),它由循環體和判斷條件兩部分組成。
5.2 while循環
5.2.1 python中while語句的一般形式:
while 判定條件:語句(循環體)5.2.2 下面舉個例子
#利用while循環打印數字1-9 num = 1 while num <= 9:print(num)num += 1#如果條件為真的話則語句執行,執行結束后再次循環,重新判斷條件是否符合#如果條件為假則循環體不會執行,循環結束有了一定的認識后,我們再來做一個練習
練習:使用while計算1到100之和
sum = 0 # 沒有計算之前總數0 count = 1 # 第一個數為1 num = 100 # 最后一個數為100 while count <= num: # 判斷count是否小于等于100,當循環到count<num時,程序結束sum = sum + count # 求和count += 1 # 循環一次加1 print("1到100之和為:",sum) # 打印求和5.2.3 無限循環
經過小練習,我們對while循環有了更多的認識。
當條件為True時,程序會無限循環
練習1:利用無線循環寫一個輸入輸出程序
while True:num = int(input("今天你上了幾節課:"))print("今天你上了%s節課!" % num)print('學習使我們獲得知識,繼續努力!')練習2:利用無限循環和時間模塊,讓程序睡一秒再繼續打印下一個數字。
import time # 導入時間模塊,此處我們不需要什么是模塊,后面我們會專門講解模塊的知識 num = 1 while True:print('打印數字:',num)time.sleep(1)num += 15.2.4 while循環 + else語句
num = 1 while num < 9:print(num, " 小于 9")num = num + 1 else:print(num, " 大于或等于 9")5.2.5 while循環 + continue
# 打印數字1 2 3 5 6 7 8 9 num = 0 while num < 9:num += 1if num == 4: # 當num=4時,跳過4打印下一個數字continue # 結束本次循環,跳到下一次循環print('正在打印數字:', num)5.2.5 while循環 + break
# 打印數字 1 2 3 后結束后面的循環 num = 0 while num < 9:num += 1if num == 4:break # break和continue不同,當條件符合時,就會立即停止程序print('正在打印數字:', num)作業:
1.利用while循環打印1-100所有的奇數 2.利用while循環打印1-100所有的偶數 3.利用while循環打印數字1-100,跳過數字4和7時,繼續執行程序 4.利用while循環打印數字1-100,當數字等于50時,終止程序作業答案:
#1.利用while循環打印1-100所有的奇數 num = 1 while num <= 100:if num % 2 != 0:print(num)num += 1#2.利用while循環打印1-100所有的偶數 num = 1 while num <= 100:if num % 2 != 1:print(num)num += 1# 3.利用while循環打印數字1-100,跳過數字4和7時,繼續執行程序 num = 0 while num < 100:num += 1if num == 4 or num ==7:continueprint('正在打印數字:',num)# 4.利用while循環打印數字1-100,當數字等于50時,終止程序 num = 0 while num < 100:num += 1if num == 50:breakprint('正在打印數字:',num)5.3 for循環
5.3.1 for循環基本語法
for 變量名 in (字符串、列表、字典等):語句1(循環體)語句2(循環體)...為了更好的認識for循環,舉幾個簡單的例子來學習。
# 字符串 for i in 'shanghai': 通過變量i把字符串一個個字母遍歷出來print(i)# 列表 L = ['小明','小紅','小李'] for i in L:print(i)# 字典 dic = {'name':'wuchangwen','age':18} for i in dic:print(i,dic[i])5.3.2 for循環 + range函數
案例
# 案例一、打印數字0-9 for num in range(10): # range(10)會產生0,1,2,3,4,5,6,7,8,9這,10個數字print(num)# 案例二、for循環嵌套,當喊到誰名字時,就回復‘到’ name = ['小明','小紅','小李'] report = '到' for i in name:print(i)for j in report:print(j)練習
# 練習一、打印數字1-9 for num in range(1,10): # range(1,10)會產生1,2,3,4,5,6,7,8,9這9個數字print(num)# 練習二、打印圖形 ''' ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ''' for i in range(5):for j in range(10):print('^',end=' ')print() # 換行練習三、打印乘法表 for i in range(1,10):for j in range(1,i+1):print('%s*%s = %s '%(i,j,i*j),end=' ')print()作業:
一、選擇題 1.Python 中,for 和 while 可以有 else 語句? A.只有 for 才有 else 語句。 B.只有 while 才有 else 語句。 C.for 和 while 都可以有 else 語句。 D.for 和 while 都沒有 else 語句。2.以下代碼輸出的結果是? i = sum = 0while i <= 4:sum += ii = i+1print(sum)A.0 B.10 C.4 D.以上結果都不對。3.以下代碼輸出的結果是? while 4 == 4:print('4')A.輸出一次 4。 B.輸出四次 4。 C.無限次輸出 4,直到程序關閉。 D.語法錯誤。4.迭代輸出序列時(如:列表)使用 for 比 while 更好? A.錯誤,while 比 for 更好。 B.正確 C.錯誤,while 不能用于迭代系列。 D.錯誤,for 和 while 都不能用于迭代系列。5.以下哪個描述是正確的? A.break 語句用于終止當前循環。 B.continue 語句用于跳過當前剩余要執行的代碼,執行下一次循環。 C.break 和 continue 語句通常與 if, if...else 和 if...elif...else 語句一起使用。 D.以上說法都是正確的。 6.以下代碼輸出的結果是? for char in 'PYTHON STRING':if char == ' ':breakprint(char, end='')if char == 'O':continueA.PYTHON B.PYTHONSTRING C.PYTHN D.STRING7.以下關于 pass 哪個描述是正確的? A.Python 會忽略 pass 語句,就像忽略注釋一樣。 B.pass 語句會終止當前循環。 C.pass 不做任何事情,一般用做占位語句。 D.以上說法都是正確的。二、代碼題 1.利用for循環打印1-100所有的奇數 2.利用for循環打印1-100所有的偶數 3.利用for循環打印1-100所有的奇數之和 4.利用for循環打印1-100所有的偶數之和 5.利用range打印1-100的和 6.利用for循環打印金字塔作業答案:
一、選擇題 1.C 2.B 3.C 4.B 5.D 6.A 7.D二、代碼題 # 1.利用for循環打印1-100所有的奇數 for i in range(1,101,2):print(i)# 2.利用for循環打印1-100所有的偶數 for i in range(2,101,2):print(i)# 3.利用for循環打印1-100所有的奇數之和 sum = 0 for i in range(0,101):if i % 2 == 1:sum += i print(sum)# 4.利用for循環打印1-100所有的偶數之和 sum = 0 for i in range(0,101):if i % 2 == 0:sum += i print(sum)# 5.利用range打印1-100的和 print(sum(range(101)))# 6.利用for循環打印金字塔 x = 5 for y in range(1, x + 1):for i in range(x - y):print(' ', end='') # 在一行中連續打印多個空格for j in range(2 * y - 1):print('^', end='') # 在一行中連續打印^print()章節習題
題目
1.小文去年18歲了,在去年的基礎上打印今年小文的年齡。(用數字相加的方式)
2.我們都知道"復旦大學",那么在這所大學的下面有一所附屬中學,請用字符串相加的方式打印出來。
3.現在水果店里有一張價格表,請用格式化的方式輸出下表。
4.猜猜我是誰?如果是“小文”則打印“恭喜猜對了”,否則打印“猜錯了”。
5.請用1,2,3,4這四個數字組成不相同且不重復的三位數,請問能組成多少個?分別是什么?
6.企業發放的獎金根據利潤提成。利潤(I)低于或等于10萬元時,獎金可提10%;利潤高于10萬元,低于20萬元時,低于10萬元的部分按10%提成,高于10萬元的部分,可提成7.5%;20萬到40萬之間時,高于20萬元的部分,可提成5%;40萬到60萬之間時高于40萬元的部分,可提成3%;60萬到100萬之間時,高于60萬元的部分,可提成1.5%,高于100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤I,求應發放獎金總數?
答案
# 1.小文去年18歲了,在去年的基礎上打印今年小文的年齡。(用數字相加的方式) age = 18 new_age = age + 1 print(new_age)# 2.現在有一所復旦大學,那么在它的下面有一所附屬中學,請用字符串相加的方式打印出來。 name = '復旦大學' new_name = name + "附屬中學" print(new_name)#3.現在水果店里有一張價格表,請用格式化的方式輸出下表。 width = int(input('請輸入表格的寬度:')) price_width = 10 item_width = width - price_widthheader_format = '%-*s%*s' format = '%-*s%*.2f'print('=' * width)# 打印表頭 print(header_format % (item_width, '名稱', price_width, '價格'))print('-' * width)print(format % (item_width, '蘋果', price_width, 7.5)) print(format % (item_width, '桔子', price_width, 5.0)) print(format % (item_width, '香蕉', price_width, 3.8)) print(format % (item_width, '葡萄', price_width, 9.0)) print(format % (item_width, '石榴', price_width, 6.8)) print(format % (item_width, '西瓜', price_width, 2.5))print('=' * width)# 4.猜猜我是誰?如果是“小文”則打印“恭喜猜對了”,否則打印“猜錯了”。 name = input('猜猜我是誰:') if name == '小文':print('恭喜猜對了') else:print('猜錯了')# 5.請用1,2,3,4這四個數字組成不相同且不重復的三位數,請問能組成多少個?分別是什么? for i in range(1, 5):for j in range(1, 5):for k in range(1, 5):if (i != k) and (i != j) and (j != k):print(i, j, k)6.企業發放的獎金根據利潤提成。利潤(I)低于或等于10萬元時,獎金可提10%; 利潤高于10萬元,低于20萬元時,低于10萬元的部分按10%提成,高于10萬元的部分, 可提成7.5%;20萬到40萬之間時,高于20萬元的部分,可提成5%; 40萬到60萬之間時高于40萬元的部分,可提成3%;60萬到100萬之間時, 高于60萬元的部分,可提成1.5%,高于100萬元時,超過100萬元的部分按1%提成, 從鍵盤輸入當月利潤I,求應發放獎金總數? i = int(input('凈利潤:')) arr = [1000000,600000,400000,200000,100000,0] rat = [0.01,0.015,0.03,0.05,0.075,0.1] r = 0 for idx in range(0,6):if i>arr[idx]:r+=(i-arr[idx])*rat[idx]print ((i-arr[idx])*rat[idx])i=arr[idx] print (r)作者:吳常文
出處:https://blog.csdn.net/qq_41405475
本文版權歸作者和CSDN共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接。
總結
以上是生活随笔為你收集整理的第二章:python必备基础语法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SOA:ESB 服务注册中心
- 下一篇: FOTOO-疫情下,企业如何线上组织活动