基本運算
在了解了怎么安裝Python3,,安裝IDE之后套利,接下來我們學習一下Python上面的常用運算符己英,直接運行解釋器后(在Cmd上運行Python)姨夹,直接在上面進行一些計算,會直接輸出答案夕晓,要是我們在文件中運行計算題宛乃,必須要使用print方法才會有輸出,比如
>>> 1+2
3
>>> 1-2
-1
>>>1*2
2
除法/
在Python上是有區(qū)別的,一般在java中征炼,兩個整數(shù)相除析既,結(jié)果是整數(shù)。但是在Python里面谆奥,兩個整數(shù)相除總是會得到一個浮點型數(shù)值(float)渡贾,比如
>>> 1/2
0.5
>>>1/3
0.3333333333333333
>>> 10/6
1.6666666666666667
所以python上的除法分成兩種,一種是使用/
相除后總是會獲得浮點型數(shù)值的,另一種則是使用//
運算符雄右,這種做法會獲得一個整數(shù)數(shù)值空骚,丟棄小數(shù)部分,比如
>>> 1//2
0
>>>1//3
0
>>>10//6
1
通過**
運算符可以計算冪乘方,比如
>>> 2 ** 3
8
>>> 1.4 ** 2
1.959999999999997
可以看到擂仍,普通情況下使用的冪次方是沒有問題的囤屹,但是對于浮點型的數(shù)值使用**
運算符就可能會出現(xiàn)一些意想不到的問題。
使用=
給變量賦值逢渔,變量在使用之前肋坚,必須進行賦值,否則會報錯
>>> var
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'var' is not defined
_
下劃線肃廓,python把最近一個表達式的值賦值給變量它智厌,這樣我們就可以通過_
來獲取上一步的計算結(jié)果了,但是只能夠在>>>
模式下使用
>>> 1+4
5
>>> _
5
注意給_
賦值盲赊,否則只會創(chuàng)建一個局部變量铣鹏,那么我們使用_
訪問到的都是這個局部變量。
基本類型
Python支持多種數(shù)據(jù)類型哀蘑,像常用的int和float诚卸,不常用的用Decimal,F(xiàn)raction绘迁,Date等合溺,所以我們只需要了解常用的數(shù)據(jù)類型就好了,對于不常用的類型缀台,不適宜入門棠赛,要懂得放棄。
下面說一下另一種常用的數(shù)據(jù)類型膛腐,字符串類型睛约。
像很多腳本語言一樣,對于字符串依疼,我們使用'xxx'
單引號痰腮,或者"xxx"
表示,使用\反斜杠轉(zhuǎn)義引號,如果:
>>> ' "asdd" ' #用單引號包含雙引號,不需要轉(zhuǎn)義,反之亦然
' "asdd" '
>>> '\''
"'"
在>>>
模式下我們會看到輸出的字符串會帶有引號族沃,使用print()函數(shù)輸出字符串就會隱藏掉最外層的引號了。
>>> print(' "aasd" ')
"aasd"
>>>print('\'')
'
python有一種非常強大的使用原始字符串的語法沧踏,在字符串前面加上r
,那么就會保留整一個字符串巾钉,不需要轉(zhuǎn)義\
>>>print('\\\\AAA')
\\AA
>>>print(r'\\\\AAA')
\\\\AAA
python還有一種強大的文本編輯能力,使用'''xxx'''
翘狱,或者"""xxx"""
,在段落末尾使用\反斜杠可以連接末尾和下一段的開頭砰苍,比如
>>>print('''
...今天是個好天氣潦匈,早上\
...下雨了
...''')
今天是一個好天氣,早上下雨了
>>>print('''
...今天是個好天氣赚导,早上
...下雨了
...''')
今天是個好天氣茬缩,早上
下雨了
我們也可以使用一些數(shù)學操作符對字符串進行處理
#加法運算
>>>print( 'www.'+'baidu.com')
www.baidu.com
#乘法運算
>>>print(3*'w'+'.baidu.com')
www.baidu.com
#python還會把兩個字符串自動連接起來
>>>print( 'www' '.baidu.com')
www.baidu.com
對于自動連接這種情況,我測試過會必須是兩個'xx'
和'xx'
兩個單引號是臨近的吼旧,這樣才會合并成'xxxx'
凰锡,而且這些合并的優(yōu)先級還挺高的,當然非常不建議使用任何不適合閱讀語法書寫代碼圈暗,雖然python主張盡可能少的代碼掂为,但是不好閱讀的語法還是不要用的好,不然看起來眼都花了...
像java語法一樣员串,我們也可以把字符串看做是一個字符數(shù)組勇哗,然后使用下標來訪問對應的字符
>>> str = 'Hello'
>>> str[0]
'H'
>>>str[-1]
'o'
這也是python比較逆天的地方,不但能夠正向訪問下標寸齐,還可以逆向的智绸,對于長期接觸,我們的數(shù)組下標依然是從0開始访忿,所以-1代表的是末尾第一位
另一個非常逆天的語法是切片瞧栗,習慣了java的語法,其實我是很不習慣python這樣很逆天的語法的,所謂切片海铆,顧名思義迹恐,就是獲取一個指定的片段,切片語法使用[x:x]
>>> str = 'Hello'
>>>str[2:1]
''#空字符串
所幸找到了一種很好的快速學習切片語法的方式
+---+---+---+---+---+
| h | e | l | l | o |
+---+---+---+---+---+
0 1 2 3 4 5
-5 -4 -3 -2 -1
可以看到兩個|
之間形成的字符串組合就是我們要得到的切片卧斟,如果我們沒有定義切片頭或者切片尾殴边,像[:3]
或者[3:]
這樣的,默認會填充字符串的頭或者尾珍语,對于一切超出切片范圍的數(shù)值锤岸,不會報錯,當字符串的頭或尾來處理板乙,比如
>>>str = 'hello'
>>>str[0:10]
'hello'
>>>str[-10:5]
'hello'
必須滿足切片的左邊位置大于右邊位置是偷,注意拳氢,不是數(shù)值上大于,比如上面的例子蛋铆,[-10:5]
是滿足的馋评,但是[-3:1]
就不滿足了,因為-3的位置在1的后面刺啦。
字符串一旦賦值留特,是無法被更改的。比如下面的例子就會報錯
>>> str[0] = 'e'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>>
如果我們需要修改當前字符串的一個字符玛瘸,只能將字符串分成兩個切片蜕青,插入待插入的字符串后,返回一個新的字符串
要查詢字符串的長度糊渊,使用len(str)函數(shù)獲取字符串長度
>>> len('hello')
5