@[Toc]
一些注意事項
- python要區(qū)分大小寫
- 縮進非常重要
變量嘱朽、運算符與數(shù)據(jù)類型
1.注釋
為什么使用注釋?
闡述代碼要做什么以及是如何做的
基本內(nèi)容
-
#
用于 單行注釋 -
''' '''
,""" """
用于多行注釋(例子不舉了)
2.運算符
算術(shù)運算符
操作符 | 名稱 |
---|---|
+ |
加 |
- |
減 |
* |
乘 |
/ |
除 |
// |
整除 |
% |
取余 |
** |
冪 |
算術(shù)運算符的操作與數(shù)學(xué)上的沒什么區(qū)別,但值得注意的是//
==不遵循四舍五入原則怔接,運算取整時保留整數(shù)的下界搪泳,即偏向于較小的整數(shù).==
【例子】
print(11//3) # 3.65656565->3
print(11//5) # 2.2->2
比較運算符
查看 Datawhale 01. 變量、運算符與數(shù)據(jù)類型即可知道
邏輯運算符
and
與
or
或
not
非
例子看Datawhale 01. 變量扼脐、運算符與數(shù)據(jù)類型
成員運算符
in
not in
例子看Datawhale 01. 變量岸军、運算符與數(shù)據(jù)類型
身份運算符
is
is not
例子看[Datawhale 01. 變量奋刽、運算符與數(shù)據(jù)類型]
位運算符
Datawhale 01. 變量、運算符與數(shù)據(jù)類型
三元運算符
【例子】
x, y = 4, 5
if x < y:
small = x
else:
small = y
print(small) # 4
【例子】
x, y = 4, 5
small = x if x < y else y # 三元運算符
print(small) # 4
運算符的優(yōu)先級
下表按照==從高到低==的順序列出了所有運算符的優(yōu)先級
變量與賦值運算符
-
為什么有變量艰赞?
python語法基礎(chǔ)之一佣谐,使用變量保存數(shù)據(jù)
-
變量如何定義
- 變量名可以使用字母,數(shù)字方妖,下劃線,但只能以字母,下劃線開頭
- 不能使用python中的內(nèi)置函數(shù)名或保留字
-
=
為賦值運算符注意賦值運算符與數(shù)學(xué)中的
=
慨念不同【例子】
print(x+=2) # ->x = x+2,在數(shù)學(xué)中不成立
3.數(shù)據(jù)類型與轉(zhuǎn)換
常見的數(shù)據(jù)類型
類型 | 名稱 | 示例 |
---|---|---|
int | 整型 <class 'int'>
|
-876, 10 |
float | 浮點型<class 'float'>
|
3.149, 11.11 |
bool | 布爾型<class 'bool'>
|
True, False |
str | 字符串型<class 'str'>
|
'hello' ,"hello"
|
在python中可以使用type
函數(shù)對變量的類型進行檢查
【例子】通過 print()
可看出 a
的值狭魂,以及類 (class) 是int
。
a = 1031
print(a, type(a))
# 1031 <class 'int'>
類型轉(zhuǎn)換
通過python的內(nèi)置函數(shù)可實現(xiàn)不同類型之間的強制轉(zhuǎn)換.
-
int()
:將一個數(shù)值或字符串轉(zhuǎn)換成整數(shù)党觅,可以指定進制雌澄。 -
float()
:將一個字符串轉(zhuǎn)換成浮點數(shù)。 -
str()
:將指定的對象轉(zhuǎn)換成字符串形式杯瞻,可以指定編碼镐牺。
位運算
1.原碼,反碼,補碼(二進制的三種表達形式)
計算機內(nèi)部使用補碼表示
二進制有三種不同的表示形式:原碼、反碼和補碼魁莉,<u>計算機內(nèi)部使用==補碼==來表示</u>睬涧。
原碼:就是其二進制表示(注意,有一位符號位)沛厨。
00 00 00 11 -> 3
10 00 00 11 -> -3
反碼:正數(shù)的反碼就是原碼宙地,負數(shù)的反碼是符號位不變摔认,其余位取反(對應(yīng)正數(shù)按位取反)逆皮。
00 00 00 11 -> 3
11 11 11 00 -> -3
補碼:正數(shù)的補碼就是原碼,負數(shù)的補碼是反碼+1参袱。
00 00 00 11 -> 3
11 11 11 01 -> -3
符號位:最高位為符號位电谣,0表示正數(shù),1表示負數(shù)抹蚀。在位運算中符號位也參與運算剿牺。
2.三種進制之間如何相互轉(zhuǎn)換
【例子】
0o1, 0o20, 0o377 -> 1,16,255
# 八進制常用表示,0o或者0O開頭环壤,后面接數(shù)字
0x01, 0x10, 0xFF -> 1,16,255
# 十六進制常用表示晒来,0x或者0X開頭,后面接0-9,A-F
0b1, 0b10000, 0b11111111 -> 1,16,255
# 二進制常用表示郑现,0b開頭湃崩,后面接01組成的數(shù)字
【強制轉(zhuǎn)換】
oct(64), hex(64), bin(64)
('0o100', '0x40', '0b1000000')
3.各種按位操作
注意:
- Python中
bin
一個負數(shù)(十進制表示),輸出的是==它的原碼的二進制表示加上個負號==接箫。 - Python中的整型是==補碼形式==存儲的攒读。
- Python中整型是不限制長度的不會超范圍溢出。
作業(yè)
練習(xí)題:
leetcode 習(xí)題 136. 只出現(xiàn)一次的數(shù)字
給定一個非空整數(shù)數(shù)組辛友,除了某個元素只出現(xiàn)一次以外薄扁,其余每個元素均出現(xiàn)兩次。找出那個只出現(xiàn)了一次的元素。
嘗試使用位運算解決此題邓梅。
題目說明:
"""
Input file
example1: [2,2,1]
example2: [4,1,2,1,2]
Output file
result1: 1
result2: 4
"""
解題思路:
- 0 ^ A = A
- B ^ B = 0
- A^ B ^ B = A
- A^ B ^ B ^ C ^ C = A
代碼如下:
class Solution:
def singleNumber(self,nums) -> int:
a = 0
for i in nums:
a ^= i
return a
print(singleNumber([2,2,1]))
print(singleNumber([4,1,2,1,2]))