python變數/分支/迴圈/陣列/列表/元組/序列
最近比較流行python,於是我這種從不趕潮流的人也決定跟一把潮流。工作原因學習時間有限,好容易擠著時間看了一部分網上的視訊,卻被勸說沒什麼用處,我們就是靠java吃飯的。當然多學一種語言也不會有什麼壞處,既然開始了,那就應該堅持,不管對錯,不管是否有用都要把它學完。下面是學習筆記:
-----------------------------------Bif及列印----01-------------------------------
BIF 就是 Built-in Functions,內建函式。
1.python是什麼語言?
python是一種支援面向物件的解釋性高階語言,屬於指令碼語言的一種
2.IDLE是什麼?
是python程式的基本ide(整合開發環境),具備基本的ide的功能
3.print()的作用是什麼?
列印輸出
4.python中表示乘法的符號是什麼?
*數字中代表乘法,字串中代表執行5次,例>>> print('a'*5) aaaaa
5.為什麼print("i love you" + 5)不可以執行會報錯,而print("i love you" * 5)可以正常執行?
python中不同型別的東西不能加在一起
6.如何在字元穿中嵌入雙引號
>>> print('a"b"c') a"b"c
>>> print ('a\"b"c') a"b"c
>>> print("a\"b\"c") a"b"c
---------------------------------縮排---02--------------------------------------
1. Python3 提供了多少個 BIF?
在 Python 或 IDLE 中,輸入 dir(__builtins__) 可以看到 Python 提供的內建方法列表
help(input)
2. 在 Python 看來:'FishC' 和 'fishc' 一樣嗎?
不一樣,在python種區分大小寫。但是開發過成功很難犯此類問題,python是可以先使用後宣告的。
3. Python 中什麼是最重要的?你贊同嗎?
縮排,在要縮排之前打“:“,python會進行自動縮排
4. 這節課的例子中出現了“=”和“==”,他們表示不同的含義,你在程式設計的過程中會不小心把“==”誤寫成“=”嗎?有沒有好的辦法可以解決這個問題呢?
=是賦值,==是比較,python種很難犯此類為難題,如果if(c=1){}會直接報錯,if裡不可以賦值
5. 你聽說過“拼接”這個詞嗎?
拼接字串:"I"+"LOVE"+"YOU"='ILOVEYOU'
動動手:
0. 編寫程式:hello.py,要求使用者輸入姓名並列印“你好,姓名!”
name=input('請輸入你得姓名')
print('你好'+name)
1. 編寫程式:calc.py 要求使用者輸入1到100之間數字並判斷,輸入符合要求列印“你妹好漂亮”,不符合要求則列印“你大爺好醜”
temp = input('請輸入1到100之間的數字:')
num = int(temp)
if 1<=num<=100:
print('你好漂亮')
else:
print('你好醜')
-----------------------------------變數及賦值---03--------------------------------------
0. 以下哪個變數的命名不正確?為什麼?
(A) MM_520 (B) _MM520_ (C) 520_MM (D) _520_MM
C:變數名不能以數字開頭
1. 在不上機的情況下,以下程式碼你能猜到螢幕會列印什麼內容嗎?
>>>myteacher = '小甲魚'
>>>yourteacher = myteacher
>>>yourteacher = '黑夜'
>>>print(myteacher)
'小甲魚'
2. 在不上機的情況下,以下程式碼你能猜到螢幕會列印什麼內容嗎?
>>> myteacher = '小甲魚'
>>> yourteacher = myteacher
>>> myteacher = '黑夜'
>>> print(yourteacher)
'小甲魚'
3. 在不上機的情況下,以下程式碼你能猜到螢幕會列印什麼內容嗎?
>>>first = 520
>>>second = '520'
>>>first = second
>>>print(first)
會列印:520,注:這裡沒有單引號括起來,但是他是一個字串,因為使用 print() 列印,所以不包含單引號
4. 除了使用反斜槓(\)進行字元轉義,還有什麼方法可以列印:Let's go! 這個字串?
>>> "Let's go!" >>>'Let\'s go'
5. 如果非要在原始字串結尾輸入反斜槓,可以如何靈活處理?
>>> str = r'C:\Program Files\FishC\Good''\\'
6. 在這一講中,我們說變數的命名需要注意一些地方,但小甲魚在舉例的時候貌似卻幹了點兒“失誤”的事兒,你能看得出小甲魚例子中哪裡有問題嗎?
在例子中小甲魚起了個 str 名字的變數,但事實上我們發現,str 的顏色跟普通變數貌似不同?沒錯,str() 和 print() 都是內建函式,但 Python 貌似不介意我們對內建函式進行賦值操作,所以這點我們以後就要注意啦,否則可能會出現 BUG
動動手:
0. 還記得我們第一講的動動手的題目嗎?這一次要求使用變數,計算一年有多少秒?
提示:可以以 DaysPerYear(每年天數),HoursPerDay(每天小時數),MinutesPerHour(每小時分鐘數),SecondsPerMinute(每分鐘秒數)為變數名。
>>> DaysPerYear = 365
>>> HoursPerDay = 24
>>> MinutesPerHour = 60
>>> SecondsPerMinute = 60
>>> result=DaysPerYear*HoursPerDay*MinutesPerHour*SecondsPerMinute
>>> print(result)
1. 關於最後提到的長字串(三重引號字串)其實在 Python3 還可以這麼寫,不妨試試,然後比較下哪種更方便?
>>>string = (
"我愛魚C,\n"
"正如我愛小甲魚,\n"
"他那呱唧呱唧的聲音,\n"
"總纏繞於我的腦海,\n"
"久久不肯散去……\n")
>>> string="""我愛魚C,
正如我愛小甲魚,
他那呱唧呱唧的聲音,
總纏繞於我的腦海,
久久不肯散去……"""
2. 請寫下這一節課你學習到的內容:格式不限,回憶並複述是加強記憶的好方式!
變數名,單引號轉義,三重雙引號換行,變數名給值
------------------------------分支迴圈---04--------------------------------------
迴圈:
while a==b:
if c==d:
else:
if e==g:
else:
------------------------------資料型別----05--------------------------------
1、數值型別
①整型int:整型和長整型統一表示(同java的long)
②浮點型float:用小數點區分,表示小數
③e記法:
>>> 150000000000
150000000000
>>> 1.5e11
150000000000.0
>>> 15e10
150000000000.0
④布林型別bool:
>>> True+True
2
>>> True+False
1
>>> True*False
0
2、型別轉換的用法bif
①int()
>>> a='520'
>>> b=int(a) 字串為整型轉int可以正常轉換,其餘情況會直接報錯
>>> b
520
>>> a=5.99
>>> c=int(a) 浮點型轉為int做截斷處理
>>> c
5
②float()將字串轉換為浮點數
>>> a='520'
>>> b=float(b)
>>> b
520.0
>>> a=520
>>> b=float(a)
>>> b
520.0
③str()轉換為字串
>>> a=5.99
>>> b=str(a)
>>> b
'5.99'
>>> c=str(5e19)
>>> c
'5e+19'
注:如果之前str賦值的話,它的身份將不再是bif,而是一個變數名,再次使用str()會報錯。
3、關於獲得型別的資訊
①type()獲取變數的型別
>>> type('520')
<class 'str'>
>>> type(5.2)
<class 'float'>
>>> type(1)
<class 'int'>
>>> type(5e10)
<class 'float'>
②isinstance()比較兩個變數的型別是否一致
>>> isinstance('小甲魚',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 按照原來的型別返回
5
>>> 3.0//2
1.0
>>> 11%2
1
>>> 3**2 冪運算
9
>>> -3**2
-9
>>> 3**-2
0.1111111111111111
③優先順序
先* / 後+- 遇到括號先算括號
④邏輯操作符
and true+true=true
or false+false=false
not 不等於 >>> 3<4<5 True
------------------------分支和迴圈----07/08/09-------------------------
①見plangame.py
②
score = int(input('請輸入一個分數:'))
if 100 >= score >= 60:
print('A')
elif 60 > score >= 0:
print('D')
else:
print('輸入錯誤')
③條件表示式(三元操作符)
>>> x,y=4,5
~~~~~~~~~~~~~~~
>>> if x<y:
small=x
else:
small=y
>>> small
4
~~~~~~~~~~~~~~~
>>> small=x if x<y else y
>>> small
4
④斷言assert,當條件不成立時會丟擲異常
>>> assert 3>4
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
assert 3>4
AssertionError
⑤while迴圈
while 條件:
迴圈體
⑥for迴圈
for 目標 in 表示式:
迴圈體
例:
>>> 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:終止當前迴圈,跳出迴圈體
continue:結束本次迴圈,並開始下一輪迴圈
------------------------陣列----10/11/12-------------------------
①列表裡可以新增各種型別的元素
>>> mix=[1,'s',4.3,[1,2,3]]
>>> mix
[1, 's', 4.3, [1, 2, 3]]
>>> empty=[]
>>> empty
[]
②向列表新增元素
>>> member=['小甲魚','a','b','c']
>>> member
['小甲魚', 'a', 'b', 'c']
>>> member.append('追加1')
>>> member
['小甲魚', 'a', 'b', 'c', '追加1']
>>> member.extend(['追加2','追加3'])
>>> member
['小甲魚', 'a', 'b', 'c', '追加1', '追加2', '追加3']
>>> member.insert(0,'牡丹')
>>> member
['牡丹', '小甲魚', '牡丹', 'a', 'b', 'c', '追加1', '追加2', '追加3']
③獲取列表中的元素
>>> member[0]
'牡丹'
④從列表刪除元素
>>> member
['a', 'a', 'b', 'c', 'f', 'c', 'd', 'e']
>>> member.remove('c') 刪除第一個匹配的元素
>>> 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] 不包含最後一個元素
['b', 'f']
>>> member 分片後原列表的元素不會發生改變
['a', 'b', 'f', 'c']
>>> member[:3] 預設從0開始
['a', 'b', 'f']
>>> member[1:] 預設到最後一個元素
['b', 'f', 'c']
>>> member[:] 列表的拷貝
['a', 'b', 'f', 'c']
⑥列表的常用操作符
>>> list1=list3=[123,456]
>>> list2=[234,123]
>>> list1>list2 比較列表中元素的第一個值
False
>>> (list1<list2) and (list1==list3)
True
>>> list4=list1+list2 列表的拼接
>>> list4
[123, 456, 234, 123]
>>> list3*3 列表的迴圈拼接
[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'
⑦列表的小夥伴們(列表型別的內建函式)
>>> list1
[456, 123, 456, 123, 456, 123]
>>> list1.count(123) 123出現的次數
3
>>> list1.index(123) 123出現的索引位置
1
>>> list1.reverse() 將列表例的資料倒置
>>> 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[:] 拷貝,在記憶體中重新複製一份
>>> list2
[2, 6, 7, 3, 1, 4, 3, 9]
>>> list3=list1 給原來的值重新貼一個標籤,會隨著值得變化而變化
>>> 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-------------------------
①元組和列表非常相近,區別:
列表可以任意修改一個元素,可以任意刪除和插入元素
元組是不可改變的
②建立一個元組(元組主要是用()和逗號用作區分)
③更新和刪除一個元組
>>> temp
('a', 'b', 'c')
>>> temp=temp[:1]+('d',)+temp[1:] 元組中新增一個元素
>>> temp
('a', 'd', 'b', 'c')
>>> del temp 刪除元組
④元組相關操作符
同列表一樣
------------------------字串----14/15-------------------------
見單獨筆記
----------------------------序列---16---------------------------
>>> a=list()
>>> a
[]
>>> len(a) 判斷a列表的長度
0
>>> b='I love fishc'
>>> b=list(b) 把字串轉為list列表
>>> b
['I', ' ', 'l', 'o', 'v', 'e', ' ', 'f', 'i', 's', 'h', 'c']
>>> len(b) 判斷b列表的長度
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) 取列表裡的最大數
76
>>> min(numbers) 取列表裡的最小數
-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)) 列表反轉用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)) 打包兩個list,從0開始,多餘的部分捨棄掉
[(1, 4), (2, 3), (3, 2), (4, 3), (5, 2), (6, 2)]