程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python學習筆記_Day01

編輯:Python

環境准備

官方站點:http://www.python.org

IDE:集成開發環境

pycharm的配置

  1. 如果是第一次使用,打開後,出現以下內容,選擇下面的“不導入配置”

在這裡插入圖片描述

  1. 如果是專業版,需要購買

在這裡插入圖片描述

  1. 選擇界面風格

在這裡插入圖片描述

  1. 創建新項目,一個軟件工程就是一個項目,對應一個文件夾

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-qA8upgBq-1584409255959)(C:\Users\daiyajie\AppData\Roaming\Typora\typora-user-images\1584352090231.png)]

  1. 創建虛擬環境

Location: 項目目錄,即代碼文件存放的路徑

Project Interpreter:解釋器采用虛擬環境,相當於是把系統的python程序拷貝到了一個文件夾中,以後安裝

python軟件都安裝到這個文件夾。將來項目完成了,不需要這個環境了,只要把虛擬環境目錄刪除即可。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ISIULfav-1584409255960)(C:\Users\daiyajie\AppData\Roaming\Typora\typora-user-images\1584352199928.png)]

  1. 如果上一步,自動創建虛擬環境出現故障,可以手工創建虛擬環境
# 創建虛擬環境
[[email protected] ]# python3 -m venv ~/nsd1903
# 使用虛環境時,需要激活它
[[email protected] ]# source ~/nsd1903/bin/activate (nsd1903)
[[email protected] ]# python --version
Python 3.6.7
  1. 修改pycharm項目的虛擬環境

File -> Settings -> Project: Day01 -> Project Interpreter -> 點右上角的齒輪 -> Add Local -> Existing Enviroment -> 點 擊… -> 輸入/root/nsd1903/bin/python

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-nJUsyKBR-1584409255962)(C:\Users\daiyajie\AppData\Roaming\Typora\typora-user-images\1584352291851.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-MFEefgEZ-1584409255965)(C:\Users\daiyajie\AppData\Roaming\Typora\typora-user-images\1584352302945.png)]

  1. 修改編輯文字大小

File -> Settings -> Editor -> font -> size 修改大小

python運行方式

  • 交互解釋器
[[email protected] devops0101]# source ~/nsd1903/bin/activate
(nsd1903) [[email protected] devops0101]# python
>>> print("hello world!")
>>> exit
Use exit() or Ctrl-D (i.e. EOF) to exit
  • 文件形式 在pycharm項目名上右擊選第四項,可以拷貝到項目的絕對路徑
# vim hi.py
print("Hello World!")
(nsd1903) [[email protected] day01]# python hi.py
Hello World!

python語法

  • python使用縮進表達代碼邏輯,推薦縮進4個空格
  • 有子語句的代碼,後面都有冒號
  • 注釋使用#號,在pycharm中可以按ctrl + /進行注釋或取消注釋
  • 多個語句在同一行,需要使用分號分隔,但是仍然不推薦。

輸入輸出語句

# 字符串必須寫在引號中,單雙引號沒有區別
>>> print('hello world!')
# 一個print語句中,可以打印多項,123沒有引號,表示數字。默認各項間用空格分隔
>>> print('hao', 123, 'world')
hao 123 world
# 輸出時,也可以指定各項之間的分隔符
>>> print('hao', 123, 'world', sep='_')
hao_123_world
>>> print('hao', 123, 'world', sep='***')
hao***123***world
# 字符串可以使用+拼接
>>> print('hello' + 'world')
helloworld
# 通過input獲取鍵盤輸入,input括號中的字符串是屏幕提示符,把用戶輸入的結果保存在變量num中,num是變量,使 用時不用像shell那樣加$前綴。
>>> num = input("number: ")
number: 100
>>> num
'100'
# 只要通過input讀取,都是字符類型,字符不能和數字進行四則運算
>>> num + 10
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: must be str, not int
# 可以通過int函數把num轉換成整數,再和數字進行運算
>>> int(num) + 10
110

變量

會變化的量。常量不會變,表示字面本身含義的量不會變。100,'abc'這樣的量是字面量,表示看到的字面本身含義。

為什麼要用變量:方便,變量可以用有意義的名字。

變量的命名約定:
  • 首字符只能是字母或下劃線
  • 其他字符可以是字母或下劃線或數字
  • 區分大小寫
>>> 2a = 10 # Error
>>> _a = 5 # OK, 不常用
>>> abc-1 = 10 # Error
# 以下的兩個變量是不一樣的
>>> a = 10
>>> A = 100
推薦的命名方法:
  • 變量和函數名都用小寫字母,如pythonstring
  • 簡短,如pystr
  • 有意義
  • 多個單詞間用下劃線分隔,如py_str
  • 變量用名詞,函數用謂詞(動詞+名詞),如phone表示變量,用update_phone表示函數
  • 類名采用駝峰形式,如MyClass

使用變量

# 變量使用之前必須先賦值
>>> print(a) # a沒有定義,所以報名字錯誤
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>> counter = 0
# 賦值運算自右向左運算。以下代碼含義是將counter的值取出並加1,然後再賦值給變量counter
>>> counter = counter + 1
# 上面代碼可以簡寫為
>>> counter += 1
# python之禅
>>> import this Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
……
美勝丑,明勝暗,簡勝繁

運算符

算術運算:數學四則運算
>>> 5 / 3
1.6666666666666667
>>> 5 // 3 # 只保留商
1
>>> 5 % 3 # 只保留余數
2
>>> divmod(5, 3) # divmod函數可以同時返回商和余數
(1, 2)
>>> a, b = divmod(5, 3) # 商和余數分別保存在a和b中
>>> a
1
>>> b
2
>>> 2 ** 3 # 2的3次方
8
比較運算
# 比較運算的結果是True或False
# 字符串比較時,逐個字符進行比較,一旦出現結果就不再繼續了。字母按ASCII值比較。
>>> 'x' > 'abc'
True
# 在python中,支持連續比較
>>> 20 > 15 > 10
True
>>> 20 > 10 < 15 # 相當於20 > 10 and 10 < 15
True
邏輯運算符
# and兩邊的表達式都為真,結果才為真
>>> 10 > 5 and 10 < 20
True
# or兩邊的表達式只要一邊為真,結果就是真
>>> 10 > 5 or 10 < 3
True
# not顛倒真假
>>> 10 > 5
True
>>> not 10 > 5
False
>>> 10 < 5
False
>>> not 10 < 5
rue

數據類型

數字

  • int整數,沒小數點
  • bool,布爾數,True的值是1,False值為0
  • 浮點數,有小數點
  • 復數。為了解決誰的平方是-1,數學家發明了復數

整數的表示的方式

# python默認以10進制輸出,沒有任何前綴的數字都認為是10進制數
>>> 23 # 10進制
23
>>> 0o23 # 0o開頭表示8進制數
19
>>> 0O23
19
>>> 0x23 # 0x開頭表示16進制
35
>>> 0X23
35
>>> 0b11 # 0b開頭表示2進制
3
>>> 0B11
3
>>> 0x234
564
>>> 2 * 16 * 16 + 3 * 16 + 4
564
# 應用
>>> import os
>>> os.chmod('login.py', 755)
(nsd1903) [[email protected] day01]# ll login.py
--wxrw--wt. 1 root root 87 7月 31 11:45 login.py
>>> os.chmod('login.py', 0o755) # linux系統權限是8進制數,不是10進制
(nsd1903) [[email protected] day01]# ll login.py
-rwxr-xr-x. 1 root root 87 7月 31 11:45 login.py

字符串

  • 字符串是用引號引起來的一組字符,單雙引號沒有任何區別。
# s1和s2分別用了單又引號,它們表示了完全相同的含義
>>> s1 = 'hello world'
>>> s2 = "hello world"
# 將字符串tom賦值給變量name
>>> name = 'tom'
# s3中的name就是字面本身含義name
>>> s3 = "hello name"
>>> s3
'hello name'
# s4中的%s用後面變量name的值替換
>>> s4 = "hello %s" % name
>>> s4
'hello tom'
>>> "%s is %s years old" % ('tom', 22)
'tom is 22 years old'
  • python允許使用三引號(三個連續的單引號或雙引號)保存字符串的樣式
>>> words = "hello\nwelcome\ngreet" >
>> print(words) # 打印時,\n轉義為回車
hello
welcome
greet
>>> words # 內部存儲時,回車保存為\n
'hello\nwelcome\ngreet'
# 三引號只是在輸入時可以保留回車等輸入時的樣式,但是內部存儲沒有什麼特殊
>>> wordlist = """hello
... welcome
... greet"""
>>> print(wordlist)
hello
welcome
greet
>>> wordlist
'hello\nwelcome\ngreet'
  • 字符串相關操作
>>> py_str = 'python'
>>> len(py_str) # 計算字符串的長度
6
>>> py_str[0] # 取出第一個字符,下標為0
'p'
>>> py_str[5]
'n'
>>> py_str[6] # 如果下標超出范圍,將會出現錯誤
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
# 下標為負數,表示從右向左取
>>> py_str[-1]
'n'
>>> py_str[-6]
'p'
# 切片,切取片段
>>> py_str[2:4] # 包含起始下標對應的字符,不包含結束下標對應的字符
'th'
>>> py_str[2:6] # 取切片時,下標超出范圍不會報錯
'thon'
>>> py_str[2:6000]
'thon'
>>> py_str[2:] # 結束下標不寫,表示取到結尾
'thon'
>>> py_str[:2] # 起始下標不寫,表示從開頭取
'py'
>>> py_str[0:2]
'py'
>>> py_str[:] # 從開頭取到結尾
'python'
>>> py_str[::2] # 步長值為2
'pto'
>>> py_str[1::2]
'yhn'
>>> py_str[::-1] # 步長為負表示自右向左取
'nohtyp'
# 成員關系著斷
>>> 't' in py_str # t在字符串中嗎?
True
>>> 'th' in py_str
True
>>> 'to' in py_str # to雖然在字符串中,但不是連續的,返回False
False
>>> 'to' not in py_str # to不在字符串中嗎?
True
# 字符串通過+實現拼接
>>> 'hao' + '123'
'hao123'
>>> str(123) # 內建函數str可以把數字轉成字符串
'123'
>> 'hao' + str(123)
'hao123'
# 字符串重復
>>> '*' * 30
'******************************'
>>> '#' * 30
'##############################'
>>> 'ab' * 30
'abababababababababababababababababababababababababababababab'

列表

使用[]表示列表。列表是容器類型的,它裡面可以存儲各種數據。

>>> alist = [10, 20, 30, 'tom', 'jerry']
>>> len(alist)
5
>>> alist[0]
10
>>> alist[-1]
'jerry'
>>> 30 in alist
True
>>> alist[3:]
['tom', 'jerry']
# 列表支持修改內容
>>> alist[2] = 300
>>> alist
[10, 20, 300, 'tom', 'jerry']
# 通過append方法,可以向列表追加數據
>>> alist.append('bob')
>>> alist
[10, 20, 300, 'tom', 'jerry', 'bob']
>>> alist * 2
[10, 20, 300, 'tom', 'jerry', 'bob', 10, 20, 300, 'tom', 'jerry', 'bob']
>>> alist + 100 # 報錯,列表不能和數字拼接
>>> alist + [100] # 列表拼接

元組

元組可以認為是不可變的列表,其余完全一樣。

>>> atuple = (10, 20, 300, 'tom', 'jerry', 'bob')
>>> len(atuple)
6
>>> atuple[0]
10
>>> atuple[2:4]
(300, 'tom')
>> atuple[0] = 100 # 報錯,不能修改
# 單元素元組,必須有逗號,否則不是元組。
>>> a = (10)
>>> a # a不是元組,而是數字
10
>>> b = (10,)
>>> b
(10,)
>>> len(b)
1

字典

字典是無序的,所以不能像字符串那樣取下標和切片。

>>> adict = {'name': 'tom', 'age': 22}
>>> len(adict)
2
>>> 'tom' in adict # 'tom'是字典的key嗎?
False
>>> 'name' in adict
True
>>> adict['name'] # 字典通過key取出value
'tom'
# 字典的key不能重復,賦值時,key存在則修改val,key不存在則新增
>>> adict['age'] = 25
>>> adict
{'name': 'tom', 'age': 25}
>>> adict['email'] = '[email protected]'
>>> adict
{'name': 'tom', 'age': 25, 'email': '[email protected]'}

數據類型分類

  • 按存儲模型
  • 標量:字符串、數字
  • 容器:列表、元祖、字典
  • 按更新模型
  • 可變:列表、字典
  • 不可變:字符串、元組、數字
  • 按訪問模型
  • 直接:數字
  • 順序:字符串、列表、元組

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved