編程基礎
計算機基礎
- 程序(program識別并執行的指令
- 計算機是執行程序的機器
- 現代計算機
- 艾倫·麥席森·圖靈奠定了現在計算機的邏輯工作方式的基礎
- 馮·諾依曼提出計算機應該有五大部件組成:輸入/輸出設備、運算器、控制器、輸出設備。這是現代計算機基本框架。
語言基礎
程序
- 程序
- 算法+數據結構=程序
- 數據是程序的核心
- 數據結構是計算機中數據的類型和組織方式
- 算法是數據的處理方式
- 難點
- 找不到數據的規律
- 找不到合適的處理方法
- 無法將規律轉換為數據結構,將方法轉換為算法
- 無法將思路轉換成程序結構
- 沒有排錯(debug)能力
Python解釋器
- 官方的Cpython C語言寫的解釋器
- Ipyhton 升級的、有交互的Cpython
- Pypy pyhton編寫的解釋器,擁有JIT(just in time)技術,動態編寫python代碼
- jython 將python代碼轉換成Java字節碼,運行在java虛擬機上
- Ironpython 運行在.net平臺的解釋器,將pyhton代碼轉換為.net字節碼
Python基礎語法
- 注釋 — #標注的文本
- 數字
- 整數:不區分long和int,只有long;
- 進制數 0xz(十六進制) 0b10(二進制) 0o10(八進制)
- 布爾值(Bool),共兩個值true和false
- 浮點數:由一個整數或定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次冪得到,例如:1.34 0.12 -3.1 1.46e9=1.36*10^9
- 復數:在python’中表示為a+bj,就是特定的表示,a和b是數字。
- 字符串
- 引用的字符序列
- 單雙三引號應用的字符序列可以跨行可以在其中使用任意引號
- 在字符串前面家上r或R則表示字符串不做特殊處理
- 轉義序列
- \n 換行
- \t tab鍵
- \ 轉義斜杠
- ‘(“) 轉義引號
- \r 轉義R,原先使用R則表示使用真實字符
- 縮進 Python采用縮進來表示層次關系,默認為縮進四個空格
- 續行 在行末是用符號\ 如果使用括號則認為括號內的才是一個整體
- 標識符
1. 只能表示一個值
2. 只能使用字母、下劃線和數字
3. 只能用字母和下劃線開頭
4. 不能是python關鍵字
5. 區分大小寫
6. 不能隨便使用下劃線開頭的表示符,不能使用有歧義的單詞,不允許使用中文
- 常量 賦值后不能改變值的標識符,python無法定義常量
- 字面常量 一個單獨的量,如:12 “abc”
- 變量 賦值后只可以改變的表示符
運算符
+ 加
- 減
* 乘
/ 自然除,結果是浮點數
// 整除結果是整數
** 2**3 表示2的三次方
% 取模,返回除法的余數
運算符 |
描述 |
實例 |
& |
按位與運算符:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0 |
(a & b) 輸出結果 12 ,二進制解釋: 0000 1100 |
| |
按位或運算符:只要對應的二個二進位有一個為1時,結果位就為1。 |
(a| b) 輸出結果 61 ,二進制解釋: 0011 1101 |
^ |
按位異或運算符:當兩對應的二進位相異時,結果為1 |
(a ^ b) 輸出結果 49 ,二進制解釋: 0011 0001 |
~ |
按位取反運算符:對數據的每個二進制位取反,即把1變為0,把0變為1 。~x 類似于 -x-1 |
(~a ) 輸出結果 -61 ,二進制解釋: 1100 0011,在一個有符號二進制數的補碼形式。 |
<< |
左移動運算符:運算數的各二進位全部左移若干位,由”<<“右邊的數指定移動的位數,高位丟棄,低位補0。 |
a << 2 輸出結果 240 ,二進制解釋: 1111 0000 |
>> |
右移動運算符:把”>>”左邊的運算數的各二進位全部右移若干位,”>>”右邊的數指定移動的位數 |
a >> 2 輸出結果 15 ,二進制解釋: 0000 1111 |
運算符 |
描述 |
實例 |
== |
等于 – 比較對象是否相等 |
(a == b) 返回 False。 |
!= |
不等于 – 比較兩個對象是否不相等 |
(a != b) 返回 true. |
<> |
不等于 – 比較兩個對象是否不相等 |
(a <> b) 返回 true。這個運算符類似 != 。 |
> |
大于 – 返回x是否大于y |
(a > b) 返回 False。 |
< |
小于 – 返回x是否小于y。所有比較運算符返回1表示真,返回0表示假。這分別與特殊的變量True和False等價。注意,這些變量名的大寫。 |
(a < b) 返回 true。 |
>= |
大于等于 – 返回x是否大于等于y。 |
(a >= b) 返回 False。 |
<= |
小于等于 – 返回x是否小于等于y。 |
(a <= b) 返回 true。 |
運算符 |
描述 |
實例 |
= |
簡單的賦值運算符 |
= a + b 將 a + b 的運算結果賦值為 c |
+= |
加法賦值運算符 |
c += a 等效于 c = c + a |
-= |
減法賦值運算符 |
c -= a 等效于 c = c – a |
*= |
乘法賦值運算符 |
c *= a 等效于 c = c * a |
/= |
除法賦值運算符 |
c /= a 等效于 c = c / a |
%= |
取模賦值運算符 |
c %= a 等效于 c = c % a |
**= |
冪賦值運算符 |
c **= a 等效于 c = c ** a |
//= |
取整除賦值運算符 |
//= a 等效于 c = c // a |
運算符 |
邏輯表達式 |
描述 |
實例 |
and |
x and y |
布爾”與” – 如果 x 為 False,x and y 返回 False,否則它返回 y 的計算值。 (a and b) 返回 20。 |
|
or |
x or y |
布爾”或” – 如果 x 是非 0,它返回 x 的值,否則它返回 y 的計算值。 (a or b) 返回 10。 |
|
not |
not x |
布爾”非” – 如果 x 為 True,返回 False 。如果 x 為 False,它返回 True。 not(a and b) 返回 False |
|
```
簡單來說
And:與運算。只有同為真時才為真,近似于乘法。
Or:或運算。只有同為假時才為假,近似于加法。
Xor:異或運算。相同為假,不同為真。
```
運算符 |
描述 |
實例 |
in |
如果在指定的序列中找到值返回 True,否則返回 False。 |
x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in |
如果在指定的序列中沒有找到值返回 True,否則返回 False。 |
x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
運算符 |
描述 |
實例 |
is |
is 是判斷兩個標識符是不是引用自一個對象 |
x is y, 類似 id(x) == id(y) , 如果引用的是同一個對象則返回 True,否則返回 False |
is not |
is not 是判斷兩個標識符是不是引用自不同對象 |
x is not y , 類似 id(a) != id(b)。如果引用的不是同一個對象則返回結果 True,否則返回 False。 |
運算符 |
描述 |
** |
指數 (最高優先級) |
~ + – |
按位翻轉, 一元加號和減號 (最后兩個的方法名為 +@ 和 -@) |
* / % // |
乘,除,取模和取整除 |
+ – |
加法減法 |
>> << |
右移,左移運算符 |
& |
位 ‘AND’ |
^ | |
位運算符 |
<= < > >= |
比較運算符 |
<> == != |
等于運算符 |
= %= /= //= -= += *= **= |
賦值運算符 |
is is not |
身份運算符 |
in not in |
成員運算符 |
not or and |
邏輯運算符 |
注意:算數運算符–>位運算符–>身份運算符–>成員運算符–>邏輯運算符
- 表達式 是數字、符號、括號、變量等的組合
- 程序控制
- 順序 按照順序一步一步執行
- 分支 按條件判斷,當滿足什么條件式做相對應的操作
- 循環 條件滿足就反復執行,不滿足就結束執行
- 單分支結構
- if if condition(條件): 代碼塊(當滿足上述條件執行什么操作) 例如:
if n>1:
print(n)
對象/常量 |
值(value) |
1 |
2 |
3 |
3 |
“” |
false |
“string” |
true |
0 |
false |
>=1 |
ture |
<=-1 |
true |
()空元組 |
false |
[]空列表 |
false |
{}空字典 |
false |
none |
false |
- if語句
if...else...
```
if condition1:
代碼塊(滿足上面的條件要執行的操作)代碼塊)
else:
代碼塊(不滿足else之前的條件要執行的操作)
```
score = 80
if score<0:
print('wrong')
else:
if score==0:
print('egg')
elif score <= 100:
print('right')
else:
print('too big')
- 循環語句while和for
while condition
block
當條件滿足即condition為True,進入循環體執行block
例子:
flag=10
while flag:
print(flag)
flag-=1
for element in iteratable:
block
當可迭代(或者稱為循環)對象中有元素可以迭代進入循環體,執行block
for i in range(10):
print(i)
- 循環continue語句:中斷當前循環的當次執行,繼續下一次循環
for i in range(10)
if i
continue
print(i)
for i in range(10)
print(i)
if i
break
- 循環else子句:當for或者while循環正常循環結束就執行else子句,如果是break打斷循環則不執行
while condition:
block
else:
block
或者
for element in iteratable:
block
else:
block
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/87257