在d盤下建立一個t1.py文件內容是:python
print('hello world')
打開windows命令行輸入cmd,肯定後 寫入代碼python d:t1.py git
您已經運行了第一個python程序, 即:終端---->cmd-----> python 文件路徑。 回車搞定~程序員
上一步中執行 python d:t1.py 時,明確的指出 t1.py 腳本由 python 解釋器來執行。shell
若是想要相似於執行shell腳本同樣執行python腳本,例: ./t1.py
,那麼就須要在 hello.py 文件的頭部指定解釋器,以下:編程
1
2
3
|
#!/usr/bin/env python
print
"hello,world"
|
如此一來,執行: ./t1.py
便可。小程序
ps:執行前需給予t1.py 執行權限,chmod 755 t1.pywindows
python2解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill),而python3對內容進行編碼的默認爲utf-8。編程語言
ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其餘西歐語言,其最多隻能用 8 位來表示(一個字節),即:2**8 = 256,因此,ASCII碼最多隻能表示 256 個符號。oop
Bin(二進制)
|
Oct(八進制) |
Dec(十進制)
|
Hex(十六進制)
|
縮寫/字符
|
解釋
|
0000 0000
|
0
|
0
|
00
|
NUL(null)
|
空字符
|
0000 0001
|
1
|
1
|
01
|
SOH(start of headline)
|
標題開始
|
0000 0010
|
2
|
2
|
02
|
STX (start of text)
|
正文開始
|
0000 0011
|
3
|
3
|
03
|
ETX (end of text)
|
正文結束
|
0000 0100
|
4
|
4
|
04
|
EOT (end of transmission)
|
傳輸結束
|
0000 0101
|
5
|
5
|
05
|
ENQ (enquiry)
|
請求
|
0000 0110
|
6
|
6
|
06
|
ACK (acknowledge)
|
收到通知
|
0000 0111
|
7
|
7
|
07
|
BEL (bell)
|
響鈴
|
0000 1000
|
10
|
8
|
08
|
BS (backspace)
|
退格
|
0000 1001
|
11
|
9
|
09
|
HT (horizontal tab)
|
水平製表符
|
0000 1010
|
12
|
10
|
0A
|
LF (NL line feed, new line)
|
換行鍵
|
0000 1011
|
13
|
11
|
0B
|
VT (vertical tab)
|
垂直製表符
|
0000 1100
|
14
|
12
|
0C
|
FF (NP form feed, new page)
|
換頁鍵
|
0000 1101
|
15
|
13
|
0D
|
CR (carriage return)
|
回車鍵
|
0000 1110
|
16
|
14
|
0E
|
SO (shift out)
|
不用切換
|
0000 1111
|
17
|
15
|
0F
|
SI (shift in)
|
啓用切換
|
0001 0000
|
20
|
16
|
10
|
DLE (data link escape)
|
數據鏈路轉義
|
0001 0001
|
21
|
17
|
11
|
DC1 (device control 1)
|
設備控制1
|
0001 0010
|
22
|
18
|
12
|
DC2 (device control 2)
|
設備控制2
|
0001 0011
|
23
|
19
|
13
|
DC3 (device control 3)
|
設備控制3
|
0001 0100
|
24
|
20
|
14
|
DC4 (device control 4)
|
設備控制4
|
0001 0101
|
25
|
21
|
15
|
NAK (negative acknowledge)
|
拒絕接收
|
0001 0110
|
26
|
22
|
16
|
SYN (synchronous idle)
|
同步空閒
|
0001 0111
|
27
|
23
|
17
|
ETB (end of trans. block)
|
結束傳輸塊
|
0001 1000
|
30
|
24
|
18
|
CAN (cancel)
|
取消
|
0001 1001
|
31
|
25
|
19
|
EM (end of medium)
|
媒介結束
|
0001 1010
|
32
|
26
|
1A
|
SUB (substitute)
|
代替
|
0001 1011
|
33
|
27
|
1B
|
ESC (escape)
|
換碼(溢出)
|
0001 1100
|
34
|
28
|
1C
|
FS (file separator)
|
文件分隔符
|
0001 1101
|
35
|
29
|
1D
|
GS (group separator)
|
分組符
|
0001 1110
|
36
|
30
|
1E
|
RS (record separator)
|
記錄分隔符
|
0001 1111
|
37
|
31
|
1F
|
US (unit separator)
|
單元分隔符
|
0010 0000
|
40
|
32
|
20
|
(space)
|
空格
|
0010 0001
|
41
|
33
|
21
|
!
|
歎號 |
0010 0010
|
42
|
34
|
22
|
"
|
雙引號 |
0010 0011
|
43
|
35
|
23
|
#
|
井號 |
0010 0100
|
44
|
36
|
24
|
$
|
美圓符 |
0010 0101
|
45
|
37
|
25
|
%
|
百分號 |
0010 0110
|
46
|
38
|
26
|
&
|
和號 |
0010 0111
|
47
|
39
|
27
|
'
|
閉單引號 |
0010 1000
|
50
|
40
|
28
|
(
|
開括號
|
0010 1001
|
51
|
41
|
29
|
)
|
閉括號
|
0010 1010
|
52
|
42
|
2A
|
*
|
星號 |
0010 1011
|
53
|
43
|
2B
|
+
|
加號 |
0010 1100
|
54
|
44
|
2C
|
,
|
逗號 |
0010 1101
|
55
|
45
|
2D
|
-
|
減號/破折號 |
0010 1110
|
56
|
46
|
2E
|
.
|
句號 |
00101111
|
57
|
47
|
2F
|
/
|
斜槓 |
00110000
|
60
|
48
|
30
|
0
|
數字0 |
00110001
|
61
|
49
|
31
|
1
|
數字1 |
00110010
|
62
|
50
|
32
|
2
|
數字2 |
00110011
|
63
|
51
|
33
|
3
|
數字3 |
00110100
|
64
|
52
|
34
|
4
|
數字4 |
00110101
|
65
|
53
|
35
|
5
|
數字5 |
00110110
|
66
|
54
|
36
|
6
|
數字6 |
00110111
|
67
|
55
|
37
|
7
|
數字7 |
00111000
|
70
|
56
|
38
|
8
|
數字8 |
00111001
|
71
|
57
|
39
|
9
|
數字9 |
00111010
|
72
|
58
|
3A
|
:
|
冒號 |
00111011
|
73
|
59
|
3B
|
;
|
分號 |
00111100
|
74
|
60
|
3C
|
<
|
小於 |
00111101
|
75
|
61
|
3D
|
=
|
等號 |
00111110
|
76
|
62
|
3E
|
>
|
大於 |
00111111
|
77
|
63
|
3F
|
?
|
問號 |
01000000
|
100
|
64
|
40
|
@
|
電子郵件符號 |
01000001
|
101
|
65
|
41
|
A
|
大寫字母A |
01000010
|
102
|
66
|
42
|
B
|
大寫字母B |
01000011
|
103
|
67
|
43
|
C
|
大寫字母C |
01000100
|
104
|
68
|
44
|
D
|
大寫字母D |
01000101
|
105
|
69
|
45
|
E
|
大寫字母E |
01000110
|
106
|
70
|
46
|
F
|
大寫字母F |
01000111
|
107
|
71
|
47
|
G
|
大寫字母G |
01001000
|
110
|
72
|
48
|
H
|
大寫字母H |
01001001
|
111
|
73
|
49
|
I
|
大寫字母I |
01001010
|
112
|
74
|
4A
|
J
|
大寫字母J |
01001011
|
113
|
75
|
4B
|
K
|
大寫字母K |
01001100
|
114
|
76
|
4C
|
L
|
大寫字母L |
01001101
|
115
|
77
|
4D
|
M
|
大寫字母M |
01001110
|
116
|
78
|
4E
|
N
|
大寫字母N |
01001111
|
117
|
79
|
4F
|
O
|
大寫字母O |
01010000
|
120
|
80
|
50
|
P
|
大寫字母P |
01010001
|
121
|
81
|
51
|
Q
|
大寫字母Q |
01010010
|
122
|
82
|
52
|
R
|
大寫字母R |
01010011
|
123
|
83
|
53
|
S
|
大寫字母S |
01010100
|
124
|
84
|
54
|
T
|
大寫字母T |
01010101
|
125
|
85
|
55
|
U
|
大寫字母U |
01010110
|
126
|
86
|
56
|
V
|
大寫字母V |
01010111
|
127
|
87
|
57
|
W
|
大寫字母W |
01011000
|
130
|
88
|
58
|
X
|
大寫字母X |
01011001
|
131
|
89
|
59
|
Y
|
大寫字母Y |
01011010
|
132
|
90
|
5A
|
Z
|
大寫字母Z |
01011011
|
133
|
91
|
5B
|
[
|
開方括號 |
01011100
|
134
|
92
|
5C
|
\
|
反斜槓 |
01011101
|
135
|
93
|
5D
|
]
|
閉方括號 |
01011110
|
136
|
94
|
5E
|
^
|
脫字符 |
01011111
|
137
|
95
|
5F
|
_
|
下劃線 |
01100000
|
140
|
96
|
60
|
`
|
開單引號 |
01100001
|
141
|
97
|
61
|
a
|
小寫字母a |
01100010
|
142
|
98
|
62
|
b
|
小寫字母b |
01100011
|
143
|
99
|
63
|
c
|
小寫字母c |
01100100
|
144
|
100
|
64
|
d
|
小寫字母d |
01100101
|
145
|
101
|
65
|
e
|
小寫字母e |
01100110
|
146
|
102
|
66
|
f
|
小寫字母f |
01100111
|
147
|
103
|
67
|
g
|
小寫字母g |
01101000
|
150
|
104
|
68
|
h
|
小寫字母h |
01101001
|
151
|
105
|
69
|
i
|
小寫字母i |
01101010
|
152
|
106
|
6A
|
j
|
小寫字母j |
01101011
|
153
|
107
|
6B
|
k
|
小寫字母k |
01101100
|
154
|
108
|
6C
|
l
|
小寫字母l |
01101101
|
155
|
109
|
6D
|
m
|
小寫字母m |
01101110
|
156
|
110
|
6E
|
n
|
小寫字母n |
01101111
|
157
|
111
|
6F
|
o
|
小寫字母o |
01110000
|
160
|
112
|
70
|
p
|
小寫字母p |
01110001
|
161
|
113
|
71
|
q
|
小寫字母q |
01110010
|
162
|
114
|
72
|
r
|
小寫字母r |
01110011
|
163
|
115
|
73
|
s
|
小寫字母s |
01110100
|
164
|
116
|
74
|
t
|
小寫字母t |
01110101
|
165
|
117
|
75
|
u
|
小寫字母u |
01110110
|
166
|
118
|
76
|
v
|
小寫字母v |
01110111
|
167
|
119
|
77
|
w
|
小寫字母w |
01111000
|
170
|
120
|
78
|
x
|
小寫字母x |
01111001
|
171
|
121
|
79
|
y
|
小寫字母y |
01111010
|
172
|
122
|
7A
|
z
|
小寫字母z |
01111011
|
173
|
123
|
7B
|
{
|
開花括號 |
01111100
|
174
|
124
|
7C
|
|
|
垂線 |
01111101
|
175
|
125
|
7D
|
}
|
閉花括號 |
01111110
|
176
|
126
|
7E
|
~
|
波浪號 |
01111111
|
177
|
127
|
7F
|
DEL (delete)
|
刪除
|
顯然ASCII碼沒法將世界上的各類文字和符號所有表示,因此,就須要新出一種能夠表明全部字符和符號的編碼,即:Unicode學習
Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。Unicode 是爲了解決傳統的字符編碼方案的侷限而產生的,它爲每種語言中的每一個字符設定了統一而且惟一的二進制編碼,規定雖有的字符和符號最少由 16 位來表示(2個字節),即:2 **16 = 65536,
注:此處說的的是最少2個字節,可能更多
UTF-8,是對Unicode編碼的壓縮和優化,他再也不使用最少使用2個字節,而是將全部的字符和符號進行分類:ascii碼中的內容用1個字節保存、歐洲的字符用2個字節保存,東亞的字符用3個字節保存...
因此,python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill),若是是以下代碼的話:
報錯:ascii碼沒法表示中文
1
2
3
|
#!/usr/bin/env python
print
"你好,世界"
|
改正:應該顯示的告訴python解釋器,用什麼編碼來執行源代碼,即:
1
2
3
4
|
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print
"你好,世界"
|
當行註釋:# 被註釋內容
多行註釋:'''被註釋內容''',或者"""被註釋內容"""
變量是什麼? 變量:把程序運行的中間結果臨時的存在內存裏,以便後續的代碼調用。
5.一、聲明變量
1
2
3
4
|
#!/usr/bin/env python
# -*- coding: utf-8 -*-
name
=
"taibai"
|
上述代碼聲明瞭一個變量,變量名爲: name,變量name的值爲:"taibai"
變量的做用:暱稱,其代指內存裏某個地址中保存的內容
5.二、變量定義的規則:
5.三、推薦定義方式
#駝峯體 AgeOfOldboy = 56 NumberOfStudents = 80 #下劃線 age_of_oldboy = 56 number_of_students = 80
你以爲哪一種更清晰,哪一種就是官方推薦的,我想你確定會先第2種,第一種AgeOfOldboy咋一看覺得是AngelaBaby
5.四、變量的賦值
#!/usr/bin/env python # -*- coding: utf-8 -*- name1 = "wupeiqi" name2 = "alex"
#!/usr/bin/env python # -*- coding: utf-8 -*- name1 = "taibai" name2 = name1
5.五、定義變量很差的方式舉例
常量即指不變的量,如pai 3.141592653..., 或在程序運行過程當中不會改變的量
舉例,假如老男孩老師的年齡會變,那這就是個變量,但在一些狀況下,他的年齡不會變了,那就是常量。在Python中沒有一個專門的語法表明常量,程序員約定俗成用變量名所有大寫表明常量
AGE_OF_OLDBOY = 56
在c語言中有專門的常量定義語法,
const int count = 60;
一旦定義爲常量,更改即會報錯
#!/usr/bin/env python # -*- coding: utf-8 -*- # 將用戶輸入的內容賦值給 name 變量 name = input("請輸入用戶名:") # 打印輸入的內容 print(name)
執行腳本就會發現,程序會等待你輸入姓名後再往下繼續走。
可讓用戶輸入多個信息,以下
#!/usr/bin/env python # -*- coding: utf-8 -*-
name = input("What is your name?") age = input("How old are you?") hometown = input("Where is your hometown?") print("Hello ",name , "your are ", age , "years old, you came from",hometown)
什麼是數據類型?
咱們人類能夠很容易的分清數字與字符的區別,可是計算機並不能呀,計算機雖然很強大,但從某種角度上看又很傻,除非你明確的告訴它,1是數字,「漢」是文字,不然它是分不清1和‘漢’的區別的,所以,在每一個編程語言裏都會有一個叫數據類型的東東,其實就是對經常使用的各類數據類型進行了明確的劃分,你想讓計算機進行數值運算,你就傳數字給它,你想讓他處理文字,就傳字符串類型給他。Python中經常使用的數據類型有多種,今天咱們暫只講3種, 數字、字符串、布爾類型
8.一、整數類型(int)。
int(整型)
在32位機器上,整數的位數爲32位,取值範圍爲-2**31~2**31-1,即-2147483648~2147483647
在64位系統上,整數的位數爲64位,取值範圍爲-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(長整型)
跟C語言不一樣,Python的長整數沒有指定位寬,即:Python沒有限制長整數數值的大小,但實際上因爲機器內存有限,咱們使用的長整數數值不可能無限大。
注意,自從Python2.2起,若是整數發生溢出,Python會自動將整數數據轉換爲長整數,因此現在在長整數數據後面不加字母L也不會致使嚴重後果了。
注意:在Python3裏再也不有long類型了,全都是int
>>> a= 2**64 >>> type(a) #type()是查看數據類型的方法 <type 'long'> >>> b = 2**60 >>> type(b) <type 'int'>
除了int和long以外, 其實還有float浮點型, 複數型,但今天先不講啦
8.二、字符串類型(str)。
在Python中,加了引號的字符都被認爲是字符串!
>>> name = "Alex Li" #雙引號 >>> age = "22" #只要加引號就是字符串 >>> age2 = 22 #int >>> >>> msg = '''My name is Alex, I am 22 years old!''' #我擦,3個引號也能夠 >>> >>> hometown = 'ShanDong' #單引號也能夠
那單引號、雙引號、多引號有什麼區別呢? 讓我大聲告訴你,單雙引號木有任何區別,只有下面這種狀況 你須要考慮單雙的配合
msg = "My name is Alex , I'm 22 years old!"
多引號什麼做用呢?做用就是多行字符串必須用多引號
msg = ''' 今天我想寫首小詩, 歌頌個人同桌, 你看他那烏黑的短髮, 好像一隻炸毛雞。 ''' print(msg)
字符串拼接
數字能夠進行加減乘除等運算,字符串呢?讓我大聲告訴你,也能?what ?是的,但只能進行"相加"和"相乘"運算。
>>> name 'Alex Li' >>> age '22' >>> >>> name + age #相加其實就是簡單拼接 'Alex Li22' >>> >>> name * 10 #相乘其實就是複製本身多少次,再拼接在一塊兒 'Alex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex Li'
注意,字符串的拼接只能是雙方都是字符串,不能跟數字或其它類型拼接
>>> type(name),type(age2) (<type 'str'>, <type 'int'>) >>> >>> name 'Alex Li' >>> age2 22 >>> name + age2 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: cannot concatenate 'str' and 'int' objects #錯誤提示數字 和 字符 不能拼接
8.三、布爾值(True,False)。
布爾類型很簡單,就兩個值 ,一個True(真),一個False(假), 主要用記邏輯判斷
但其實大家並不明白對麼? let me explain, 我如今有2個值 , a=3, b=5 , 我說a>b你說成立麼? 咱們固然知道不成立,但問題是計算機怎麼去描述這成不成立呢?或者說a< b是成立,計算機怎麼描述這是成立呢?
沒錯,答案就是,用布爾類型
>>> a=3 >>> b=5 >>> >>> a > b #不成立就是False,即假 False >>> >>> a < b #成立就是True, 即真 True
現有一練習需求,問用戶的姓名、年齡、工做、愛好 ,而後打印成如下格式
------------ info of Alex Li ----------- Name : Alex Li Age : 22 job : Teacher Hobbie: girl ------------- end -----------------
你怎麼實現呢?你會發現,用字符拼接的方式還難實現這種格式的輸出,因此一塊兒來學一下新姿式
只須要把要打印的格式先準備好, 因爲裏面的 一些信息是須要用戶輸入的,你沒辦法預設知道,所以能夠先放置個佔位符,再把字符串裏的佔位符與外部的變量作個映射關係就好啦
name = input("Name:") age = input("Age:") job = input("Job:") hobbie = input("Hobbie:") info = ''' ------------ info of %s ----------- #這裏的每一個%s就是一個佔位符,本行的表明 後面拓號裏的 name Name : %s #表明 name Age : %s #表明 age job : %s #表明 job Hobbie: %s #表明 hobbie ------------- end ----------------- ''' %(name,name,age,job,hobbie) # 這行的 % 號就是 把前面的字符串 與拓號 後面的 變量 關聯起來 print(info)
%s就是表明字符串佔位符,除此以外,還有%d,是數字佔位符, 若是把上面的age後面的換成%d,就表明你必須只能輸入數字啦
age : %d
咱們運行一下,可是發現出錯了。。。
說%d須要一個數字,而不是str, what? 咱們明明輸入的是數字呀,22,22呀。
不用擔憂 ,不要相信你的眼睛咱們調試一下,看看輸入的究竟是不是數字呢?怎麼看呢?查看數據類型的方法是什麼來着?type()
name = input("Name:") age = input("Age:") print(type(age))
執行輸出是
Name:Alex Age:22 <class 'str'> #怎麼會是str Job:IT
讓我大聲告訴你,input接收的全部輸入默認都是字符串格式!
要想程序不出錯,那怎麼辦呢?簡單,你能夠把str轉成int
age = int( input("Age:") ) print(type(age))
確定沒問題了。相反,能不能把字符串轉成數字呢?必然能夠,str( yourStr )
問題:如今有這麼行代碼
msg = "我是%s,年齡%d,目前學習進度爲80%"%('金鑫',18) print(msg)
這樣會報錯的,由於在格式化輸出裏,你出現%默認爲就是佔位符的%,可是我想在上面一條語句中最後的80%就是表示80%而不是佔位符,怎麼辦?
msg = "我是%s,年齡%d,目前學習進度爲80%%"%('金鑫',18) print(msg)
這樣就能夠了,第一個%是對第二個%的轉譯,告訴Python解釋器這只是一個單純的%,而不是佔位符。
運算符
計算機能夠進行的運算有不少種,可不僅加減乘除這麼簡單,運算按種類可分爲算數運算、比較運算、邏輯運算、賦值運算、成員運算、身份運算、位運算,今天咱們暫只學習算數運算、比較運算、邏輯運算、賦值運算
算數運算
如下假設變量:a=10,b=20
比較運算
如下假設變量:a=10,b=20
賦值運算
如下假設變量:a=10,b=20
邏輯運算
針對邏輯運算的進一步研究:
1,在沒有()的狀況下not 優先級高於 and,and優先級高於or,即優先級關係爲( )>not>and>or,同一優先級從左往右計算。
例題:
判斷下列邏輯語句的True,False。
1,3>4 or 4<3 and 1==1 2,1 < 2 and 3 < 4 or 1>2 3,2 > 1 and 3 < 4 or 4 > 5 and 2 < 1 4,1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 5,1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
6,not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
2 , x or y , x爲真,值就是x,x爲假,值是y;
x and y, x爲真,值是y,x爲假,值是x。
例題:求出下列邏輯語句的值。
8 or 4 0 and 3 0 or 4 and 3 or 7 or 9 and 6
in,not in :
判斷子元素是否在原字符串(字典,列表,集合)中:
例如:
#print('喜歡' in 'dkfljadklf喜歡hfjdkas') #print('a' in 'bcvd') #print('y' not in 'ofkjdslaf')
假如把寫程序比作走路,那咱們到如今爲止,一直走的都是直路,還沒遇到過度叉口,想象現實中,你遇到了分叉口,而後你決定往哪拐必然是有所動機的。你要判斷那條岔路是你真正要走的路,若是咱們想讓程序也能處理這樣的判斷怎麼辦? 很簡單,只須要在程序裏預設一些條件判斷語句,知足哪一個條件,就走哪條岔路。這個過程就叫流程控制。
if...else 語句
單分支
if 條件: 知足條件後要執行的代碼
雙分支
""" if 條件: 知足條件執行代碼 else: if條件不知足就走這段 """ AgeOfOldboy = 48 if AgeOfOldboy > 50 : print("Too old, time to retire..") else: print("還能折騰幾年!")
縮進
這裏必需要插入這個縮進的知識點
你會發現,上面的if代碼裏,每一個條件的下一行都縮進了4個空格,這是爲何呢?這就是Python的一大特點,強制縮進,目的是爲了讓程序知道,每段代碼依賴哪一個條件,若是不經過縮進來區分,程序怎麼會知道,當你的條件成立後,去執行哪些代碼呢?
在其它的語言裏,大多經過{}
來肯定代碼塊,好比C,C++,Java,Javascript都是這樣,看一個JavaScript代碼的例子
var age = 56 if ( age < 50){ console.log("還能折騰") console.log('能夠執行多行代碼') }else{ console.log('太老了') }
在有{}
來區分代碼塊的狀況下,縮進的做用就只剩下讓代碼變的整潔了。
Python是門超級簡潔的語言,發明者定是以爲用{}
太醜了,因此索性直接不用它,那怎麼能區分代碼塊呢?答案就是強制縮進。
Python的縮進有如下幾個原則:
多分支
回到流程控制上來,if...else ...能夠有多個分支條件
if 條件: 知足條件執行代碼 elif 條件: 上面的條件不知足就走這個 elif 條件: 上面的條件不知足就走這個 elif 條件: 上面的條件不知足就走這個 else: 上面全部的條件不知足就走這段
寫個猜年齡的遊戲吧
age_of_oldboy = 48 guess = int(input(">>:")) if guess > age_of_oldboy : print("猜的太大了,往小裏試試...") elif guess < age_of_oldboy : print("猜的過小了,往大里試試...") else: print("恭喜你,猜對了...")
上面的例子,根據你輸入的值不一樣,會最多獲得3種不一樣的結果
再來個匹配成績的小程序吧,成績有ABCDE5個等級,與分數的對應關係以下
A 90-100 B 80-89 C 60-79 D 40-59 E 0-39
要求用戶輸入0-100的數字後,你能正確打印他的對應成績
score = int(input("輸入分數:")) if score > 100: print("我擦,最高分才100...") elif score >= 90: print("A") elif score >= 80: print("B") elif score >= 60: print("C") elif score >= 40: print("D") else: print("太笨了...E")
這裏有個問題,就是當我輸入95的時候 ,它打印的結果是A,可是95 明明也大於第二個條件elif score >=80:
呀, 爲何不打印B呢?這是由於代碼是從上到下依次判斷,只要知足一個,就不會再往下走啦,這一點必定要清楚呀!
12.1,基本循環
while
條件:
# 循環體
# 若是條件爲真,那麼循環體則執行
# 若是條件爲假,那麼循環體不執行
|
12.2,循環停止語句
若是在循環的過程當中,由於某些緣由,你不想繼續循環了,怎麼把它停止掉呢?這就用到break 或 continue 語句
例子:break
count = 0 while count <= 100 : #只要count<=100就不斷執行下面的代碼 print("loop ", count) if count == 5: break count +=1 #每執行一次,就把count+1,要否則就變成死循環啦,由於count一直是0 print("-----out of while loop ------")
輸出
loop 0 loop 1 loop 2 loop 3 loop 4 loop 5 -----out of while loop ------
例子:continue
count = 0 while count <= 100 : count += 1 if count > 5 and count < 95: #只要count在6-94之間,就不走下面的print語句,直接進入下一次loop continue print("loop ", count) print("-----out of while loop ------")
輸出
loop 1 loop 2 loop 3 loop 4 loop 5 loop 95 loop 96 loop 97 loop 98 loop 99 loop 100 loop 101 -----out of while loop ------
12.3,while ... else ..
與其它語言else 通常只與if 搭配不一樣,在Python 中還有個while ...else 語句
while 後面的else 做用是指,當while 循環正常執行完,中間沒有被break 停止的話,就會執行else後面的語句
count = 0 while count <= 5 : count += 1 print("Loop",count) else: print("循環正常執行完啦") print("-----out of while loop ------")
輸出
Loop 1 Loop 2 Loop 3 Loop 4 Loop 5 Loop 6 循環正常執行完啦 -----out of while loop ------
若是執行過程當中被break啦,就不會執行else的語句啦
count = 0 while count <= 5 : count += 1 if count == 3:break print("Loop",count) else: print("循環正常執行完啦") print("-----out of while loop ------")
輸出
Loop 1 Loop 2 -----out of while loop ------