第0關(guān)我們學(xué)習(xí)了print函數(shù)
print()函數(shù)由兩部分構(gòu)成:1. 指令:print;2. 指令的執(zhí)行對象:在print后面的括號里的內(nèi)容。
我們對電腦下指令——把括號里的內(nèi)容打印給我瞧瞧
另外我們還學(xué)習(xí)了換行
*單引號,雙引號、三引號
1)單引號‘ ‘和雙引號“ “:直接輸出
2)三引號‘‘’ ‘’‘:換行
*轉(zhuǎn)義字符
“換行”的轉(zhuǎn)義字符是\n
*變量命名規(guī)范:
2、變量的命名規(guī)范
1.只能用一個詞
2.只能包含字母、下劃線和數(shù)字
3.不能以數(shù)字開頭
4.盡量描包含的內(nèi)容
轉(zhuǎn)義符號:
1、\n(換行)
例子:print('把我的幻影和夢\n放在狹長的貝殼里\n柳枝編成的船篷\n還旋繞著夏蟬的長鳴\n拉緊桅繩\n風(fēng)吹起晨霧的帆\n我開航了')
以下是拓展:(只做了解,不用掌握使用方法)
#第1關(guān):主要內(nèi)容是數(shù)據(jù)類型和數(shù)據(jù)拼接
數(shù)據(jù)類型分為;int,str,float
數(shù)據(jù)拼接需要數(shù)據(jù)類型一致(str)
需要注意的是:input默認(rèn)輸出為字符串,在后面與int做條件判斷的時候,需要先轉(zhuǎn)換數(shù)據(jù)類型為int(input());同時數(shù)字做數(shù)據(jù)拼接時,需要使用str(number)
第2關(guān):主要內(nèi)容是單向判斷,雙向判斷,多項判斷
條件語句可以參考:https://www.runoob.com/python/python-if-statement.html
單向判斷為:if
雙方判斷為:if……else
多項判斷為:if……elif ……elif……else
需要注意的是:
if……if……if與if……elif……elif的區(qū)別:
if……if是不管前一個測試是否通過,都會重新進(jìn)行一個判斷,第二個if判斷范圍可能包括第一個if
if……elif……elif......else是后面的判斷范圍不包括前面的判斷范圍
比如:
像這樣的,if 會單獨進(jìn)行判斷,不會說上一個判斷了,下一個就不判斷
條件的判斷:
and 和 or的使用,
and,表示且,滿足a且滿足b條件,則為True,進(jìn)入下一步;
or,表示或,表示滿足a或者滿足b,則為True,進(jìn)入下一步:
這里有些同學(xué)有不恰當(dāng)使用and的栗子喲~
比如:
#第三關(guān)的重點是input函數(shù),也就是輸入。
1)a=input(),把輸入的值給變量;
2)input是輸入,print是打印,兩個是不一樣的喲。
舉個栗子??
#列表:[], 元素:包容多種數(shù)據(jù)類型,列表是有序的。
#列表切片,使用:符號
注意:列表切片得到的還是一個列表哦
#增加或刪除元素
#增加元素,使用append函數(shù),格式是列表名.append( ):該方法沒有返回值,但會在已存在的列表中添加新的內(nèi)容。
兩個列表合并:extend函數(shù)
extend() 函數(shù)用于在列表末尾一次性追加另一個序列中的多個值(用新列表擴(kuò)展原來的列表)。
extend()方法語法:
list1.extend(list2)
該方法沒有返回值,但會在已存在的列表中添加新的列表內(nèi)容。
Python-append和extend函數(shù):https://blog.csdn.net/gaoyueace/article/details/78731636
兩個列表合并也可以用:list1+list2這樣的方法合并
#刪除元素
方法一:使用del函數(shù),格式是del 列表名[元素的索引(偏移量)]),可刪除任何位置的列表元素
方法二:使用pop函數(shù),將元素從列表刪除,并接著使用他的值
sort和sorted函數(shù)排序:區(qū)別在于sort為永久性,sorted為臨時性
詳情請查看鏈接:https://blog.csdn.net/guoyang768/article/details/84428171
#字典:數(shù)據(jù)存在一一對應(yīng)情況;{};鍵具備唯一性,而值可重復(fù),字典是無序的
#新增鍵值對要用到賦值語句:字典名[鍵] = 值
#字典增加或刪除元素
#方法items()方法:字典里面提取key和value(鍵和值)的方法
items()函數(shù)的用法:https://blog.csdn.net/u011475210/article/details/77770145
#字典使用keys(方法):字典提取鍵
#字典使用values方法:字典提取值
#循環(huán):把一件事執(zhí)行很多遍
#一般由兩種語句,1)for...in...循環(huán)語句;2)另一種是while循環(huán)語句
for循環(huán)
常見用法如下:
while循環(huán)
一般格式為
n=某個值
while 條件:
執(zhí)行語句
python的 for、while循環(huán)、嵌套循環(huán)
https://blog.csdn.net/lqian1993/article/details/80114486
這個很多同學(xué)都會混淆數(shù)據(jù)類型,一定要記住,input函數(shù)返回的是字符串類型哦!
當(dāng)我們【工作量確定】的時候,我們就可以讓for循環(huán)來完成重復(fù)性工作。
反之,要【工作量不確定時】可以讓while循環(huán)來工作。
#課后習(xí)題
#第6關(guān)的主要內(nèi)容為:布爾值和四種語句
#布爾值:True和False(一般條件為True則繼續(xù)循環(huán),條件為False則結(jié)束循環(huán))
布爾值的其他情況
#四種語句
break語句,用法如下
舉個栗子
continue語句:當(dāng)某個條件被滿足的時候,觸發(fā)continue語句,將跳過之后的代碼,直接回到循環(huán)的開始。用法如下:
pass語句:跳過,后面什么都不執(zhí)行
else不但可以和if配合使用,它還能跟for循環(huán)和while循環(huán)配合使用
囚徒困境的練習(xí),同學(xué)們可以分層來實現(xiàn)功能,首先是輸入回答,所以用input,然后根據(jù)回答來判刑,所以要用判斷,需要尋循環(huán)問一直到得到最佳答復(fù),所以用循環(huán)
本節(jié)課利用到的模塊
import random:隨機(jī)
本節(jié)課利用到它的一個小功能,隨機(jī)整數(shù),比如random.randint(取數(shù)區(qū)間),會隨機(jī)取整
import time:
time sleep(間隔時間/秒),print消息之間的間隔時間
游戲的基本邏輯
①兩個人打架,每個人有兩個屬性,攻擊跟血量
第一步生成這四個屬性,編程里就是定義四個變量:
隨便叫什么都可以,a 或者 b ,c,d;為了方便區(qū)分我們可以寫a1,a2,b1,b2
數(shù)值怎么取呢,利用剛才的隨機(jī)模塊的功能,不要問為什么,直接記住寫這個函數(shù)就可以,
這就像我們生活中的工具,你要擰螺絲,就會想到用螺絲刀一樣~慢慢熟悉!
②開始決斗
怎么決斗,血量減去敵人的攻擊力,每一輪都是一人打一下
一方血量小于0他就死啦~!我們只要記住公式:
最新生命 = 生命 - 敵人攻擊
(不斷給生命這個變量賦值)
怎 么 辦?
重復(fù)出現(xiàn)相同的代碼:用 循環(huán)?。?!
不知道什么循環(huán)次數(shù): 用 while
循環(huán)結(jié)束的條件:有一個人的生命小于0,游戲結(jié)束!
為了讓游戲顯示結(jié)果,需要用if else條件判斷,根據(jù)不 同情況,顯示不同內(nèi)容。
這是一場游戲的代碼
如果我們要進(jìn)行三場游戲,把上面的結(jié)構(gòu)循環(huán)三次就好啦!
利用for in range(3)循環(huán)三次。
添加三局兩勝的計數(shù)功能:
在每次游戲內(nèi)容判斷結(jié)果的時候設(shè)置一個變量,贏了加1
最后比較大小就可以啦
游戲過程:
#隨機(jī)展示敵我雙方角色,生命值和攻擊值(需要注意導(dǎo)入模塊和定義變量)
#展示攻擊過程
#開始判斷敵我雙方的勝利
#將一局判斷循環(huán)3遍,達(dá)到三局兩勝的情況,同時引入變量,開始積分(類似籃球賽)
引入player_victory記錄分?jǐn)?shù),如果我方勝利,則+1分;如果敵方勝利,則我們-1分;否則平局不扣分,通過最后的分值是否為正,統(tǒng)計PK結(jié)果
#是否繼續(xù)游戲
*break這樣縮進(jìn)沒有問題,你可以試試哦
Python format 格式化函數(shù):https://www.runoob.com/python/att-string-format.html
第8關(guān)我們主要是了解一個學(xué)習(xí)方法
這里同學(xué)們要自己好好應(yīng)用這些方法,去做好筆記。好記性不如爛筆頭,自己梳理筆記,學(xué)習(xí)效果更好哦!
這里面有幾個比較零散的知識點,助教說一下
####
首先是print函數(shù)的換行原理:
其實print函數(shù)后面都會默認(rèn)有一個end=‘\n’
也就是轉(zhuǎn)義字符換行的意思,如果我們不希望print函數(shù)換行那么手動注明,end=‘’
####
這樣print函數(shù)就不會換行~其次是課后題里涉及到合并列表,跟列表排序
####
這里面有兩個列表的函數(shù),一個是extend,一個是sort
####
extend函數(shù)是給列表合并,這里需要注意的是這個函數(shù)也沒有返回值不能夠賦值
sort和sorted函數(shù)排序:區(qū)別在于sort為永久性,sorted為臨時性
詳情請查看鏈接:https://blog.csdn.net/guoyang768/article/details/84428171
第9關(guān)我們學(xué)習(xí)了函數(shù)
函數(shù):Python3 函數(shù):https://www.runoob.com/python3/python3-function.html
什么是函數(shù)呢?
下面來講講怎樣定義和調(diào)用函數(shù)
首先我們要定義函數(shù),怎么定義函數(shù)呢?
比如:
第1行:def的意思是定義(define),greet是【函數(shù)名】(自己取的),再搭配一個括號和冒號,括號里面的name是參數(shù)(參數(shù)名也是自己?。?/p>
第2行:def下一行開始縮進(jìn)的代碼是函數(shù)要實現(xiàn)的功能,也叫【函數(shù)體】。這里的函數(shù)體展現(xiàn)出的功能就是:打印出“name+ 早上好”這句話。
第3行:一個簡單的return。函數(shù)內(nèi)部一旦遇到return語句,就會停止執(zhí)行并返回結(jié)果。
!??!定義函數(shù)只是將函數(shù)的內(nèi)部功能封裝起來(組織好),運(yùn)行不會輸出任何內(nèi)容?。?!
定義完函數(shù)之后,還需要調(diào)用才會執(zhí)行函數(shù)內(nèi)的語句~下面來講講怎么調(diào)用函數(shù)!
怎么調(diào)用函數(shù)呢?在Python里,就是輸入函數(shù)名和參數(shù)對應(yīng)的值:
調(diào)用函數(shù)最關(guān)鍵的是:得弄清楚這個函數(shù)有多少個參數(shù),如何給參數(shù)賦值,這個過程在函數(shù)里叫做參數(shù)的傳遞(傳參)。
有多少個參數(shù)(沒有默認(rèn)值)就要傳多少個參數(shù)的值進(jìn)去。
接下來講一下函數(shù)的一些概念:參數(shù)、變量、return
主要的參數(shù)類型有:位置參數(shù)、默認(rèn)參數(shù)、不定長參數(shù)。
【位置參數(shù)、默認(rèn)參數(shù)】
參數(shù)可以替換!
【不定長參數(shù)】
不限定死數(shù)量,這時候【不定長參數(shù)】就能派上用場,即不確定傳遞參數(shù)的數(shù)量。
它的格式比較特殊,是一個星號*加上參數(shù)名
?。?!默認(rèn)參數(shù)也需要放在不定長參數(shù)的后面,即dessert=’綠豆沙'要放在*barbeque后面,否則傳遞的值會對應(yīng)不上!??!
1、加了一個星號 * 的參數(shù)會以元組(tuple)的形式導(dǎo)入,存放所有未命名的變量參數(shù)。
如果在函數(shù)調(diào)用時沒有指定參數(shù),它就是一個空元組。我們也可以不向函數(shù)傳遞未命名的變量。
('烤雞翅', '烤茄子', '烤玉米'),這種數(shù)據(jù)類型叫做元組(tuple)
元組的寫法是把數(shù)據(jù)放在小括號()中,它的用法和列表用法類似,主要區(qū)別在于列表中的元素可以隨時修改,但元組中的元素不可更改。
2、加了兩個星號 ** 的參數(shù)會以字典的形式導(dǎo)入。
詳情可以點擊鏈接了解:https://blog.csdn.net/weixin_38280090/article/details/85623286
return [表達(dá)式] 語句用于退出函數(shù),選擇性地向調(diào)用方返回一個表達(dá)式。不帶參數(shù)值的return語句返回None。
如:
#最終輸出是“嗯,人生才剛剛開始”
main()函數(shù)內(nèi)部分別調(diào)用了face()和body()函數(shù),參數(shù)dream_face和dream_body傳遞給了face()和body()函數(shù)的參數(shù)name,得到返回值,并打印。
Python語言中的函數(shù)返回值可以是多個,而其他語言都不行,這是Python相比其他語言的簡便和靈活之處。一次接受多個返回值的數(shù)據(jù)類型就是元組。
而元組與列表其實都是數(shù)據(jù)的“序列”,元組取某個位置的值的操作,與列表偏移量是一模一樣的,即tuple[]
再來講一下變量
第一點:在一個函數(shù)內(nèi)定義的變量僅能在函數(shù)內(nèi)部使用(局部作用域),它們被稱作【局部變量】。
第二點:在所有函數(shù)之外賦值的變量,可以在程序的任何位置使用(全局作用域),它們叫【全局變量】。
?。?!全局作用域中的代碼中也不能使用任何局部變量?。?!
建議局部變量和全局變量【不要】取相同的名字,以免混淆。
當(dāng)變量在函數(shù)內(nèi)時,就是局部變量,只能在這個函數(shù)內(nèi)被訪問;
當(dāng)變量在函數(shù)外時,就是全局變量,可以在程序中的任何位置被訪問
也可以用global語句將變量聲明為全局變量!??!【用global聲明了全局變量,就可以在局部里面修改這個變量的值】
定義兩個函數(shù):第一個函數(shù)功能為根據(jù)工作月數(shù)返回獎金額,第二個函數(shù)功能為打印出'該員工來了XX個月,獲得獎金XXX元'。
發(fā)放獎金的要求如下:
工作時長不滿六個月,發(fā)放固定獎金500元。
工作時長在六個月和一年之間(含一年),發(fā)放獎金120元*月數(shù)(如8個月為960元)
工作時長在一年以上,發(fā)放獎金180元*月數(shù) (如20個月為3600元)