本人從Java
入世,所以在學(xué)習(xí)Python
時(shí)會(huì)融入一些Java
的概念方便自身的理解,對(duì)于Java
程序員來說更加友好一點(diǎn)渴逻。
一、注釋
????任何語(yǔ)言都有注釋音诫,注釋的目的是為了:闡述代碼的功能是什么惨奕,做了什么,以及如何做的
竭钝。分為單行注釋
和多行注釋
兩種梨撞。Python
的單行注釋
是通過#
來標(biāo)識(shí)。多行注釋
通過三對(duì)單引號(hào)'
或雙引號(hào)"
構(gòu)成蜓氨。
# 這是python的單行注釋
print("這是python的單行注釋")
"""
這是python的多行注釋
"""
print('這是雙引號(hào)的"python都多行注釋')
'''
這是python的多行注釋
'''
print("這是單引號(hào)的'python都多行注釋")
執(zhí)行效果:
二聋袋、變量和類型
Python
中的類型分為:數(shù)字(整數(shù)和浮點(diǎn)數(shù))
、布爾(bool)
穴吹、字符串
幽勒、列表
、字典
港令、元組啥容。
Python
中都變量類型無需聲明锈颗,即不需要像java
中那樣去聲明具體類型如int num = 0
,甚至不需要像JavaScript
中那樣去聲明變量,如var num = 0
咪惠。Python
中只需要直接命名變量击吱,變量的類型由等號(hào)后面的值決定
。不需要任何的聲明遥昧。
三覆醇、數(shù)字
在Python2
中,整數(shù)的大小是有限制的炭臭,即當(dāng)數(shù)字超過一定的范圍不再是int
類型永脓,而是long
長(zhǎng)整型,而在Python3
中鞋仍,無論整數(shù)的大小長(zhǎng)度為多少常摧,統(tǒng)稱為整型int
。
1.整型(int)
在Python
中威创,可對(duì)數(shù)字型執(zhí)行加(+)落午、減(-)、乘(*)肚豺、除(/)
運(yùn)算溃斋。Python
中使用兩個(gè)乘號(hào)表示乘方運(yùn)算。
在終端命令行中详炬,Python
會(huì)直接返回運(yùn)算結(jié)果盐类。
# 加
>>> 2 + 3
5
# 減
>>> 3 - 2
1
# 乘
>>> 2 * 3
6
# 除
>>> 3 / 2
1.5
# 乘方 pow(x, y) :x 的 y 次冪
>>> 2 ** 3
8
>>> pow(2, 3)
8
# 取模,取得余數(shù)
>>> 7 % 3
1
# 整除呛谜,向下取整
>>> 10 // 3
3
>>> 9 // 2
4
使用IDE我們需要借助到輸出方法:print()
在跳。
注意:Python
中對(duì)輸出語(yǔ)句為:print()
,在Python2
中可帶括號(hào)可不帶括號(hào),但是在Python3
中必須使用括號(hào)隐岛。我使用的版本是:Python3.8
猫妙。
2.浮點(diǎn)型(float)
Python
將所有帶小數(shù)點(diǎn)的數(shù)字都稱為浮點(diǎn)數(shù)。同樣Python
并沒有解決浮點(diǎn)型計(jì)算時(shí)導(dǎo)致的喪失精度的問題因?yàn)檫@本就是二進(jìn)制計(jì)算的問題聚凹。Python
也同java
一樣通過Decimal
方法解決精度計(jì)算的問題割坠。
# 加
>>> 0.2 + 0.2
0.4
# 減
>>> 1.2 - 0.1
1.0999999999999999
# 乘
>>> 2 * 0.1
0.2
# 除
>>> 2 / 0.2
10.0
# 損失精度
# 加
>>> 0.2 + 0.1
0.30000000000000004
# 乘
>>> 3 * 0.1
0.30000000000000004
# 乘方 pow(x, y) :x 的 y 次冪
>>> 0.2 ** 3
0.008000000000000002
>>> pow(0.2, 3)
0.008000000000000002
與Java
不同在與字符串的拼接中Python
不會(huì)自動(dòng)轉(zhuǎn)換所以會(huì)出現(xiàn)錯(cuò)誤所以只能借助外力來解決。
通過借助函數(shù)str()
來避免類型轉(zhuǎn)換問題妒牙。
反例:
>>> message = "快樂的生活是一輩子," + 1314 + "不計(jì)一時(shí)彼哼。"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
正例:
>>> message = "快樂的生活是一輩子," + str(1314) + "不計(jì)一時(shí)。"
>>> print(message)
快樂的生活是一輩子,1314不計(jì)一時(shí)湘今。
注:在
Python2
中整數(shù)的除法不會(huì)保留小數(shù)位敢朱,只保留整數(shù)位。要保留小數(shù)位就需要使用浮點(diǎn)型。
# python2.7
>>> 3 / 2
1
>>> 3.0 / 2
1.5
>>> 3 / 2.0
1.5
>>> 3.0 / 2.0
1.5
3.復(fù)數(shù)(complex)
復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分組成拴签,一般形式為x+yj
孝常,其中的x
是復(fù)數(shù)的實(shí)數(shù)部分,y
是復(fù)數(shù)的虛數(shù)部分蚓哩,這里的x
和y
都是實(shí)數(shù)构灸。
>>> complex(7, 8)
(7+8j)
注:Python中存在小數(shù)字池:-5 ~ 257。也稱為小整數(shù)緩存機(jī)制岸梨,或者稱為駐留機(jī)制等喜颁。等同于Java中包裝類型的緩沖池,在這個(gè)范圍內(nèi)的數(shù)字并不會(huì)重新創(chuàng)建對(duì)象盛嘿,而是使用已經(jīng)創(chuàng)建好的緩存對(duì)象洛巢。
abs(x):x 的絕對(duì)值。
int(x):將 x 轉(zhuǎn)換為整數(shù)次兆。向下取整。
float(x):將 x 轉(zhuǎn)換為浮點(diǎn)數(shù)锹锰。
divmod(x, y):結(jié)果和 (x // y, x % y) 一致芥炭。
>>> abs(11)
11
>>> abs(-11)
11
>>> int('12')
12
>>> int(12.3)
12
>>> float('132')
132.0
>>> float(12)
12.0
>>> divmod(10, 3)
(3, 1)
>>> divmod(3.2, 3)
(1.0, 0.20000000000000018)
4.進(jìn)制
# 二進(jìn)制:以0b開頭 --> bin()
>>> 0b1011
11
>>> bin(11)
'0b1011'
# 八進(jìn)制:以0o開頭 --> oct()
>>> 0o71
57
>>> oct(57)
'0o71'
# 十六進(jìn)制:以0x開頭 --> hex()
>>> 0x9e
158
>>> hex(158)
'0x9e'
四、布爾型(bool)
與所有其他語(yǔ)言一樣布爾型
只有兩種結(jié)果即True
和False
恃慧,其分別對(duì)應(yīng)與二進(jìn)制中的0
和1
园蝠。
注:True和False的首字母要大寫。
反例:
>>> boolean = true
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'true' is not defined
>>> boolean = false
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'false' is not defined
正例:
>>> boolean = True
>>> type(boolean)
<class 'bool'>
>>> boolean = False
>>> type(boolean)
<class 'bool'>
注:
type()
用于檢查變量的數(shù)據(jù)類型痢士。與JavaScript
中的typeof
和Java
中的instanceof
類似彪薛。
bool()
可以檢查變量的真假值True
或False
。
關(guān)于布爾型
真值太多怠蹂,所以我們只需要了解假值即Flase
的值有哪些即可善延。
類型 | False |
---|---|
布爾 | False |
數(shù)字 | 整型的0 和浮點(diǎn)型的0.0
|
字符串 | 空字符串''
|
列表 | 空列表[]
|
字典 | 空字典{}
|
元組 | 空元組()
|
set() | 空set()
|
None | None |
終端執(zhí)行:
#以下結(jié)果為假,即布爾(False)城侧、為0的數(shù)字(整形的0和浮點(diǎn)型的0.0)易遣、空字符串''、空列表[]、空字典{}、空元組()酪刀、空set()芯急、以及None
>>> bool(False)
False
>>> bool(0)
False
>>> bool(0.0)
False
>>> bool('')
False
>>> bool([])
False
>>> bool({})
False
>>> bool(())
False
>>> bool(set())
False
>>> bool(None)
False
五、運(yùn)算符
Python
中的運(yùn)算符與Java
基本一致剂邮,這里就直接列舉,相同的地方不做其他多余的說明。
1.算術(shù)運(yùn)算符
運(yùn)算符 | 描述 |
---|---|
+ |
加 - 兩個(gè)對(duì)象相加 |
- |
減 - 得到負(fù)數(shù)或是一個(gè)數(shù)減去另一個(gè)數(shù) |
* |
乘 - 兩個(gè)數(shù)相乘或是返回一個(gè)被重復(fù)若干次的字符串 |
/ |
除 - x除以y |
% |
取模 - 返回除法的余數(shù) |
** |
冪 - 返回x的y次冪 |
// |
取整除 - 返回商的整數(shù)部分(向下取整) |
2.比較運(yùn)算符
運(yùn)算符 | 描述 |
---|---|
== |
等于 - 比較對(duì)象是否相等 |
!= |
不等于 - 比較兩個(gè)對(duì)象是否不相等 |
<> |
不等于 - 比較兩個(gè)對(duì)象是否不相等火脉。python3 已廢棄 |
> |
大于 - 返回x是否大于y |
< |
小于 - 返回x是否小于y。所有比較運(yùn)算符返回1表示真,返回0表示假忘分。這分別與特殊的變量True和False等價(jià) |
>= |
大于等于 - 返回x是否大于等于y |
<= |
小于等于 - 返回x是否小于等于y |
3.賦值運(yùn)算符
運(yùn)算符 | 描述 |
---|---|
= |
簡(jiǎn)單的賦值運(yùn)算符 |
+= |
加法賦值運(yùn)算符,a += b,就是a = a + b
|
-= |
減法賦值運(yùn)算符,a -= b,就是a = a - b
|
*= |
乘法賦值運(yùn)算符,a *= b,就是a = a * b
|
/= |
除法賦值運(yùn)算符,a /= b,就是a = a / b
|
%= |
取模賦值運(yùn)算符,a %= b,就是a = a % b
|
**= |
冪賦值運(yùn)算符,a **= b,就是a = a ** b
|
//= |
取整除賦值運(yùn)算符,a //= b,就是a = a // b
|
4.位運(yùn)算符
與Java
不同的是Python
中沒有帶符號(hào)右移動(dòng)運(yùn)算符>>>
棋枕。其他都一樣。
運(yùn)算符 | 描述 |
---|---|
& |
按位與運(yùn)算符:參與運(yùn)算的兩個(gè)值,如果兩個(gè)相應(yīng)位都為1,則該位的結(jié)果為1,否則為0 |
| |
按位或運(yùn)算符:只要對(duì)應(yīng)的二個(gè)二進(jìn)位有一個(gè)為1時(shí)妒峦,結(jié)果位就為1 |
^ |
按位異或運(yùn)算符:當(dāng)兩對(duì)應(yīng)的二進(jìn)位相異時(shí)重斑,結(jié)果為1 |
~ |
按位取反運(yùn)算符:對(duì)數(shù)據(jù)的每個(gè)二進(jìn)制位取反,即把1變?yōu)?,把0變?yōu)? 。~x 類似于 -x-1 |
<< |
左移動(dòng)運(yùn)算符:運(yùn)算數(shù)的各二進(jìn)位全部左移若干位肯骇,由 << 右邊的數(shù)字指定了移動(dòng)的位數(shù)窥浪,高位丟棄,低位補(bǔ)0 |
>> |
右移動(dòng)運(yùn)算符:把">>"左邊的運(yùn)算數(shù)的各二進(jìn)位全部右移若干位笛丙,>> 右邊的數(shù)字指定了移動(dòng)的位數(shù) |
5.邏輯運(yùn)算符
與Java
不同的是Java
的只是語(yǔ)法而已漾脂。Java
使用的是:&&
、||
胚鸯、!
骨稿。
運(yùn)算符 | 邏輯表達(dá)式 | 描述 |
---|---|---|
and |
x and y |
布爾"與" - 如果 x 為 False,x and y 返回 False姜钳,否則它返回 y 的計(jì)算值 |
or |
x or y |
布爾"或" - 如果 x 是非 0坦冠,它返回 x 的計(jì)算值,否則它返回 y 的計(jì)算值 |
not |
not x |
布爾"非" - 如果 x 為 True哥桥,返回 False 辙浑。如果 x 為 False,它返回 True |
6.成員運(yùn)算符
運(yùn)算符 | 描述 |
---|---|
in |
如果在指定的序列中找到值返回 True拟糕,否則返回 False判呕。 |
not in |
如果在指定的序列中沒有找到值返回 True,否則返回 False送滞。 |
實(shí)例
>>> str = "yanxueer"
>>> print("ya" in str)
True
>>> print("b" not in str)
True
7.身份運(yùn)算符
判斷是否是同一對(duì)象侠草,即判斷地址值是否相同。Java
中一般使用==
來判斷地址值累澡,equals()
來判斷值即內(nèi)容是否相等梦抢。而Python
中==
判斷值是否相等,身份運(yùn)算符來判斷地址值是否相同愧哟。
運(yùn)算符 | 描述 |
---|---|
is |
is 是判斷兩個(gè)標(biāo)識(shí)符是不是引用自一個(gè)對(duì)象, 如果引用的是同一個(gè)對(duì)象則返回True ,否則返回False
|
is not |
is not 是判斷兩個(gè)標(biāo)識(shí)符是不是引用自不同對(duì)象,如果引用的不是同一個(gè)對(duì)象則返回結(jié)果True ,否則返回False 奥吩。 |
實(shí)例
id()
可以獲取到對(duì)象的地址值。
>>> str1 = "12"
>>> str2 = "12"
>>> print("str1的地址值是:%s;str2的地址值是:%s" % (id(str1), id(str2)))
str1的地址值是:2141262128816;str2的地址值是:2141262128816
>>> print(str1 is str2)
True
>>> str3 = "123"
>>> print("str1的地址值是:%s;str3的地址值是:%s" % (id(str1), id(str3)))
str1的地址值是:2141262128816;str3的地址值是:2141262129712
>>> print(str1 is str3)
False
>>> print(str1 is not str3)
True
Python
語(yǔ)法的成員運(yùn)算符
和身份運(yùn)算符
是Java
等其他語(yǔ)言中所沒有的蕊梧。這是因?yàn)?code>Python獨(dú)有的語(yǔ)法格式的原因霞赫。將在if
和for
中頻繁使用。
8.運(yùn)算符優(yōu)先級(jí)
運(yùn)算符 | 描述 |
---|---|
** |
指數(shù) (最高優(yōu)先級(jí)) |
~ ? + ? -
|
按位翻轉(zhuǎn), 一元加號(hào)和減號(hào) (最后兩個(gè)的方法名為 +@ 和 -@) |
* ? / ? % ? //
|
乘肥矢,除端衰,取模和取整除 |
+ ? -
|
加法減法 |
>> ? <<
|
右移叠洗,左移運(yùn)算符 |
& |
位 'AND' |
^ ? |
|
位運(yùn)算符 |
<= ? < ? > ? >=
|
比較運(yùn)算符 |
<> ? == ? !=
|
等于運(yùn)算符 |
= ? %= ? /= ? //= ? -= ? += ? *= ? **=
|
賦值運(yùn)算符 |
is ? is not
|
身份運(yùn)算符 |
in ? not in
|
成員運(yùn)算符 |
not ? and ? or
|
邏輯運(yùn)算符 |
六、總結(jié)
- 1.注釋的意義以及使用
- 2.
Python
中所包含的基本類型 - 3.
Python
中的基本類型--數(shù)字類型 - 4.
Python
中的基本類型--布爾型 - 5.
Python
中的運(yùn)算符
每日一言
換一種心態(tài)就是一種享受旅东,快樂從來都是自己動(dòng)手創(chuàng)造出來的灭抑。