Python介紹、數據類型概述、環境使用:
一、python簡介:
python簡介
python的誕生
創始人:Guido van Rossum(荷蘭人)
時間:1989年聖誕節期間
地點:阿姆斯特丹
python的命名:源於Guido是一個喜劇團Monty python的粉絲
應用領域:
python優缺點:
優點:
面向對象(C++/JAVA/PYTHON/SWIFT/C#)
免費
可移植
可混合編程
簡單易學易用
應用鄰域廣泛
開源
缺點:
與C/C++/go相比,執行速度不夠快
開源
python的官網:
www.python.org
通過此網站可以查看語言文檔信息
廢話不多少,直接開啓我們的Python之旅。
首先運行python3,這裏我提前做了python的環境,搭建環境我就不寫了。
一. Print語句
[root@python day1]# python3
>>> print ('hello world!')
hello world!
在Python中,字符串必須放到引號中。
如果沒有引號表示一個名字,如函數名 變量名,如果該名字不存在則報錯
>>> print ('hao','123') 打印一項字符串和數字,輸出時默認各項之間用空格分隔
hao 123
>>> print ('hao','123',sep='***') 通過sep指定分隔符,分隔符任意
hao***123
>>>
二.input語句
#用於讀取用戶鍵盤輸入,讀入的內容一定是字符類型的
>>> user = input("username:") username:是屏幕提示,user是變量
username:tom
>>> print(user) 在Python中變量直接調用不需要加$
tom
>>> n = input("number: ")
number: 10
>>> print(n)
10
>>> n + 5 字符類型不能和數字類型做運算
#通過input用戶寫進來的數據都是**字符類型!**
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: must be str, not int
>>> type(n) 查看n的數據類型
<class 'str'> str表示字符類型,英文單詞string
>>> int(n) + 5 int函數將字符串轉換成相應的整數數字
15
字符串格式化的基本形式:
使用()中的內容按順序依次替換,如果只有一個%s 可以不寫括號
>>> '...%s...%s...' % () 標準格式方便記憶
>>> 'Hello %s' % 'tom'
'Hello tom'
>>> '%s is %s years old' % ('tom',18)
'tom is 18 years old'
>>>
三. Python變量
什麼是變量:可以變化的量,不能變量的量叫字面量literal。
變量的命名規定
- 首字母必須是字母或下劃線
- 其他字符可以是字母,數字,下劃線
- 區分大小寫
推薦的命名方式
- 有意義
- 簡短
- 變量名和函數名全部採用小寫
- 變量名和函數名各單詞用下劃線分開,py_str
變量在使用之前,必須賦初值,如果使用不存在的名稱會發生NameError異常
變量賦值,自右向左運算。
將等號右邊的表達式計算出一個結果,賦值給左側的變量
變量賦值,自右向左運算. 將等號右邊的表達式計算出一個結果,賦值給左側的變量
>>> a = 5 + 5
>>> a
10
#數值變量支持自增,自減等運算
>>> a = a + 1
>>> a
11
#以上寫法可以簡寫爲:
>>> a += 1
>>> a
12
四. 運算符
標準算數運算符
+ - * / // % **
比較運算符
> < >= <= != ==
邏輯運算符
and not or
- 比較結果爲真Ture或者假 False
>>> 3 != 3 # 3不等3嗎?
False
>>> 5 >= 5
True
# python支持連續比較
>>> 20 > 15 > 10
True
>>> 15 > 10 < 20 # 相當於15 > 10 and 10 < 20
True
邏輯運算符
- and兩邊的結果都爲真,最終才爲真;有一邊是假最終爲假
- or兩邊的結果都爲假,最終才爲假;有一邊爲真,最終爲真
- not是單目運算符,它將假變成真,真變爲假
>>> 5 > 3 and 5 > 2
True
>>> 5 > 3 and 5 > 7
False
>>> 5 > 3 or 5 > 2
True
>>> 5 > 3 or 5 > 7
True
>>> not 5 > 3
False
>>> not 5 > 7
True
>>>
數據類型
數字
- 沒有小數點的整數
- 有小數點的浮點數
- 布爾值True的值爲1,False值爲0
>>> True + 2
3
>>> False * 2
0
# 整數前面沒有前綴,表示10進制數,python默認都以10進制輸出
>>> 11
11
# 8進制數以0o或0O開頭
>>> 0o11
9
# 16進制數以0x或0X開頭
>>> 0x11
17
# 2進制數以0b或0B開頭
>>> 0b11
3
# 將16進制轉成10進制
>>> 0x231 # 2 * 16 * 16 + 3 * 16 + 1
561
>>> 0o82 # 報錯,8進制數沒有8
字符串
- 通過引號引起來的字符集合,它總是表示字面本身含義。
- 在python中,單雙引號沒有區別。
- python支持三引號(3個連續的單引號或雙引號),保留用戶的輸入樣式
>>> users = """Tom
... Kenji
... jerry"""
>>> print(users)
Tom
Kenji
jerry
>>> users # 在python解釋器中,不用print也可以回顯。程序文件輸出必須print
'Tom\nKenji\njerry'
>>> names = 'bob\n小明\n小紅'
>>> print(names)
bob
小明
小紅
# 字符串使用+進行拼接
>>> py_str = 'python'
>>> len(py_str) 使用len函數統計變量佔用的字符長度
6
>>> py_str + 'hello'
'pythonhello'
>>> py_str + ' hello'
'python hello'
# 字符串通過*實現重複
>>> '*' * 30
'******************************'
>>> '=' * 50
'=================================================='
>>> 't' in py_str # 't'在字符串中嗎?
True
>>> 'th' in py_str # 'th'在字符串中嗎?
True
>>> 'to' in py_str # 'to'在字符串中嗎?
False
>>> 'to' not in py_str # 'to'不在字符串中嗎?
True
通過下標取值
>>> py_str[0] # 取出第一個字符,下標爲0
'p'
>>> py_str[6] # 取出第7個字符,報錯,沒有第7個字符
>>> py_str[5] # 取出第6個字符
'n'
>>> py_str[-1] # 下標爲負,表示從右向左取
'n'
>>> py_str[-6]
'p'
取切片,起始下標包含,結束下標不包含
>>> py_str[2:4]
'th'
>>> py_str[2:600] # 取切片時,下標越界不報錯
'thon'
>>> py_str[2:] # 結束下標不寫,表示取到結尾
'thon'
>>> py_str[:2] # 起始下標不寫,表示從開頭取
'py'
>>> py_str[:] # 從開頭取到結尾
'python'
>>> py_str[::2] # 從開頭取到結尾,步長爲2,默認步長值爲1
'pto'
>>> py_str[1::2] # 從第一位開始取,步長爲2
'yhn'
>>> py_str[::-1] # 步長爲負,表示從右向左取
'nohtyp'
列表
- 類似於其他語言的數組
>>> l1 = [10, 20, 'tom', 'jerry']
>>> len(l1)
4
>>> l1 + 30 # 不能將列表與數字進行拼接
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "int") to list
>>> l1 + [30]
[10, 20, 'tom', 'jerry', 30]
>>> l1
[10, 20, 'tom', 'jerry']
>>> l1 * 3
[10, 20, 'tom', 'jerry', 10, 20, 'tom', 'jerry', 10, 20, 'tom', 'jerry']
>>> 'tom' in l1
True
>>> l1[-2]
'tom'
>>> l1[2:]
['tom', 'jerry']
列表可變,可以改變它的值,可以添加新值
>>> l1[0] = 100
>>> l1
[100, 20, 'tom', 'jerry']
>>> l1.append(200) # 向列表追加新值
>>> l1
[100, 20, 'tom', 'jerry', 200]
>>> l1.remove(200) # 刪除列表中的值
>>> l1
[100, 20, 'tom', 'jerry']
>>>
說明:
- 變量代表的是某個數據。所以變量的語法形式,就是變量代表的數據的語法形式
>>> py_str
'python'
>>> py_str[0]
'p'
>>> 'python'[0]
'p'
>>> l1
[10, 20, 'tom', 'jerry']
>>> [10, 20, 'tom', 'jerry'][:2]
[10, 20]
>>> l1[:2]
[10, 20]
>>> l2 = [['tom', 20], ['jerry', 18]]
>>> l2[0]
['tom', 20]
>>> l2[0][-1] 先從l2中取出下標爲0的值,在從被取出值中取下標爲-1的
20
元組
- 相當於是不可變的列表
>>> t1 = (100, 20, 'tom', 'jerry', 200)
>>> len(t1)
5
>>> t1[-1]
200
>>> t1[2:4]
('tom', 'jerry')
>>> t1 + (10, 20)
(100, 20, 'tom', 'jerry', 200, 10, 20)
>>> t1 * 2
(100, 20, 'tom', 'jerry', 200, 100, 20, 'tom', 'jerry', 200)
>>> 100 in t1
True
>>> t1[0] = 10000 # 報錯,元組不可變
字典
- 由鍵值(key: val)對構成的數據類型
- 字典的鍵不能重複
- 字典沒有順序
- 字典通過key取出val
>>> d1 = {'name': 'Mr.Niu', 'age': 20}
>>> len(d1)
2
>>> 20 in d1 # 20是字典的key嗎?
False
>>> 'age' in d1
True
>>> d1['name']
'Mr.Niu'
>>> d1['age']
20
>>> d1['age'] = 21 # key已在字典中,修改它的值
>>> d1
{'name': 'Mr.Niu', 'age': 21}
>>> d1['email'] = '[email protected]' # key不在字典中,則加新值
>>> d1
{'name': 'Mr.Niu', 'age': 21, 'email': '[email protected]'}
數據類型的分類
按存儲模型分類
- 標量:數字、字符串。不能包含其他數據
- 容器:列表、元組、字典
按更新模型分類
- 不可變:數字、字符串、元組
- 可變:列表、字典
按訪問模型分類
- 直接訪問:數字
- 順序訪問:字符串、列表、元組
- 映射訪問:字典,通過key和values的方式取值
>>> s1 = 'python'
>>> l1 = [10, 20, 30]
>>> l1[0] = 1000
>>> l1
[1000, 20, 30]
>>> s1[0] = 'P' # 報錯,因爲字符串不可變
>>> s1 = 'Python' # 將s1整體重新賦值
>>> l2 = l1
>>> l2
[1000, 20, 30]
>>> l1
[1000, 20, 30]
>>> l2.append(100)
>>> l2
[1000, 20, 30, 100]
>>> l1
[1000, 20, 30, 100]