python变量/分支/循环/数组/列表/元组/序列
?????? 最近比較流行python,于是我這種從不趕潮流的人也決定跟一把潮流。工作原因?qū)W習(xí)時(shí)間有限,好容易擠著時(shí)間看了一部分網(wǎng)上的視頻,卻被勸說(shuō)沒(méi)什么用處,我們就是靠java吃飯的。當(dāng)然多學(xué)一種語(yǔ)言也不會(huì)有什么壞處,既然開(kāi)始了,那就應(yīng)該堅(jiān)持,不管對(duì)錯(cuò),不管是否有用都要把它學(xué)完。下面是學(xué)習(xí)筆記:
-----------------------------------Bif及打印----01-------------------------------
?BIF 就是 Built-in Functions,內(nèi)置函數(shù)。
1.python是什么語(yǔ)言?
python是一種支持面向?qū)ο蟮慕忉屝愿呒?jí)語(yǔ)言,屬于腳本語(yǔ)言的一種
2.IDLE是什么?
是python程序的基本ide(集成開(kāi)發(fā)環(huán)境),具備基本的ide的功能
3.print()的作用是什么??
打印輸出
4.python中表示乘法的符號(hào)是什么? ?
*數(shù)字中代表乘法,字符串中代表執(zhí)行5次,例>>> print('a'*5) ? ?aaaaa
5.為什么print("i love you" + 5)不可以執(zhí)行會(huì)報(bào)錯(cuò),而print("i love you" * 5)可以正常執(zhí)行?
python中不同類型的東西不能加在一起
6.如何在字符穿中嵌入雙引號(hào) ?
>>> print('a"b"c') ? ? ? ?a"b"c
>>> print ('a\"b"c') ? ? ?a"b"c
>>> print("a\"b\"c") ? ?a"b"c
---------------------------------縮進(jìn)---02--------------------------------------
1. Python3 提供了多少個(gè) BIF?
?在 Python 或 IDLE 中,輸入 dir(__builtins__) 可以看到 Python 提供的內(nèi)置方法列表
?help(input)?
2. 在 Python 看來(lái):'FishC' 和 'fishc' 一樣嗎?
不一樣,在python種區(qū)分大小寫(xiě)。但是開(kāi)發(fā)過(guò)成功很難犯此類問(wèn)題,python是可以先使用后聲明的。
3. Python 中什么是最重要的?你贊同嗎?
縮進(jìn),在要縮進(jìn)之前打“:“,python會(huì)進(jìn)行自動(dòng)縮進(jìn)
4. 這節(jié)課的例子中出現(xiàn)了“=”和“==”,他們表示不同的含義,你在編程的過(guò)程中會(huì)不小心把“==”誤寫(xiě)成“=”嗎?有沒(méi)有好的辦法可以解決這個(gè)問(wèn)題呢?
=是賦值,==是比較,python種很難犯此類為難題,如果if(c=1){}會(huì)直接報(bào)錯(cuò),if里不可以賦值
5. 你聽(tīng)說(shuō)過(guò)“拼接”這個(gè)詞嗎??
拼接字符串:"I"+"LOVE"+"YOU"='ILOVEYOU'
動(dòng)動(dòng)手:
0. 編寫(xiě)程序:hello.py,要求用戶輸入姓名并打印“你好,姓名!”
name=input('請(qǐng)輸入你得姓名')
print('你好'+name)
1. 編寫(xiě)程序:calc.py 要求用戶輸入1到100之間數(shù)字并判斷,輸入符合要求打印“你妹好漂亮”,不符合要求則打印“你大爺好丑”
temp = input('請(qǐng)輸入1到100之間的數(shù)字:')
num = int(temp)
if 1<=num<=100:
??? print('你好漂亮')
else:
??? print('你好丑')
-----------------------------------變量及賦值---03--------------------------------------
0. 以下哪個(gè)變量的命名不正確?為什么?
(A) MM_520??(B) _MM520_??(C) 520_MM??(D) _520_MM
C:變量名不能以數(shù)字開(kāi)頭
1. 在不上機(jī)的情況下,以下代碼你能猜到屏幕會(huì)打印什么內(nèi)容嗎?
>>>myteacher = '小甲魚(yú)'
>>>yourteacher = myteacher
>>>yourteacher = '黑夜'
>>>print(myteacher)
?'小甲魚(yú)'?
2. 在不上機(jī)的情況下,以下代碼你能猜到屏幕會(huì)打印什么內(nèi)容嗎?
>>> myteacher = '小甲魚(yú)'
>>> yourteacher = myteacher
>>> myteacher = '黑夜'
>>> print(yourteacher)
?'小甲魚(yú)'
3. 在不上機(jī)的情況下,以下代碼你能猜到屏幕會(huì)打印什么內(nèi)容嗎?
>>>first = 520
>>>second = '520'
>>>first = second
>>>print(first)
會(huì)打印:520,注:這里沒(méi)有單引號(hào)括起來(lái),但是他是一個(gè)字符串,因?yàn)槭褂?print() 打印,所以不包含單引號(hào)
4. 除了使用反斜杠(\)進(jìn)行字符轉(zhuǎn)義,還有什么方法可以打印:Let's go! 這個(gè)字符串?
>>>??"Let's go!" ??>>>'Let\'s go'
5. 如果非要在原始字符串結(jié)尾輸入反斜杠,可以如何靈活處理?
>>> str = r'C:\Program Files\FishC\Good''\\'
6. 在這一講中,我們說(shuō)變量的命名需要注意一些地方,但小甲魚(yú)在舉例的時(shí)候貌似卻干了點(diǎn)兒“失誤”的事兒,你能看得出小甲魚(yú)例子中哪里有問(wèn)題嗎?
在例子中小甲魚(yú)起了個(gè) str 名字的變量,但事實(shí)上我們發(fā)現(xiàn),str 的顏色跟普通變量貌似不同?沒(méi)錯(cuò),str() 和 print() 都是內(nèi)置函數(shù),但 Python 貌似不介意我們對(duì)內(nèi)置函數(shù)進(jìn)行賦值操作,所以這點(diǎn)我們以后就要注意啦,否則可能會(huì)出現(xiàn) BUG?
動(dòng)動(dòng)手:
0. 還記得我們第一講的動(dòng)動(dòng)手的題目嗎?這一次要求使用變量,計(jì)算一年有多少秒?
提示:可以以 DaysPerYear(每年天數(shù)),HoursPerDay(每天小時(shí)數(shù)),MinutesPerHour(每小時(shí)分鐘數(shù)),SecondsPerMinute(每分鐘秒數(shù))為變量名。
>>> DaysPerYear = 365
>>> HoursPerDay = 24
>>> MinutesPerHour = 60
>>> SecondsPerMinute = 60
>>> result=DaysPerYear*HoursPerDay*MinutesPerHour*SecondsPerMinute
>>> print(result)
1. 關(guān)于最后提到的長(zhǎng)字符串(三重引號(hào)字符串)其實(shí)在 Python3 還可以這么寫(xiě),不妨試試,然后比較下哪種更方便?
>>>string = (?
"我愛(ài)魚(yú)C,\n"
"正如我愛(ài)小甲魚(yú),\n"
"他那呱唧呱唧的聲音,\n"
"總纏繞于我的腦海,\n"
"久久不肯散去……\n")
>>> string="""我愛(ài)魚(yú)C,
正如我愛(ài)小甲魚(yú),
他那呱唧呱唧的聲音,
總纏繞于我的腦海,
久久不肯散去……"""
2. 請(qǐng)寫(xiě)下這一節(jié)課你學(xué)習(xí)到的內(nèi)容:格式不限,回憶并復(fù)述是加強(qiáng)記憶的好方式!
變量名,單引號(hào)轉(zhuǎn)義,三重雙引號(hào)換行,變量名給值
------------------------------分支循環(huán)---04--------------------------------------
循環(huán):
while a==b:
? ? ?if c==d:
? ? ?else:
? ? ? ? ? if e==g:
? ? ? ? ? else:
------------------------------數(shù)據(jù)類型----05--------------------------------
1、數(shù)值類型
①整型int:整型和長(zhǎng)整型統(tǒng)一表示(同java的long)
②浮點(diǎn)型float:用小數(shù)點(diǎn)區(qū)分,表示小數(shù)
③e記法:
>>> 150000000000
150000000000
>>> 1.5e11
150000000000.0
>>> 15e10
150000000000.0
④布爾類型bool:
>>> True+True
2
>>> True+False
1
>>> True*False
0
2、類型轉(zhuǎn)換的用法bif
①int()
>>> a='520'
>>> b=int(a) ? 字符串為整型轉(zhuǎn)int可以正常轉(zhuǎn)換,其余情況會(huì)直接報(bào)錯(cuò)
>>> b
520
>>> a=5.99
>>> c=int(a) ? ?浮點(diǎn)型轉(zhuǎn)為int做截?cái)嗵幚?/span>
>>> c
5
②float()將字符串轉(zhuǎn)換為浮點(diǎn)數(shù)
>>> a='520'
>>> b=float(b)
>>> b
520.0
>>> a=520
>>> b=float(a)
>>> b
520.0
③str()轉(zhuǎn)換為字符串
>>> a=5.99
>>> b=str(a)
>>> b
'5.99'
>>> c=str(5e19)
>>> c
'5e+19'
注:如果之前str賦值的話,它的身份將不再是bif,而是一個(gè)變量名,再次使用str()會(huì)報(bào)錯(cuò)。
3、關(guān)于獲得類型的信息
①type()獲取變量的類型
>>> type('520')
<class 'str'>
>>> type(5.2)
<class 'float'>
>>> type(1)
<class 'int'>
>>> type(5e10)
<class 'float'>
②isinstance()比較兩個(gè)變量的類型是否一致
>>> isinstance('小甲魚(yú)',str)
True
>>> isinstance(1,int)
True
>>> isinstance(5.2,int)
False
------------------------------常用操作符----06--------------------------------
①
>>> a=b=c=d=10
>>> a+=1
>>> a
11
>>> b-=3
>>> b
7
>>> c*=2
>>> c
20
>>> d/=2
>>> d
5.0
②
>>> 10//2 ? ?按照原來(lái)的類型返回
5
>>> 3.0//2
1.0
>>> 11%2
1
>>> 3**2 ? ? ?冪運(yùn)算
9
>>> -3**2
-9
>>> 3**-2
0.1111111111111111
③優(yōu)先級(jí)
先* / 后+- 遇到括號(hào)先算括號(hào)
④邏輯操作符
and ?true+true=true
or ? ?false+false=false
not ?不等于 ??>>> 3<4<5 ? ??True
------------------------分支和循環(huán)----07/08/09-------------------------
①見(jiàn)plangame.py
②
score = int(input('請(qǐng)輸入一個(gè)分?jǐn)?shù):'))
if 100 >= score >= 60:
??? print('A')
elif 60 > score >= 0:
??? print('D')
else:
??? print('輸入錯(cuò)誤')
③條件表達(dá)式(三元操作符)
>>> x,y=4,5
~~~~~~~~~~~~~~~?
>>> if x<y:
? ? ? ? ? ? small=x
? ? ? ? ?else:
? small=y
>>> small
4
~~~~~~~~~~~~~~~
>>> small=x if x<y else y
>>> small
4
④斷言assert,當(dāng)條件不成立時(shí)會(huì)拋出異常
>>> assert 3>4
Traceback (most recent call last):
? File "<pyshell#9>", line 1, in <module>
??? assert 3>4
AssertionError
⑤while循環(huán)
while 條件:
? ? ?循環(huán)體
⑥for循環(huán)
for 目標(biāo) ?in 表達(dá)式:
? ? ?循環(huán)體
例:
>>> favourite = 'fishC'
>>> for i in favourite:
???? print(i,end=' ')? ? ?
f i s h C?
⑦range
>>> for i in range(1,10,2):
? ? ? ? ? ? ? ?print(i)
1
3
5
7
9
⑧break和continue
break:終止當(dāng)前循環(huán),跳出循環(huán)體
continue:結(jié)束本次循環(huán),并開(kāi)始下一輪循環(huán)
------------------------數(shù)組----10/11/12-------------------------
①列表里可以添加各種類型的元素
>>> mix=[1,'s',4.3,[1,2,3]]
>>> mix
[1, 's', 4.3, [1, 2, 3]]
>>> empty=[]
>>> empty
[]
②向列表添加元素
>>> member=['小甲魚(yú)','a','b','c']
>>> member
['小甲魚(yú)', 'a', 'b', 'c']
>>> member.append('追加1')
>>> member
['小甲魚(yú)', 'a', 'b', 'c', '追加1']
>>> member.extend(['追加2','追加3'])
>>> member
['小甲魚(yú)', 'a', 'b', 'c', '追加1', '追加2', '追加3']
>>> member.insert(0,'牡丹')
>>> member
['牡丹', '小甲魚(yú)', '牡丹', 'a', 'b', 'c', '追加1', '追加2', '追加3']
③獲取列表中的元素
>>> member[0]
'牡丹'
④從列表刪除元素
>>> member
['a', 'a', 'b', 'c', 'f', 'c', 'd', 'e']
>>> member.remove('c') ?刪除第一個(gè)匹配的元素
>>> member
['a', 'a', 'b', 'f', 'c', 'd', 'e']
>>> del member[0]
>>> member
['a', 'b', 'f', 'c', 'd', 'e']
>>> member.pop()
'e'
>>> name=member.pop()
>>> name
'd'
>>> member
['a', 'b', 'f', 'c']
⑤列表分片slice
>>> member[1:3] ? 不包含最后一個(gè)元素
['b', 'f']
>>> member ? ?分片后原列表的元素不會(huì)發(fā)生改變
['a', 'b', 'f', 'c']
>>> member[:3] ? 默認(rèn)從0開(kāi)始
['a', 'b', 'f']
>>> member[1:] ? 默認(rèn)到最后一個(gè)元素
['b', 'f', 'c']
>>> member[:] ? ? 列表的拷貝
['a', 'b', 'f', 'c']
⑥列表的常用操作符
>>> list1=list3=[123,456]
>>> list2=[234,123]
>>> list1>list2 ? ? 比較列表中元素的第一個(gè)值
False
>>> (list1<list2) and (list1==list3) ??
True
>>> list4=list1+list2 ? ?列表的拼接
>>> list4
[123, 456, 234, 123]
>>> list3*3 ? ? 列表的循環(huán)拼接
[123, 456, 123, 456, 123, 456]
>>> list3*=3 ??列表拼接賦值
>>> list3
[123, 456, 123, 456, 123, 456]
>>> list5=[123,['a','b'],456] ?綜合列表
>>> 'a' in list5
False
>>> 'a' in list5[1]
True
>>> list5[1][0]
'a'
⑦列表的小伙伴們(列表類型的內(nèi)置函數(shù))
>>> list1
[456, 123, 456, 123, 456, 123]
>>> list1.count(123) ? 123出現(xiàn)的次數(shù)
3
>>> list1.index(123) ? ?123出現(xiàn)的索引位置
1
>>> list1.reverse() ? ? ? ?將列表例的數(shù)據(jù)倒置
>>> list1
[123, 456, 123, 456, 123, 456]
>>> list1.sort() ? ? ? ? ? ? 將列表按照從小到大的順序排序
>>> list1
[123, 123, 123, 456, 456, 456]
>>> list1.sort(reverse=True) ? ?將列表按照倒序排序?
>>> list1
[456, 456, 456, 123, 123, 123]
⑧注意列表的拷貝及賦值
>>> list1
[2, 6, 7, 3, 1, 4, 3, 9]
>>> list2=list1[:] ? ? 拷貝,在內(nèi)存中重新復(fù)制一份
>>> list2
[2, 6, 7, 3, 1, 4, 3, 9]
>>> list3=list1 ? ? ? ?給原來(lái)的值重新貼一個(gè)標(biāo)簽,會(huì)隨著值得變化而變化
>>> list3
[2, 6, 7, 3, 1, 4, 3, 9]
>>> list1.sort()
>>> list1
[1, 2, 3, 3, 4, 6, 7, 9]
>>> list2
[2, 6, 7, 3, 1, 4, 3, 9]
>>> list3
[1, 2, 3, 3, 4, 6, 7, 9]
------------------------元組---13-------------------------
①元組和列表非常相近,區(qū)別:
列表可以任意修改一個(gè)元素,可以任意刪除和插入元素
元組是不可改變的
②創(chuàng)建一個(gè)元組(元組主要是用()和逗號(hào)用作區(qū)分)
③更新和刪除一個(gè)元組
>>> temp
('a', 'b', 'c')
>>> temp=temp[:1]+('d',)+temp[1:] ? ? 元組中添加一個(gè)元素
>>> temp
('a', 'd', 'b', 'c')
>>> del temp ? ?刪除元組
④元組相關(guān)操作符
同列表一樣
------------------------字符串----14/15-------------------------
見(jiàn)單獨(dú)筆記
----------------------------序列---16---------------------------
>>> a=list()
>>> a
[]
>>> len(a) ? ?判斷a列表的長(zhǎng)度
0
>>> b='I love fishc'
>>> b=list(b) ? ?把字符串轉(zhuǎn)為list列表
>>> b
['I', ' ', 'l', 'o', 'v', 'e', ' ', 'f', 'i', 's', 'h', 'c']
>>> len(b) ? ?判斷b列表的長(zhǎng)度?
12
>>> c=(1,1,2,3,5,8,13)
>>> c=list(c)
>>> c
[1, 1, 2, 3, 5, 8, 13]
>>> numbers=[1,18,14,0,-3,-98,76]
>>> max(numbers) ? ?取列表里的最大數(shù)
76
>>> min(numbers) ? ??取列表里的最小數(shù)?
-98
>>> tuple2=(3.1,3.4,2.5)
>>> sum(tuple2) ? ? ?列表求和
9.0
>>> sorted(numbers) ? ?把number排序
[-98, -3, 0, 1, 14, 18, 76]
>>> list(reversed(numbers)) ? 列表反轉(zhuǎn)用list包一層
[76, -98, -3, 0, 14, 18, 1]
>>> list(enumerate(numbers)) ? ?列舉枚舉
[(0, 1), (1, 18), (2, 14), (3, 0), (4, -3), (5, -98), (6, 76)]
>>> a=[1,2,3,4,5,6]
>>> b=[4,3,2,3,2,2,3,4,4]
>>> list(zip(a,b)) ? ? ?打包兩個(gè)list,從0開(kāi)始,多余的部分舍棄掉
[(1, 4), (2, 3), (3, 2), (4, 3), (5, 2), (6, 2)]
?
總結(jié)
以上是生活随笔為你收集整理的python变量/分支/循环/数组/列表/元组/序列的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 各种加密算法用法及作用
- 下一篇: python3参考秘籍-附PDF下载