python基本語法

變量、運算符與數(shù)據(jù)類型

  • 在 Python 中毡熏,# 表示注釋米死,作用于整行
  • ''' ''' 或者 """ """ 表示區(qū)間注釋,在三引號之間的所有內(nèi)容被注釋
print("Hello china") 
# Hello china

"""
這是多行注釋侈离,用三個雙引號
這是多行注釋,用三個雙引號 
這是多行注釋做修,用三個雙引號
"""

#注意下列這種情況霍狰,會輸出\n加內(nèi)容的形式抡草,即下面的寫法并不會被認為是注釋
#而會被認為是一種自動分割的一串語句饰及,并以\n來間隔
"""區(qū)間注釋
yes
多行注釋"""

#關(guān)于print函數(shù)
a=r"\a"
b=r"\m"
print(a,end='')
print(b)

print函數(shù)后默認添加換行符,如果我們不需要康震,必須為關(guān)鍵字參數(shù)end指定一個默認值'\ n'以外的值

后來了解到\n在python中的意思就是換行的意思

其實想要輸出\n還有另外的幾種方法

  • 只需在前添加轉(zhuǎn)義符,

  • 也可以在字符串前添加r燎含,r代表raw,元字符的意思腿短,免疫轉(zhuǎn)義符號

那么如果我們出現(xiàn)了想在語句中加“或者’的情況怎么辦呢

##當遇到想要把”或者'表示出來的情況應該如何去做呢
#print("hello"WORLD")屏箍,該處會出現(xiàn)報錯
#以單雙引號交替的方法把"或者'表示出來
a="hello 'WORLD"
print(a)
print("hello'WORLD")#一開始單獨運行這行代碼時出現(xiàn)了報錯,后面在運行了前兩句后報錯消失橘忱,懷疑是一開始的語法打錯了
print('hello"WORLD')

#運用轉(zhuǎn)義符來把"表示出來
print("hello\"WORLD")

#如何把\表示出來呢赴魁,
print("hello\\WORLD")

簡單運算應該怎么處理呢

特別要注意的是冪的運算的語法

+ 1 + 1
- 2 - 1
* 3 * 4
/ 3 / 4
// 整除 3 // 4
% 取余 3 % 4
** 2 ** 3
print(1 + 1)  
print(2 - 1)  
print(3 * 4)  
print(3 / 4)  
print(3 // 4)  
print(3 % 4)  
print(2 ** 10)  

邏輯值運算

操作符 名稱 示例
> 大于 2 > 1
>= 大于等于 2 >= 4
< 小于 1 < 2
<= 小于等于 5 <= 2
== 等于 3 == 4
!= 不等于 3 != 5
and (3 > 2) and (3 < 5)
or (1 > 3) or (9 < 2)
not not (2 > 1)
print(2 > 1) 
print(2 >= 4)
print(1 < 2)  
print(5 <= 2)  
print(9 == 24)  
print(3 != 24)

#邏輯值的運算應該于判斷之類的語句相聯(lián)系

位運算

1. 原碼、反碼和補碼

二進制有三種不同的表示形式:原碼钝诚、反碼和補碼颖御,計算機內(nèi)部使用補碼來表示。

原碼:就是其二進制表示(注意凝颇,有一位符號位)潘拱。

00 00 00 11 -> 3
10 00 00 11 -> -3

反碼:正數(shù)的反碼就是原碼,負數(shù)的反碼是符號位不變拧略,其余位取反(對應正數(shù)按位取反)芦岂。

00 00 00 11 -> 3
11 11 11 00 -> -3

補碼:正數(shù)的補碼就是原碼,負數(shù)的補碼是反碼+1垫蛆。

00 00 00 11 -> 3
11 11 11 01 -> -3

2. 按位運算

  • 按位非操作 ~
~ 1 = 0
~ 0 = 1

~num的補碼中的 0 和 1 全部取反(0 變?yōu)?1禽最,1 變?yōu)?0)有符號整數(shù)的符號位在 ~ 運算中同樣會取反。

00 00 01 01 -> 5
~
---
11 11 10 10 -> -6

11 11 10 11 -> -5
~
---
00 00 01 00 -> 4
  • 按位與操作 &
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0

只有兩個對應位都為 1 時才為 1

00 00 01 01 -> 5
&
00 00 01 10 -> 6
---
00 00 01 00 -> 4
  • 按位或操作 |
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0

只要兩個對應位中有一個 1 時就為 1

00 00 01 01 -> 5
|
00 00 01 10 -> 6
---
00 00 01 11 -> 7
  • 按位異或操作 ^
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0

只有兩個對應位不同時才為 1

00 00 01 01 -> 5
^
00 00 01 10 -> 6
---
00 00 00 11 -> 3

異或操作的性質(zhì):滿足交換律和結(jié)合律

A: 00 00 11 00
B: 00 00 01 11

A^B: 00 00 10 11
B^A: 00 00 10 11

A^A: 00 00 00 00
A^0: 00 00 11 00

A^B^A: = A^A^B = B = 00 00 01 11
  • 按位左移操作 <<

num << inum的二進制表示向左移動i位所得的值袱饭。

00 00 10 11 -> 11
11 << 3
---
01 01 10 00 -> 88 
  • 按位右移操作 >>

num >> inum的二進制表示向右移動i位所得的值弛随。

00 00 10 11 -> 11
11 >> 2
---
00 00 00 10 -> 2 

3. 利用位運算實現(xiàn)快速計算

通過 <<>> 快速計算2的倍數(shù)問題宁赤。

n << 1 -> 計算 n*2
n >> 1 -> 計算 n/2舀透,負奇數(shù)的運算不可用
n << m -> 計算 n*(2^m),即乘以 2 的 m 次方
n >> m -> 計算 n/(2^m)决左,即除以 2 的 m 次方
1 << n -> 2^n

通過 ^ 快速交換兩個整數(shù)愕够。 通過 ^ 快速交換兩個整數(shù)走贪。

a ^= b
b ^= a
a ^= b

通過 a & (-a) 快速獲取a的最后為 1 位置的整數(shù)。

00 00 01 01 -> 5
&
11 11 10 11 -> -5
---
00 00 00 01 -> 1

00 00 11 10 -> 14
&
11 11 00 10 -> -14
---
00 00 00 10 -> 2

4. 利用位運算實現(xiàn)整數(shù)集合

一個數(shù)的二進制表示可以看作是一個集合(0 表示不在集合中惑芭,1 表示在集合中)坠狡。

比如集合 {1, 3, 4, 8},可以表示成 01 00 01 10 10 而對應的位運算也就可以看作是對集合進行的操作遂跟。

元素與集合的操作:

a | (1<<i)  -> 把 i 插入到集合中
a & ~(1<<i) -> 把 i 從集合中刪除
a & (1<<i)  -> 判斷 i 是否屬于該集合(零不屬于逃沿,非零屬于)

集合之間的操作:

a 補   -> ~a
a 交 b -> a & b
a 并 b -> a | b
a 差 b -> a & (~b)

注意:整數(shù)在內(nèi)存中是以補碼的形式存在的,輸出自然也是按照補碼輸出幻锁。

【例子】C#語言輸出負數(shù)凯亮。

class Program
{
    static void Main(string[] args)
    {
        string s1 = Convert.ToString(-3, 2);
        Console.WriteLine(s1); 
        // 11111111111111111111111111111101
        
        string s2 = Convert.ToString(-3, 16);
        Console.WriteLine(s2); 
        // fffffffd
    }
}

【例子】 Python 的bin() 輸出。

print(bin(3))  # 0b11
print(bin(-3))  # -0b11

print(bin(-3 & 0xffffffff))  
# 0b11111111111111111111111111111101

print(bin(0xfffffffd))       
# 0b11111111111111111111111111111101

print(0xfffffffd)  # 4294967293
0b11
-0b11
0b11111111111111111111111111111101
0b11111111111111111111111111111101
4294967293

是不是很顛覆認知哄尔,我們從結(jié)果可以看出:

  • Python中bin一個負數(shù)(十進制表示)假消,輸出的是它的原碼的二進制表示加上個負號,巨坑岭接。
  • Python中的整型是補碼形式存儲的富拗。
  • Python中整型是不限制長度的不會超范圍溢出。

所以為了獲得負數(shù)(十進制表示)的補碼鸣戴,需要手動將其和十六進制數(shù)0xffffffff進行按位與操作啃沪,再交給bin()進行輸出,得到的才是負數(shù)的補碼表示窄锅。

符號位:最高位為符號位创千,0表示正數(shù),1表示負數(shù)酬滤。在位運算中符號位也參與運算签餐。

操作符 名稱 示例
~ 按位取反 ~4
& 按位與 4 & 5
` ` 按位或
^ 按位異或 4 ^ 5
<< 左移 4 << 2
>> 右移 4 >> 2

參考內(nèi)容
阿里云訓練營

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市盯串,隨后出現(xiàn)的幾起案子氯檐,更是在濱河造成了極大的恐慌,老刑警劉巖体捏,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冠摄,死亡現(xiàn)場離奇詭異,居然都是意外死亡几缭,警方通過查閱死者的電腦和手機河泳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來年栓,“玉大人拆挥,你說我怎么就攤上這事∧匙ィ” “怎么了纸兔?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵惰瓜,是天一觀的道長。 經(jīng)常有香客問我汉矿,道長崎坊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任洲拇,我火速辦了婚禮奈揍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赋续。我一直安慰自己男翰,他們只是感情好,可當我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布蚕捉。 她就那樣靜靜地躺著奏篙,像睡著了一般柴淘。 火紅的嫁衣襯著肌膚如雪迫淹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天为严,我揣著相機與錄音敛熬,去河邊找鬼。 笑死第股,一個胖子當著我的面吹牛应民,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播夕吻,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼诲锹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了涉馅?” 一聲冷哼從身側(cè)響起归园,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎稚矿,沒想到半個月后庸诱,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡晤揣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年桥爽,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片昧识。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡钠四,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出跪楞,到底是詐尸還是另有隱情缀去,我是刑警寧澤环疼,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站朵耕,受9級特大地震影響炫隶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜阎曹,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一伪阶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧处嫌,春花似錦栅贴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至注暗,卻和暖如春坛缕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背捆昏。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工赚楚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人骗卜。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓宠页,卻偏偏與公主長得像,于是被迫代替她去往敵國和親寇仓。 傳聞我的和親對象是個殘疾皇子举户,可洞房花燭夜當晚...
    茶點故事閱讀 44,573評論 2 353