1/75
1認(rèn)識Python語言
2/75
序言
培訓(xùn)最終的目標(biāo)是什么?
衡量一個合格的軟件工程師的標(biāo)準(zhǔn)是什么?
編碼就是技術(shù)的全部?
未來的職業(yè)方向?
請問你的夢想是什么?
3/75
如何學(xué)好編程
編程的目標(biāo)要明確 目的性要強(qiáng);
要理清楚思路 條理要明確;
要大膽嘗試 try do it
要多犯錯 勤犯錯
在錯誤中不斷的總結(jié)進(jìn)步
要勤溝通 會溝通
要勇于表達(dá)自己的想法
要善于炫耀自己的能力
要多湊熱鬧 多幫助身邊的同學(xué) 也許下一個犯錯的可能就
是你
4/75
編程三部曲
明確需求--我要解決什么問題?
分析思路--我要怎么做?確定解決問題的步驟;
代碼實現(xiàn)--將每個步驟用具體的C#語言代碼實現(xiàn)出來;
以上三部曲 每一部都至關(guān)重要
難點(diǎn)在于代碼實現(xiàn):如何將自身的思維規(guī)則向程序的規(guī)則
轉(zhuǎn)化
try-err-try-err-try-err…-try-ok
持之以恒 編碼可成
5/75
尋找自己的技術(shù)之道
What--該技術(shù)是什么,必須知道;
How--該技術(shù)怎么使用,必須熟練;
Why--該技術(shù)的內(nèi)部工作原理,可以不了解,但如果了
解,會更有助于對技術(shù)的理解和運(yùn)用;
Where--該技術(shù)的特點(diǎn)和適用場景,必須了解;
技術(shù)學(xué)無止境 唯道恒久
6/75
編程語言
7/75
編程語言的種類和發(fā)展
程序設(shè)計語言的種類:
機(jī)器語言:機(jī)器指令,直接執(zhí)行
匯編語言:符號化,匯編器(Assembler)
高級程序設(shè)計語言(編譯型)
高級程序設(shè)計語言(解釋型)
最早大家是用打孔機(jī)和匯編編程,效率不高,相信現(xiàn)在還
用這個的程序員很少了
第二代以C,Basic,Pascal等為主,命令式語言,這里C很
特殊
第三代以C++,Delphi等面向?qū)ο鬄橹饕Z言
第四代以C#,Java,這種帶垃圾回收,中間指令編譯,帶
一個龐大運(yùn)行框架的及運(yùn)行環(huán)境的高大全為主
第五代,就是正在正在流行的,以PHP,JS,Python,
Objective+C,Java等,百花齊放,開放式接口及遵循技術(shù)
標(biāo)準(zhǔn)的簡單編程語言為主。主要為了解決互聯(lián)網(wǎng)網(wǎng)站,及
App應(yīng)用的編程。
從上面的歷史,除了C,其它的語言都逐步進(jìn)入歷史
8/75
編程語言的市場份額
Java
C
C++
C#
Python
Object-C/Swift
PHP
JavaScript
Ruby
9/75
10/75
11/75
IEEE Spectrum 雜志(美國電氣電子工程師學(xué)會出版的旗
艦雜志)發(fā)布了2017年度的計算機(jī)編程語言排行榜,這也
是他們發(fā)布的最新編程語言 Top 榜。據(jù)介紹,IEEE
Spectrum 的排序是來自 10 個重要線上數(shù)據(jù)源的綜合,例
如 Google、Twitter、GitHub 等平臺,選出了排名前10的編
程語言:
1. Python 從去年開始,Python就借著人工智能的東風(fēng),熱
度一路船高水漲。Python可以說是一門比較功利的語言,
它不復(fù)雜,讀和寫都非常易于使用,所以才有了“人生苦
短,我用Python”這樣的調(diào)侃。
12/75
13/75
Python簡介
Python 的起源
1989 年的圣誕節(jié)期間,吉多·范羅蘇姆GuidovanRossum為了在阿姆斯特丹打發(fā)時間,決心開發(fā)一個新的腳
本解釋程序,作為 ABC 語言的一種繼承。之所以選中 Python 作為程序的名字,是因為他是 BBC 電視劇
——蒙提·派森的飛行馬戲團(tuán)(Monty Python's Flying Circus)的愛好者。ABC 是由吉多參加設(shè)計的一種教
學(xué)語言。就吉多本人看來,ABC 這種語言非常優(yōu)美和強(qiáng)大,是專門為非專業(yè)程序員設(shè)計的。但是 ABC 語言
并沒有成功,究其原因,吉多認(rèn)為是非開放造成的。吉多決心在 Python 中避免這一錯誤,并獲取了非常
好的效果,完美結(jié)合了 C 和其他一些語言。
就這樣,Python 在吉多手中誕生了。實際上,第一個實現(xiàn)是在 Mac 機(jī)上。可以說,Python 是從 ABC 發(fā)展
起來,主要受到了 Modula-3(另一種相當(dāng)優(yōu)美且強(qiáng)大的語言,為小型團(tuán)體所設(shè)計的)的影響。并且結(jié)合
了 Unix shell 和C 的習(xí)慣。目前吉多仍然是 Python 的主要開發(fā)者,決定整個 Python 語言的發(fā)展方向。
Python 社區(qū)經(jīng)常稱呼他是仁慈的獨(dú)裁者(BDFL),意思是他仍然關(guān)注 Python 的開發(fā)進(jìn)程,并在必要的時
刻做出決定。
Python 的設(shè)計哲學(xué)是“優(yōu)雅”、“明確”、“簡單”。Python 開發(fā)者的哲學(xué)是“用一種方法,最好是只有一種方法
來做一件事”。在設(shè)計 Python 語言時,如果面臨多種選擇,Python 開發(fā)者一般會拒絕花俏的語法,而選擇
明確沒有或者很少有歧義的語法。這些準(zhǔn)則被稱為“Python 格言”。
14/75
什么是Python
Python是一門面向?qū)ο蟮木幊陶Z言,編譯速度超快,從誕
生到現(xiàn)在已經(jīng)27個年頭了。它具有豐富和強(qiáng)大的庫,常被
稱為“膠水語言”,能夠把用其他語言編寫的各種模塊(尤
其是C/C++)很輕松地聯(lián)結(jié)在一起。其特點(diǎn)在于靈活運(yùn)
用,因為其擁有大量第三方庫,所以開發(fā)人員不必重復(fù)造
輪子,就像搭積木一樣,只要擅于利用這些庫就可以完成
絕大部分工作。
Python 是一個高層次的結(jié)合了解釋性、編譯性、互動性和
面向?qū)ο蟮哪_本語言。
Python 的設(shè)計具有很強(qiáng)的可讀性,相比其他語言經(jīng)常使用
英文關(guān)鍵字,其他語言的一些標(biāo)點(diǎn)符號,它具有比其他語
言更有特色語法結(jié)構(gòu)。
Python 是一種解釋型語言: 這意味著開發(fā)過程中沒有了
編譯這個環(huán)節(jié)。類似于PHP和Lua語言。
Python 是交互式語言: 這意味著,您可以在一個Python提
示符,直接互動執(zhí)行寫你的程序。
Python 是面向?qū)ο笳Z言: 這意味著Python支持面向?qū)ο蟮?/p>
風(fēng)格或代碼封裝在對象的編程技術(shù)。
Python 是初學(xué)者的語言:Python 對初級程序員而言,是一
種偉大的語言,它支持廣泛的應(yīng)用程序開發(fā),從簡單的文
字處理到 WWW 瀏覽器再到游戲。
Python的口號:人生苦短,我用python。
為什么這么說?因為Python能提高你的效率,延長你的生
命,讓人生不再苦短!作為Python的忠實粉絲,我只想大
聲問一句:“還有誰?。俊?,如果你想用三年的時間達(dá)到其
他程序員五年的水平,如果你想用30年的生命活出50歲的
姿態(tài),那么非Python不可!
15/75
16/75
推薦書籍
17/75
安裝Python環(huán)境
因為Python是跨平臺的,它可以運(yùn)行在Windows、Mac和各
種Linux/Unix系統(tǒng)上。在Windows上寫Python程序,放到
Linux上也是能夠運(yùn)行的。要開始學(xué)習(xí)Python編程,首先就
得把Python安裝到你的電腦里。
安裝后,你會得到Python解釋器(就是負(fù)責(zé)運(yùn)行Python程
序的),一個命令行交互環(huán)境,還有一個簡單的集成開發(fā)
環(huán)境。
目前,Python有兩個版本,一個是2.x版,一個是3.x版,這
兩個版本是不兼容的。由于3.x版越來越普及,我們的教程
將以最流行的Python 3.5版本為基礎(chǔ)。請確保你的電腦上
安裝的Python版本是最流行的3.5.x,這樣,你才能無痛
學(xué)習(xí)環(huán)境windows+python3.5
18/75
19/75
第一個Python程序
1.打開記事本,
2.輸入代碼保存成.py格式(注意修改編碼格式utf-8)
3.運(yùn)行
print('Hello World!')
print('跟于老師學(xué)python,so easy。')
20/75
總結(jié)
如何學(xué)好編程
了解python程序語言
安裝Python環(huán)境
第一個Python程序
21/75
本章作業(yè)
作業(yè)一: 運(yùn)行一個Python程序需要使用___命令(填空)
作業(yè)二: 編寫一個Python程序,如HelloFriend,當(dāng)運(yùn)行時在
cmd窗口輸入“python HelloFriend.py”時,會在控制臺輸
出“張三,你好,歡迎來到Python世界”
作業(yè)三: 編寫一個Python程序 ,在cmd窗口運(yùn)行該文件時,
會在控制臺輸入自己的基本信息.比如:姓名,性別,年齡,畢
業(yè)院校,所學(xué)專業(yè)...等信息
作業(yè)四: 編寫一個Python程序,在cmd窗口運(yùn)行該文件時,
會在控制臺輸出如下圖的效果
22/75
2Python語言語法基礎(chǔ)
23/75
注釋
通過用自己熟悉的語言,在程序中對某些代碼進(jìn)行標(biāo)注說
明,這就是注釋的作用,能夠大大增強(qiáng)程序的可讀性。
單行注釋
多行注釋
中文注釋 python3不需要,python2需要
平臺注釋 linux使用
24/75
單行注釋
單行注釋:
以#開頭,#右邊的所有東西當(dāng)做說明,而不是真正要執(zhí)行
的程序,起輔助說明作用
#我是注釋,可以在里寫一些功能說明之類的哦
print("Hello World !")
25/75
多行注釋
多行注釋:
Python 中多行注釋使用三個單引號(''')或三個雙引號(""")
'''
我是多行注釋
可以寫很多
很多行的
功能說明
'''
print('Hello World !')
26/75
中文注釋
中文注釋
從Python3開始,Python默認(rèn)使用UTF-8編碼,所以
Python3.x的源文件不需要特殊聲明UTF-8編碼。
# -*- coding: UTF-8 -*-
print ("你好,Python");
27/75
平臺注釋
如果需要使Python程序運(yùn)行在Windows以外的平臺上
(linux),需要在Python文件的最前面加上如下注釋說明。
#!/usr/bin/python3
print ('hello world');
#!/usr/bin/python它是用來指定用什么解釋器運(yùn)行腳本以及解釋器所在的位置
28/75
標(biāo)識符
標(biāo)識符:
就是程序員自己規(guī)定的具有特定含義的詞.如:類名、
變量名 、函數(shù)名等
python中標(biāo)識符的命名規(guī)則:
*.標(biāo)識符用字母,數(shù)字,以及下劃線組成
*.標(biāo)識符不能以數(shù)字開頭
*.標(biāo)識符不能使用python關(guān)鍵字
*.標(biāo)識符沒有長度的限制
*.標(biāo)識符嚴(yán)格區(qū)分大小寫
標(biāo)識符的命名規(guī)范:
標(biāo)識符應(yīng)該做到簡潔 知名達(dá)意我們目前先使用駝峰
命名法
29/75
30/75
關(guān)鍵字
關(guān)鍵字
有一些專門的詞匯,Python語言已經(jīng)賦予了特定的含義,
只能用于特定的地方。
所以程序員在編寫程序時,不能再使用這些詞匯來命名標(biāo)
識符,不能改變這些詞匯的含義。
查看關(guān)鍵字:
#導(dǎo)入模塊
import keyword
#打印關(guān)鍵字列表
print(keyword.kwlist)
關(guān)鍵字的學(xué)習(xí)以及使用,咱們會在后面的課程中逐漸進(jìn)行學(xué)習(xí)
31/75
變量
變量來源于數(shù)學(xué),它的概念基本上和初中代數(shù)的方程變量是
一致的,只是在計算機(jī)程序中,變量不僅可以是數(shù)字,還
可以是其他數(shù)據(jù)類型。
在計算機(jī)編程語言中,變量是指在程序運(yùn)行期間可以被改變
的量。
在程序中使用變量,必須先創(chuàng)建它并為它取一個名字,并
且指明它能夠存儲信息的類型,這稱為“變量聲明”
。
要在程序中聲明一個變量,其語法形式如下:
變量類型 變量標(biāo)識符[=初始值]
由于Python是弱類型語言,所以在Python語言中聲明變量不
需要指定變量類型
在python語言中聲明變量的語法:
變量標(biāo)識符=初始值
比如: name=“老王”
32/75
數(shù)據(jù)類型
數(shù)據(jù)類型:
一.數(shù)字
1.整數(shù)
Python可以處理任意大小的整數(shù),當(dāng)然包括負(fù)整
數(shù),在程序中的表示方法和數(shù)學(xué)上的寫法一模一樣,例
如:1,100,-8080,0,等等。
計算機(jī)由于使用二進(jìn)制,所以,有時候用十六進(jìn)制
表示整數(shù)比較方便,十六進(jìn)制用0x前綴和0-9,a-f表示,
例如:0xff00,0xa5b4c3d2,等等。
#定義變量并賦值
age = 10
#打印print(age)
#打印類型
print(type(age))
2.浮點(diǎn)數(shù)
浮點(diǎn)數(shù)也就是小數(shù),之所以稱為浮點(diǎn)數(shù),是因為按照科學(xué)記數(shù)法表示時,一個浮點(diǎn)數(shù)的小數(shù)點(diǎn)位
置是可變的,比如,1.23x109和12.3x108是完全相等的。浮點(diǎn)數(shù)可以用數(shù)學(xué)寫法,如1.23,3.14,-9.01,
等等。但是對于很大或很小的浮點(diǎn)數(shù),就必須用科學(xué)計數(shù)法表示,把10用e替代,1.23x109就是1.23e9,
或者12.3e8,0.000012可以寫成1.2e-5,等等。
#定義變量并賦值
score = 89.5
#打印
print(score)
#打印類型
print(type(score))
二.字符串
字符串是以單引號'或雙引號"括起來的任意文本,比如'abc',"xyz"等等。請注意,''或""本身只是一
種表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c這3個字符。如果'本身也是一個字符,
那就可以用""括起來,比如"I'm OK"包含的字符是I,',m,空格,O,K這6個字符。
33/75
#定義變量并賦值
name = 'wang'
#打印
print(name)
#打印類型
print(type(name))
三.布爾值
布爾值和布爾代數(shù)的表示完全一致,一個布爾值只有True、False兩種值,要么是True,要么是
False,在Python中,可以直接用True、False表示布爾值(請注意大小寫),也可以通過布爾運(yùn)算計算出
來。布爾值可以用and、or和not運(yùn)算
#定義變量并賦值
flag = True
#打印
print(flag)
#打印類型
print(type(flag))
四.空值
空值是Python里一個特殊的值,用None表示。None不能理解為0,因為0是有意義的,而None是一
個特殊的空值。
#定義變量并賦值
flag = None
#打印
print(flag)
#打印類型
print(type(flag))
后續(xù)講解:
五.列表
六.元組
七.字典
34/75
類型轉(zhuǎn)換
類型轉(zhuǎn)換
float() 從一個字符串或整數(shù)創(chuàng)建一個新的浮點(diǎn)數(shù)(小
數(shù))。
#聲明變量
number="12"
#轉(zhuǎn)換為浮點(diǎn)型
newNum=float(number)
#打印結(jié)果
print(newNum)
#打印類型
print(type(newNum))
int() 從一個字符串或浮點(diǎn)數(shù)創(chuàng)建一個新的整數(shù)。
#聲明變量
number="12"
#轉(zhuǎn)換為浮點(diǎn)型
newNum=int(number)
#打印結(jié)果
print(newNum)
#打印類型
print(type(newNum))
str()從一個數(shù)(可以是任何其他類型)創(chuàng)建一個新的字符串。
#聲明變量
number=17.2
#轉(zhuǎn)換為浮點(diǎn)型
newNum=str(number)
#打印結(jié)果
print(newNum)
#打印類型
print(type(newNum))
bool()從一個數(shù)(可以是任何其他類型)創(chuàng)建一個新的
布爾值。
35/75
#聲明變量
number="12"
#轉(zhuǎn)換為浮點(diǎn)型
newNum=bool(number)
#打印結(jié)果
print(newNum)
#打印類型
print(type(newNum))
36/75
輸入和輸出
輸出
語法:print(內(nèi)容) 打印輸出到控制臺
print('刷我滴卡---泰語,你好的意思')
print('呀咩跌---日語,不要的意思')
輸入
語法:value = input('請輸入:')
name=input('請輸入您的名字)
print('您的名字是%s'%(name))
37/75
運(yùn)算符表達(dá)式
運(yùn)算符的分類:
算術(shù)運(yùn)算符
比較運(yùn)算符
賦值運(yùn)算符
位運(yùn)算符
邏輯運(yùn)算符
成員操作符
身份操作符
=====================================================================
算數(shù)運(yùn)算符:
=====================================================================
比較運(yùn)算符,<>python2中使用,Python3不再支持
38/75
=====================================================================
賦值運(yùn)算符
39/75
=====================================================================
位運(yùn)算符
40/75
=====================================================================
邏輯運(yùn)算符
=====================================================================
成員運(yùn)算符
41/75
=====================================================================
身份運(yùn)算符
=====================================================================
運(yùn)算符優(yōu)先級
42/75
=====================================================================
Python表達(dá)式:
使用運(yùn)算符將運(yùn)算數(shù)據(jù)連接起來的符合python語法規(guī)
則的式子。
如:x = y + z
43/75
總結(jié)
注釋的使用
標(biāo)識符命名規(guī)范
變量聲明
數(shù)據(jù)類型
類型轉(zhuǎn)換
輸入與輸出
運(yùn)算符與表達(dá)式
44/75
本章作業(yè)
知識點(diǎn)一
判斷以下哪些不能作為標(biāo)識符
A、a
B、¥a
C、_12
D、$a@12
E、false
F、False
知識點(diǎn)二:
運(yùn)用目前學(xué)習(xí)過知識,將數(shù)值123.5678四舍五入保留兩
位小數(shù)(提示:運(yùn)算符的使用)
必做任務(wù):
任務(wù)1:
模仿Hello world案例,寫一個方法向控制臺輸出字符
串"Hello Python"。
任務(wù)2:
在你的方法中定義變量,用這些變量存儲游戲中一個敵人
應(yīng)該有的一些屬性(比如用戶名,等級,經(jīng)驗值,血量,
魔法值等),定義盡可能多的變量。
任務(wù)3:
提示用戶輸入籍貫,當(dāng)用戶輸入籍貫后,向用戶顯示"歡迎
您來到某某" ,某某是用戶輸入的籍貫地。
任務(wù)4:
編寫一個控制臺應(yīng)用程序,要求用戶輸入4個int值,并顯
示他們的乘積。
任務(wù)5:
讓用戶分別輸入姓名,語文,數(shù)學(xué),英語 三門課的成績,
然后給用戶顯示:XX,你的總成績?yōu)閄X分,平均成績?yōu)閄X
分。
任務(wù)6:
編寫一個程序,輸入梯形的上底 下底 和高 ,計算出來梯
45/75
形的面積并顯示出來。
梯形的面積=(上底+下底)*高 /2
任務(wù)7:
編程實現(xiàn)計算指定的天數(shù)(如46天)是幾周零幾天。
用戶輸入的天數(shù)
x/7 --- 周數(shù) x%7----幾天
任務(wù)8:
接受用戶輸入的兩個整數(shù),存儲到兩個變量里面,交換變
量存儲的值。
1.臨時變量
2.求和法
3.異或法
可選任務(wù):
任務(wù)9:
輸入兩個數(shù),分別代表年份和月份,計算這個月的天數(shù)
(可選)。
注:閏年的 2 月有 29 天;能被 4 整除同時不能被 100 整
除即為閏年;如果能被 400 整除的是閏年,除此兩種條
件,其他都是非閏年。
任務(wù)10:
從鍵盤輸入一個三位的正整數(shù),把百分位十分位個位數(shù)字
的相反順序輸出。
思考題:
如何為大小寫混雜的字符串排序?
例如: CabD=>abCD;
46/75
3Python流程控制語句
了解程序的三種基本控制結(jié)構(gòu)-順序結(jié)構(gòu)、選擇(分支)結(jié)構(gòu)、循環(huán)結(jié)構(gòu);
掌握選擇結(jié)構(gòu)的各種語法(if/if-else/if-else if/);
掌握循環(huán)結(jié)構(gòu)的各種語法(while/do-while/for)。
47/75
程序三種結(jié)構(gòu)
程序三種結(jié)構(gòu)
1. 順序結(jié)構(gòu)
2. 選擇結(jié)構(gòu)
3. 循環(huán)結(jié)構(gòu)
48/75
選擇分支語句
程序設(shè)計時,經(jīng)常需要使用選擇結(jié)構(gòu)在程序中完成邏輯判
斷和選這就需要使用到選擇語句。
Python中的選擇語句包括
? if語句
? if-else語句
選擇語句用來控制選擇結(jié)構(gòu),對選擇條件進(jìn)行判斷,并根
據(jù)判斷結(jié)果選擇要執(zhí)行的程序語句,改變程序執(zhí)行流程。
================================================================================
如果某些條件滿足,才能做某件事情,而不滿足時不允許
做,這就是所謂的判斷選擇
================================================================================
if語句
語法:
if 條件表達(dá)式:
語句塊
49/75
================================================================================
if-else雙分支選擇語句
語法:
if 條件表達(dá)式:
語句塊
else:
語句塊
50/75
================================================================================
if-elif多分支選擇語句
if 條件表達(dá)式1: #如果條件表達(dá)式1成立(結(jié)
果為True)
語句塊1 #就執(zhí)行語句塊1中的代碼
elif 條件表達(dá)式2: #否則,如果條件表達(dá)式2
成立
語句塊2 #就執(zhí)行語句塊2中的代碼
elif 條件表達(dá)式3: #如果條件表達(dá)式3成
立
語句塊3 #就執(zhí)行語句塊n-1中的代
碼
51/75
...
elif 條件表達(dá)式n-1: #如果條件表達(dá)式n-1成
立
語句塊n-1 #就執(zhí)行語句塊n-1中的
代碼
else: #如果以上所有的條件都
不成立
語句塊n #就執(zhí)行語句塊n
================================================================================
猜拳游戲:
使用判斷語句,完成石頭剪刀布的猜拳游戲。
52/75
53/75
選擇分支語句專題作業(yè)
1.讓用戶輸入一個月份,判斷這個月是哪個季節(jié)?假定3到
4月是春季,5到8月是夏季,9到10是秋季,11、12、1、2
月是冬季。
2.讓用戶輸入小強(qiáng)的語文、數(shù)學(xué)和英語成績,輸出以下判
斷是否正確,正確輸出true,錯誤輸出false
a.語文、英語和數(shù)學(xué)成績都大于85分;
b.語文、英語和數(shù)學(xué)至少有一門大于95分;
c.語文和英語至少有一門大于90分且數(shù)學(xué)不低于80分。
3.使用分支語句完成一個簡單的計算器程序,用戶輸入兩
個數(shù)字,用四則運(yùn)算符計算結(jié)果并顯示在控制臺上。
4.請用戶輸入兩次,每次輸入一個數(shù)字,如果用戶輸入的
第一個數(shù)大就輸出第一個數(shù),如果用戶輸入的第二個數(shù)大
就輸出第二個數(shù)。
5.請用戶輸入一個字符串,根據(jù)這個字符串的長度得出如
下結(jié)果:
s = "1234"; 字符串的長度:len(s)
長度:0-56之間: 輸出:短消息
長度:57-128之間: 輸出:一般消息
長度:129-192之間: 輸出:長消息
長度:193-256之間: 輸出:超長消息
長度:其他情況:長度超過可發(fā)送上限
6.隨機(jī)產(chǎn)生一個0-5之間的數(shù):
隨機(jī)產(chǎn)生的數(shù):0:輸出:進(jìn)入戰(zhàn)斗
隨機(jī)產(chǎn)生的數(shù):1:輸出:撿到寶箱
隨機(jī)產(chǎn)生的數(shù):2:輸出:撿到武器
隨機(jī)產(chǎn)生的數(shù):3:輸出:撿到彈藥
隨機(jī)產(chǎn)生的數(shù):4:輸出:踩到陷阱
隨機(jī)產(chǎn)生的數(shù):5:輸出:無事件
7.老師問學(xué)生,這道題你會做了嗎?如果學(xué)生答"會了(y)",則
可以放學(xué).如果學(xué)生不會做(n),則老師再講一遍
8.提示用戶輸入年齡,如果大于等于18,則告知用戶可以
54/75
查看,如果小于10歲,則告知不允許查看,如果大于等于
10歲并且小于18,則提示用戶是否繼續(xù)查看(yes、
no),如果輸入的是yes則提示用戶請查看,否則提示"退
出,你放棄查看"
。
9.請用戶輸入自身的血壓值(高壓和低壓) 請依據(jù)下面標(biāo)
準(zhǔn)血壓 判斷出用戶的血壓是否正常 若正常 顯示血壓正常
否則顯示用戶血壓不正常
標(biāo)準(zhǔn):成人:收縮壓:90-140mmHg 舒張壓:
60-90mmHg
10.某商店T恤的價格為35元/件(2件9折,3件以上8折),
褲子的價格為120元/條(2條以上9折).小明在該店買了3
件T恤和2條褲子,請計算并顯示小明應(yīng)該付多少錢?
55/75
循環(huán)語句
一般情況下,需要多次重復(fù)執(zhí)行的代碼,都可以用循環(huán)的
方式來完成循環(huán)不是必須要使用的,但是為了提高代碼的
重復(fù)使用率,所以有經(jīng)驗的開發(fā)者都會采用循環(huán)。
================================================================================
While 循環(huán)語句
語法:
while 布爾表達(dá)式:
循環(huán)語句
56/75
示例:
已知銀行一年期整存整取的儲蓄年利率為4.14%,在利率
保持不變的情況下,經(jīng)過多少年后,1000元存款能增值到
2000元以上?
================================================================================
While循環(huán)語句嵌套
語法:
while 布爾表達(dá)式1:
循環(huán)語句
while 布爾表達(dá)式2:
循環(huán)語句
....
================================================================================
1、案例1:
打印圖形
*
* *
57/75
* * *
* * * *
* * * * *
2、案例2
打印九九乘法表
58/75
流程跳轉(zhuǎn)語句
1. break可以用來結(jié)束整個循環(huán)。
2. continue可以結(jié)束本次循環(huán),進(jìn)入下一次循環(huán)。
注意:
1. break/continue只能用在循環(huán)中,除此以外不能單獨(dú)使
用。
2. break/continue在嵌套循環(huán)中,只對最近的一層循環(huán)起作
用。
示例:
計算并輸出100以內(nèi)的所有素數(shù)(質(zhì)數(shù))。
素數(shù):按照素數(shù)的定義,除了1和它自身以外,不能被其
它數(shù)整除的數(shù)即為素數(shù)。
59/75
總結(jié)
選擇語句是為了有條件的執(zhí)行代碼,
循環(huán)語句是為了重復(fù)執(zhí)行相同的代碼。
多層循環(huán)的使用技巧。
break和continue的作用。
60/75
本章作業(yè)
任務(wù)1:
讓用戶輸入小茗的語文和數(shù)學(xué)成績,輸出以下判斷是否正
確,正確輸出true,錯誤輸出false
a、小茗的語文和數(shù)學(xué)成績都大于90分;
b、語文和數(shù)學(xué)有一門是大于90分的。
任務(wù)2:
要求用戶輸入兩個數(shù)a、b,如果 a 被 b 整除或者a加b大于
100,則輸出a的值,否則輸出 b 的值。
任務(wù)3:
讓用戶輸入學(xué)員的成績,然后輸出學(xué)員的結(jié)業(yè)考試成績評
測結(jié)果。
成績 >=90 : A
90> 成績 >=80 : B
80> 成績 >=70 : C
70> 成績 >=60 : D
成績 <60 : E
任務(wù)4:
提示用戶輸入用戶名,然后再提示輸入密碼,如果用戶名
是“admin”并且密碼是“88888”,則提示正確,否則,如果
用戶名不是admin還提示用戶用戶名不存在,如果用戶名是
admin則提示密碼錯誤。
任務(wù)5:
提示用戶輸入用戶名,然后再提示輸入密碼,如果用戶名
是“admin”并且密碼是“88888”,則提示正確,否則,提示
用戶“用戶名或者密碼錯誤”,但如果錯誤達(dá)到3次,則提示
用戶"您的賬戶已被凍結(jié)",退出程序。
61/75
任務(wù)6:
求1-100間的所有奇數(shù)和。
任務(wù)7:
求1-100間的所有能被3整除的數(shù)的和。
任務(wù)8:
編程實現(xiàn)如下圖列出的圖形。
*
***
*****
*******
可選任務(wù):
任務(wù)9:
讓用戶輸入一個數(shù)顯示下面內(nèi)容。
*******
******
*****
****
***
**
*
任務(wù)10:
編程實現(xiàn)如下圖列出的圖形。
*
***
*****
*******
任務(wù)11:
編程實現(xiàn)如下圖列出的圖形。
*
***
62/75
*****
*******
*****
***
*
任務(wù)12:
雞兔同籠,從上面看有35個頭,從下面看有94只腳,請問
雞有幾只,兔有幾只?
任務(wù)13:
玩家進(jìn)來以后要買籌碼;
在每次擲骰子前,
要下注(50~手里剩余的籌碼);
接著要選擇買大??;
程序要模仿擲骰子,產(chǎn)生一個1~6的隨機(jī)數(shù)
根據(jù)擲骰子的結(jié)果,判斷玩家的輸贏,改變玩家的手里
的籌碼
如果買大,4~6是贏,1~3是輸
如果小,1~3是贏,4~6是輸
如果贏了,玩家的籌碼+=下注金額
如果輸了,玩家的籌碼-=下注金額
提示玩家是否要退出游戲
玩家手里的籌碼小于最小下注金額,要強(qiáng)制玩家退出
注意 :先理清楚思路,從宏觀上考慮流程,不要考慮每個
步驟的細(xì)節(jié)。流程搞清楚以后,再琢磨每個步驟的細(xì)節(jié)。
然后寫代碼。
選做:
1.一個自然數(shù)與3的和是5的倍數(shù),與3的差是6的倍數(shù),這個
自然數(shù)最小是幾?
2.在400--500之間求一個數(shù),它被2除余1,被5除余3,被9除余
1,這個數(shù)是多少?
63/75
3.有一些四位數(shù),百位數(shù)字都是3,十位數(shù)字都是6,并且它們
既能被2整除,又能被3整除,求這樣的四位數(shù)中最大的和最
小的兩數(shù)各是幾?
4.編程求一個四位自然數(shù)ABCD,它乘以A后變成DCBA
5.編程求出滿足以下條件的三位數(shù):它除以11所得的商等于
它各位數(shù)字之和.
6.某數(shù)被80除所得的商,不但是7的倍數(shù),而且用2,3,4,5,6去
除余數(shù)都是1,求這 個自然數(shù).
7.有一種最簡真分?jǐn)?shù),它們的分子與分母的乘積都是140,把
所有這樣的真分?jǐn)?shù)從小到大打印出來
8.一個五位數(shù),若在它的后面寫上一個7,得到一個六位數(shù)A,
若在它前面寫上一個7,得到一個六位數(shù)B,B是A的五倍,求此
五位數(shù).
9.把123456789這個數(shù)乘以一個什么數(shù),能使它的結(jié)果不但
不含零,而且仍然是 由1,2,3,4,5,6,7,8,9這九個數(shù)字組成的,
只是順序不同而已.
10.驗證:任意一個大于9的整數(shù)減去它的各位數(shù)字之和所得
的差,一定能被9整除.
11.今有四個人,他們得年齡各不相同,他們年齡總和是129,
而其中有三個人的年齡是平方數(shù),若倒退15年,這四人中仍
有三個人的年齡是平方數(shù),求他們各自的年齡
12.如果兩個素數(shù)之差為2,這樣的兩個素數(shù)就叫作"孿生數(shù)",
找出100以內(nèi)的所有"孿生數(shù)".
64/75
4字符串
字符串介紹
字符串編碼
字符串定義
字符串下標(biāo)
格式化
轉(zhuǎn)義字符
運(yùn)算符
常見操作
65/75
字符串定義
字符串是程序中非常常見的類型
================================================================================
字符串聲明:
雙引號或者單引號中的數(shù)據(jù),就是字符串
例如:
str='abc'
str2="abc"
66/75
字符串下標(biāo)訪問:
字符串可以通過訪問下標(biāo)訪問單個字符
例如:
str="abcdef"
str2=str[3] #索引下標(biāo)從零開始,最大值為長
度-1
67/75
字符串格式化
字符串格式化:
str="天氣不錯"
num=15.685
print("你的字符串為%s,數(shù)字為%0.2f"%(str,num))
68/75
轉(zhuǎn)義字符和運(yùn)算符
在需要在字符中使用特殊字符時,python用反斜杠(\)轉(zhuǎn)義
字符。
字符串運(yùn)算符
69/75
字符串操作
常見操作-查找
string.find(str, beg=0, end=len(string))
檢測 str 是否包含在 string 中,如果 beg 和 end 指
定范圍,則檢查是否包含在指定范圍內(nèi),如果是返回開始
的索引值,否則返回-1
string.rfind(str, beg=0, end=len(string))
類似于 find()函數(shù),不過是從右邊開始查找.
string.index(str, beg=0, end=len(string))
類似于 find()函數(shù),但是找不到報異常.
string.rindex(str, beg=0, end=len(string))
類似于 rfind()函數(shù),但是找不到報異常.
常見操作-統(tǒng)計
string.count(str, beg=0, end=len(string))
檢測 str 是否包含在 string 中出現(xiàn)的次數(shù),如果
beg 和 end 指定范圍,則檢查是否包含在指定范圍內(nèi)
常見操作-分割
string.split(str="", num=string.count(str))
以 str 為分隔符切片 string,如果 num有指定值,
則僅分隔 num 個子字符串
string.splitlines([keepends])
按照行('\r', '\r\n', \n')分隔,返回一個包含各行作
為元素的列表,如果參數(shù) keepends 為 False,不包含換行
符,如果為 True,則保留換行符。
string.partition(str)
有點(diǎn)像 find()和 split()的結(jié)合體,從 str 出現(xiàn)的第一
個位置起,把 字 符 串 string 分 成 一 個 3 元 素 的 元 組
(string_pre_str,str,string_post_str),如果 string 中不包含str
則 string_pre_str == string.
70/75
string.rpartition(str)
類似于 partition()函數(shù),不過是從右邊開始.
常見操作-判斷
string.startswith(obj, beg=0,end=len(string))
檢查字符串是否是以 obj 開頭,是則返回 True,否
則返回 False。如果beg 和 end 指定值,則在指定范圍內(nèi)檢
查.
string.endswith(obj, beg=0,end=len(string))
檢查字符串是否是以 obj 結(jié)尾,是則返回 True,否
則返回 False。如果beg 和 end 指定值,則在指定范圍內(nèi)檢
查.
string.isalnum() 所有字符都是字母或數(shù)字則
返回 True,否則返回 False
string.isalpha() 所有字符都是字母則返回
True,否則返回 False
string.isdigit() 所有字符都是數(shù)字則返回 True,
否則返回 False
string.isupper() 所有字符都是大寫則返回
True,否則返回 False
string.islower() 所有字符都是小寫則返回
True,否則返回 False
string.isspace() 只包含空格則返回 True,否
則返回 False
常見操作-大小寫
string.capitalize()
把字符串的第一個字符大寫
string.upper()
轉(zhuǎn)換 string 中的小寫字母為大寫
string.lower()
71/75
轉(zhuǎn)換 string 中的大寫字母為小寫
常見操作-對齊
string.ljust(width)
返回一個原字符串左對齊,并使用空格填充至長度
width 的新字符串
string.rjust(width)
返回一個原字符串右對齊,并使用空格填充至長度
width 的新字符串
string.center(width)
返回一個原字符串居中,并使用空格填充至長度
width 的新字符串
常見操作-裁剪
string.strip([obj])
刪除 string 字符串前后的的obj,如果不傳參數(shù),
刪除前后空格
string.lstrip([obj])
刪除 string 字符串左面的obj,如果不傳參數(shù),刪
除左面空格
string.rstrip([obj])
刪除 string 字符串右面的obj,如果不傳參數(shù),刪
除右面空格
常見操作-合并
string.join(seq)
以 string 作為分隔符,將 seq 中所有的元素(的字
符串表示)合并為一個新的字符串
72/75
常見操作-編碼解碼
string.encode(encoding='UTF-8', errors='strict')
以 encoding 指定的編碼格式編碼 string,如果出
錯默認(rèn)報一個ValueError 的異常,除非 errors 指定的
是'ignore'或者'replace'
bytes.decode(encoding='UTF-8', errors='strict')
以 encoding 指定的編碼格式解碼 string,如果出
錯默認(rèn)報一個 ValueError 的 異 常 , 除 非 errors 指 定 的
是 'ignore' 或 者'replace'
73/75
總結(jié)
了解字符串類
字符串在項目中出現(xiàn)頻繁
關(guān)于字符串的操作要靈活掌握
74/75
本章作業(yè)
1.去掉字符串中的所有空格
2.根據(jù)完整的路徑從路徑中分離文件路徑、文件名及擴(kuò)展
名
3.獲取字符串中漢字的個數(shù)
4.對字符串進(jìn)行加密與解密
5.將字母全部轉(zhuǎn)換為大寫或小寫
6.根據(jù)標(biāo)點(diǎn)符號對字符串進(jìn)行分行
7.去掉字符串?dāng)?shù)組中每個字符串的空格
8.隨意輸入你心中想到的一個書名,然后輸出它的字符串
長度。 (len()屬性:可以得字符串的長度)
9.兩個學(xué)員輸入各自最喜歡的游戲名稱,判斷是否一致,如
果相等,則輸出你們倆喜歡相同的游戲;如果不相同,則輸
出你們倆喜歡不相同的游戲。
10.上題中兩位同學(xué)輸入 lol和 LOL代表同一游戲,怎么辦?
11.讓用戶輸入一個日期格式如“2008/08/08”,將 輸入的日
期格式轉(zhuǎn)換為“2008年-8月-8日”
。
12.接收用戶輸入的字符串,將其中的字符進(jìn)行排序(升
序),并以逆序的順序輸
出,“cabed”→"abcde"→“edcba”。
13.接收用戶輸入的一句英文,將其中的單詞以反序輸
出,“hello c sharp”→“sharp c hello”。
14.從請求地址中提取出用戶名和域名
http://www.163.com?userName=admin&pwd=123456
15.有個字符串?dāng)?shù)組,存儲了10個書名,書名有長有短,現(xiàn)
在將他們統(tǒng)一處理,若書名長度大于10,則截取長度8的
子串并且最后添加“...”,加一個豎線后輸出作者的名字。
16.讓用戶輸入一句話,找出所有"呵"的位置。
17.讓用戶輸入一句話,找出所有"呵呵"的位置。
18.讓用戶輸入一句話,判斷這句話中有沒有邪惡,如果有邪
惡就替換成這種形式然后輸出,如:“老牛很邪惡”,輸出后變
成”老牛很**”;
75/75
19.如何判斷一個字符串是否為另一個字符串的子串
20.如何驗證一個字符串中的每一個字符均在另一個字符串
中出現(xiàn)過
21.如何隨機(jī)生成無數(shù)字的全字母的字符串
22.如何隨機(jī)生成帶數(shù)字和字母的字符串
23.如何判定一個字符串中既有數(shù)字又有字母
24.字符串內(nèi)的字符排序(只按字母序不論大小寫)
25.字符串的補(bǔ)位操作
1 =》001
2 =》002
10=》010