Python從基礎到精通day1

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的值,在從被取出值中取下標爲-120

元組

  • 相當於是不可變的列表
>>> 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]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章