Python基礎(chǔ)—Day1

工作之后第一次更新簡書居然是寫Python基礎(chǔ)教程,因為這些基礎(chǔ)的語法太長時間沒用真的會忘,最近寫代碼真心感覺出來啥叫 “基礎(chǔ)不牢,地動山搖”,以前學(xué)的Python基礎(chǔ)還是要時不時的拿出來看看呀~~

1. 初識Python

1.1 編程語言和Python

編程語言是什么?

是用來定義計算機(jī)程序的形式語言。我們通過編程語言來編寫程序代碼,再通過語言處理程序執(zhí)行向計算機(jī)發(fā)送指令,讓計算機(jī)完成對應(yīng)的工作。

簡單來說,編程語言就是人類和計算機(jī)進(jìn)行交流的語言。

什么是Python?

Python就是一門編程語言,而且是現(xiàn)在世界上最流行的編程語言之一。

1.2 Python解釋器

安裝Python

首先登陸Python官網(wǎng),在官網(wǎng)我們可以下載Python,Python的安裝視頻 按照安裝視頻操作即可。

Python官網(wǎng)

Python解釋器

當(dāng)我們編寫Python代碼時,我們得到的是一個包含Python代碼的以.py為擴(kuò)展名的文本文件。要運(yùn)行代碼,就需要Python解釋器去執(zhí)行.py文件。

在計算機(jī)內(nèi)部,Python解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式,然后再把它翻譯成計算機(jī)使用的機(jī)器語言并運(yùn)行。

Python解釋器——CPython

當(dāng)我們從Python官方網(wǎng)站下載并安裝好Python 3.x后,我們就直接獲得了一個官方版本的解釋器:CPython。這個解釋器是用C語言開發(fā)的,所以叫CPython。在命令行下運(yùn)行python就是啟動CPython解釋器。CPython是使用最廣的Python解釋器。

Python解釋器——IPython

IPython是基于CPython之上的一個交互式解釋器,也就是說,IPython只是在交互方式上有所增強(qiáng),但是執(zhí)行Python代碼的功能和CPython是完全一樣的。好比很多國產(chǎn)瀏覽器雖然外觀不同,但內(nèi)核其實都是調(diào)用了IE。
CPython用>>>作為提示符,而IPython用In [序號]:作為提示符。

安裝 IPython解釋器

Linux操作系統(tǒng)下


https://ipython.org/install.html
##安裝 IPython解釋器
(py3env) jhuang 16:51:09 ~ 
$ pip install ipython

出現(xiàn)以下顯示,說明安裝成功

Successfully installed backcall-0.1.0 ipython-7.6.1 jedi-0.14.0 parso-0.5.0 pexpect-4.7.0 pickleshare-0.7.5 prompt-toolkit-2.0.9 ptyprocess-0.6.0 pygments-2.4.2 wcwidth-0.1.7
You are using pip version 9.0.1, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

啟動iPython

##啟動iPython
(py3env) jhuang 17:08:48 ~/project/learn_python 
$ ipython
Python 3.5.4 |Continuum Analytics, Inc.| (default, Aug 14 2017, 13:26:58) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.6.1 -- An enhanced Interactive Python. Type '?' for help.

In [1]:   

當(dāng)提示符變?yōu)?code>In [1]:時,ipython解釋器啟動成功。

Python解釋器——Pycharm

PyCharm 是一款功能強(qiáng)大的 Python 編輯器,在自己電腦上安裝一個Pycharm軟件寫和運(yùn)行Python腳本特別方便

1.3 用Pycharm編寫第一個python程序

打開 Pycharm,選擇 Create New Project,創(chuàng)建一個新項目


Pycharm開始界面

選擇Pure Python表示創(chuàng)建一個純Python程序項目, Location 表示該項目保存的路徑,Interpreter 表示使用的Python解釋器版本,最后點擊Create 創(chuàng)建項目。


創(chuàng)建Python項目

右擊項目,選擇New,再選擇Python File
創(chuàng)建Python文件

在彈出的對話框中輸入的文件名HelloPython,點擊OK,表示創(chuàng)建一個Python程序的文本文件,文本文件后綴名默認(rèn).py


為Python文件命名

輸入以下代碼,并右擊空白處,選擇Run運(yùn)行,表示打印一個字符串"Hello World!":
print("Hello World!")
運(yùn)行Python代碼

運(yùn)行成功后,Pycharm Console窗口將顯示我們的輸出結(jié)果。


顯示輸出結(jié)果

Python基礎(chǔ)知識

1. 注釋

  • 注釋:在程序代碼中對程序代碼進(jìn)行解釋說明的文字。
  • 作用:注釋不是程序,不能被執(zhí)行,只是對程序代碼進(jìn)行解釋說明,讓別人可以看懂程序代碼的作用,能夠大大增強(qiáng)程序的可讀性。

注釋的分類

單行注釋

以#開頭,#右邊的所有文字當(dāng)作說明,而不是真正要執(zhí)行的程序,起輔助說明作用

# 我是注釋,可以在里寫一些功能說明之類的哦
print('hello world')

多行注釋

兩行''' (是英文狀態(tài)下Enter左邊那個鍵按三下)之間可以寫多行注釋

'''
    我是多行注釋,可以寫很多很多行的功能說明

'''

注釋分為:

    1. 單行注釋: 以 # 開頭 ,注釋內(nèi)容只能寫一行
    1. 多行注釋: 使用三引號,注釋內(nèi)容可以有多行

2. 變量以及類型

2.1變量的定義

變量:就是存儲程序中數(shù)據(jù)的容器,就是用來存儲數(shù)據(jù)的.

在程序中,有時我們需要對2個數(shù)據(jù)進(jìn)行求和,那么該怎樣做呢?
答:需要把2個數(shù)據(jù),或者多個數(shù)據(jù)進(jìn)行求和的話,那么就需要把這些數(shù)據(jù)先存儲起來,然后把它們累加起來即可

在Python中,存儲一個數(shù)據(jù),需要一個叫做變量的東西,如下示例:

num1 = 100  #num1就是一個變量,就好一個小菜籃子

num2 = 87   #num2也是一個變量

result = num1 + num2  #把num1和num2這兩個變量中的數(shù)據(jù)進(jìn)行累加,然后放到 result變量中
  • 程序就是用來處理數(shù)據(jù)的,而變量就是用來存儲數(shù)據(jù)的

2.2 變量的類型

為了更充分的利用內(nèi)存空間以及更有效率的管理內(nèi)存,變量是有不同的類型的,如下所示:


變量的類型

怎樣知道一個變量的類型呢?

在python中,只要定義了一個變量,而且它有數(shù)據(jù),那么它的類型就已經(jīng)確定了,不需要咱們開發(fā)者主動的去說明它的類型,系統(tǒng)會自動辨別,可以使用type(變量的名字),來查看變量的類型:

# int 型變量
num1 = 200
print(type(num1))

# 浮點型變量
num2 = 3.14
print(type(num2))

# 布爾型變量
my_bool = True
print(type(my_bool))

# 字符串型變量
my_str = 'hello'
print(type(my_str))

############## 輸出結(jié)果 ###############

<class 'int'>
<class 'float'>
<class 'bool'>
<class 'str'>

3. 標(biāo)識符和關(guān)鍵字

3.1 標(biāo)識符

開發(fā)人員在程序中自定義的一些符號和名稱,標(biāo)識符是自己定義的,如變量名 、函數(shù)名等

  • 標(biāo)識符:通俗理解就是程序中的變量名和函數(shù)名等等
  • 標(biāo)識符的特點:見名知意
  • 標(biāo)識符的組成:字母、數(shù)字、下劃線并且不能以數(shù)字開頭
  • python中的標(biāo)識符是區(qū)分大小寫的(Name 不等于 name)

標(biāo)識符(變量名)的命名規(guī)則:

  • 小駝峰命名法:第一個單詞首字母小寫,其他單詞的首字母都大寫,如:myName、aDog
  • 大駝峰命名法:每個單詞首字母都大寫,如:FirstName、LastName
  • 下劃線命名法:每個單詞字母都小寫,單詞之間使用下劃線進(jìn)行分割 (推薦使用)如:my_name

3.2 關(guān)鍵字

  • 關(guān)鍵字:具體特殊功能的標(biāo)識符就是關(guān)鍵字
  • 注意點:關(guān)鍵字不能作為變量名使用

查看關(guān)鍵字:

and     as      assert     break     class      continue    def     del
elif    else    except     exec      finally    for         from    global
if      in      import     is        lambda     not         or      pass
print   raise   return     try       while      with        yield

在Python中我們可以通過導(dǎo)入關(guān)鍵字模塊查看當(dāng)前系統(tǒng)中的Python關(guān)鍵字:

import keyword  # 導(dǎo)入關(guān)鍵字模塊

# keyword.kwlist返回的是關(guān)鍵字列表
result = keyword.kwlist

print(result)
result_type = type(result)
print(result_type)

############## 輸出結(jié)果 ###############

['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
<class 'list'>

4. 輸出

print("hello world")就是最簡單的輸出
通過print函數(shù)可以輸出多個變量:

name = "張三"
age = 20

# 通過print函數(shù)可以輸出多個變量
print(name, age)

############## 輸出結(jié)果 ###############

張三 20

擴(kuò)展:修改輸出顯示時的分隔符
sep:表示指定多個數(shù)據(jù)輸出時的分隔符:

name = "張三"
age = 20

# seq可以指定輸出時的分隔符
print(name, age, sep="&")

# \n 表示換行符
print("你好\n世界")

############## 輸出結(jié)果 ###############

張三&20
你好
世界

end:表示輸出內(nèi)容后面追加指定數(shù)據(jù),默認(rèn)追加的是\n

name = "張三"
age = 20
job = "講師"

# 沒有指定end參數(shù),默認(rèn)后面是\n,所以打印完第一行之后再打印第二行會另起一行
print(name, age)
print(job)

# 指定end參數(shù)是 “ &”所以打印完第一行追加“ !”后直接
print(name, age, end="&")
print(job)

############## 輸出結(jié)果 ###############

張三 20
講師
張三 20&講師

end參數(shù)還可以指定為空格或者指定為空:

name = "李四"
address = "北京"
job = "講師"

#end參數(shù)指定為空格
print(name, end= " ")
# 指定為空
print(job, end="")
print(address)

############## 輸出結(jié)果 ###############

李四 講師北京

格式化輸出

格式化輸出:將數(shù)據(jù)按照指定數(shù)據(jù)格式進(jìn)行輸出顯示

  • %d: 將數(shù)據(jù)以整型方式進(jìn)行格式化輸出
  • %f: 將數(shù)據(jù)以浮點數(shù)方式進(jìn)行格式化輸出
  • %s: 將數(shù)據(jù)以字符串方式進(jìn)行格式化輸出

文字描述太抽象,不好理解直接看代碼:

age = 10
print("我今年%d歲" % age)
age += 1
print("我今年%d歲" % age)

############## 輸出結(jié)果 ###############

我今年10歲
我今年11歲

上面代碼告訴我們:以后輸出字符串的時候,字符串里面有動態(tài)內(nèi)容,那么可以使用格式化方式進(jìn)行輸出。

如果給多個格式化占位符傳參,那么多個參數(shù)需要放到小括號:

name = "宋江"
age = 50

# 如果給多個格式化占位符傳參,那么多個參數(shù)需要放到小括號
print("我叫:%s 年齡:%d" % (name, age))

############## 輸出結(jié)果 ###############

我叫:宋江 年齡:50

  • name是字符型所以要用%s占位符;
  • ageint型所以要用%d占位符

字符型占位符 %f 默認(rèn)保留六位小數(shù),會進(jìn)行四舍五入:

pi = 3.1415926

print("圓周率: %f" % pi)
print("圓周率: %.2f" % pi)

############## 輸出結(jié)果 ###############

圓周率: 3.141593
圓周率: 3.14

%f 默認(rèn)是保留六位小數(shù),%.2f就是規(guī)定我只保留小數(shù)點后兩位。

5. 輸入— 接收用戶輸入的數(shù)據(jù)使用 input() 函數(shù)

平時的常規(guī)操作是,我們寫代碼然后運(yùn)行,pycharm會給出相應(yīng)的輸出,其實也可以接受用戶的輸入,這時就需要 input() 函數(shù):

password = input("請輸入密碼:")

############## 運(yùn)行結(jié)果 ###############

請輸入密碼:

這時系統(tǒng)就會接受用戶的輸入

password = input("請輸入密碼:")  # 使用password這個變量保存用戶輸入數(shù)據(jù)
print("密碼為:", password)

password_type = type(password)
print(password_type)

############## 運(yùn)行結(jié)果 ###############

請輸入密碼:123
密碼為: 123
<class 'str'>

總結(jié):input() 接收用戶的數(shù)據(jù),返回的數(shù)據(jù)類型是字符串

name = input("請輸入姓名:")
age = int(input("請輸入年齡:"))
address = input("請輸入地址:")

print("name: %s age: %d address: %s" % (name, age, address))

############## 運(yùn)行結(jié)果 ###############

請輸入姓名:宋江
請輸入年齡:50
請輸入地址:梁山
name: 宋江 age: 50 address: 梁山

前面說過input() 接收用戶的數(shù)據(jù),返回的是字符串,所以age = int(input("請輸入年齡:"))一定記得要將input() 返回的字符串轉(zhuǎn)成int型。因為print()后面的age: %d使用的是int型占位符%d ,如果上面不轉(zhuǎn)換成int型就會報錯說:
TypeError: %d format: a number is required, not str
當(dāng)然如果上面不轉(zhuǎn)換成int型,不報錯還有一種解決辦法就是print()后面的age: %s改成字符型占位符%s

練習(xí)題:從鍵盤上錄入蘋果的價格 、重量 ,輸出: 蘋果單價 9.00 元/斤,購買了 5.00 ,需要?付 45.00 元.

price = float(input("蘋果的單價為:"))
weight = float(input("購買的重量為:"))

result = price * weight
print("蘋果單價 %.2f 元/?,購買了 %.2f ?,需要?付 %.2f 元." % (price, weight, result))

############## 運(yùn)行結(jié)果 ###############

蘋果的單價為:9
購買的重量為:5
蘋果單價 9.00 元/?,購買了 5.00 ?,需要?付 45.00 元.

6. 運(yùn)算符

python支持以下幾種運(yùn)算符:


注意:混合運(yùn)算時,優(yōu)先級順序為: ** 高于 * / % // 高于 + - ,為了避免歧義,建議使用 ()來處理運(yùn)算符優(yōu)先級。
并且,不同類型的數(shù)字在進(jìn)行混合運(yùn)算時,整數(shù)將會轉(zhuǎn)換成浮點數(shù)進(jìn)行運(yùn)算。

+ 加

num1 = 5
num2 = 3

result = num1 + num2
print(result, type(result))

############## 運(yùn)行結(jié)果 ###############

8 <class 'int'>

- 減

num1 = 5
num2 = 3

result = num1 - num2
print(result, type(result))

############## 運(yùn)行結(jié)果 ###############

2 <class 'int'>

* 乘

num1 = 5
num2 = 3

result = num1 * num2
print(result, type(result))

############## 運(yùn)行結(jié)果 ###############

15 <class 'int'>

/ 除

注意:兩個數(shù)字相除,返回的數(shù)據(jù)類是float

num1 = 5
num2 = 3

result = num1 / num2
print(result, type(result))

############## 運(yùn)行結(jié)果 ###############

1.6666666666666667 <class 'float'>

// 取整除

num1 = 5
num2 = 3

result = num1 // num2
print(result, type(result))

############## 運(yùn)行結(jié)果 ###############

1 <class 'int'>

% 求余數(shù)

num1 = 5
num2 = 3

result = num1 % num2
print(result, type(result))

############## 運(yùn)行結(jié)果 ###############

2 <class 'int'>

** 求幾次方

num1 = 5
num2 = 3

result = num1 ** num2
print(result, type(result))

############## 運(yùn)行結(jié)果 ###############

125 <class 'int'>

7. 賦值運(yùn)算符

  • 賦值運(yùn)算符:=
  • 賦值運(yùn)算符:把等號右邊的結(jié)果賦值給等號左邊的變量,
  • 注意:有等號先看等號右邊的代碼
num = 1 * 3 / 2 + 1
print(num, type(num))

############## 運(yùn)行結(jié)果 ###############

2.5 <class 'float'>

同時給多個變量賦值, 多個變量之間使用逗號進(jìn)行分割

name, age = "關(guān)勝", 40  # 拆包
print(name, age)

############## 運(yùn)行結(jié)果 ###############

關(guān)勝 40

8. 復(fù)合賦值運(yùn)算符

+=

num1 = 5
num1 += 3  # => num1 = num1 + 3

print(num1)

############## 運(yùn)行結(jié)果 ###############

8

-=

num1 = 5
num1 -= 2  # => num1 = num1 - 2

print(num1)

############## 運(yùn)行結(jié)果 ###############

3

*=

num1 = 5
num1 *= 3 # => num1 = num1 * 3

print(num1)

############## 運(yùn)行結(jié)果 ###############

15

/=

num1 = 5
num1 /= 2  # => num1 = num1 / 2

print(num1)

############## 運(yùn)行結(jié)果 ###############

2.5

**=

num1 = 5
num1 **= 2 # => num1 = num1 ** 2
print(num1)

############## 運(yùn)行結(jié)果 ###############

25

//=

num1 = 5
num1 //= 4  # => num1 = num1 // 4
print(num1)

############## 運(yùn)行結(jié)果 ###############

1

9. 數(shù)據(jù)類型

為什么要進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換?
類型統(tǒng)一才能完成相關(guān)的計算操作

類型不統(tǒng)一進(jìn)行計算操作會報錯:

num1 = 1
my_str = "2"
result = num1 + my_str

print(result)

############## 運(yùn)行結(jié)果 ###############

TypeError: unsupported operand type(s) for +: 'int' and 'str'
常用的數(shù)據(jù)類型轉(zhuǎn)換

把字符串轉(zhuǎn)成int類型

num1 = 1
my_str = "2"

num2 = int(my_str)
print(num2, type(num2))

result = num1 + num2
print(result, type(result))

############## 運(yùn)行結(jié)果 ###############

2 <class 'int'>
3 <class 'int'>

把整型數(shù)字轉(zhuǎn)成字符串類型

num1 = 1
my_str = "2"

my_str1 = str(num1)
print(my_str1, type(my_str1))

result = my_str + my_str1 #注意字符型相加和數(shù)字整型相加的區(qū)別
print(result, type(result))

############## 運(yùn)行結(jié)果 ###############

1 <class 'str'>
21 <class 'str'>

把字符串轉(zhuǎn)成float類型

my_str3 = "3.14"
my_num = 5.16

my_float = float(my_str3)
result = my_float + my_num
print(result, type(result))

############## 運(yùn)行結(jié)果 ###############

8.3 <class 'float'>

把float類型轉(zhuǎn)成字符串類型

my_str3 = "3.14"
my_num = 5.16
my_str4 = str(my_num)
print(my_str4, type(my_str4))
result = my_str3 + my_str4
print(result, type(result))

############## 運(yùn)行結(jié)果 ###############

5.16 <class 'str'>
3.145.16 <class 'str'>

eval:獲取字符串中的原始數(shù)據(jù)

my_str = "321"
result = eval(my_str)

print(result, type(result))

############## 運(yùn)行結(jié)果 ###############

321 <class 'int'>

又舉例:

abc = 1
my_str = "abc"
result = eval(my_str) # abc

print(result, type(result))

############## 運(yùn)行結(jié)果 ###############

1 <class 'int'>

還舉例:

my_str = "[1, 2]"
result = eval(my_str)
print(result, type(result))

############## 運(yùn)行結(jié)果 ###############

[1, 2] <class 'list'>

ord:將一個字符轉(zhuǎn)換為它的ASCII整數(shù)值

my_char = "a"
result = ord(my_char)
print(result)

############## 運(yùn)行結(jié)果 ###############

97

chr:將ASCII整數(shù)值轉(zhuǎn)換為一個字符

result = chr(97)
print(result, type(result))

############## 運(yùn)行結(jié)果 ###############

a <class 'str'>

這些都是黑馬程序員Python基礎(chǔ)課程的課堂筆記哦~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內(nèi)容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 6,353評論 0 10
  • 前言 首先,本次立項項目只是為了做網(wǎng)絡(luò)爬蟲,本身不需要Python完整的知識鏈。因此,對于基本語法,我會浮光掠影,...
    OzanShareing閱讀 1,212評論 3 2
  • 2016的最后一天,是一個美的結(jié)束,也是一個好的開始 。 二零已經(jīng)過去,相信大家經(jīng)歷了許多事情,不知道大家會以什...
    石古仔閱讀 573評論 0 0
  • 官方發(fā)布:2018執(zhí)業(yè)藥師合格標(biāo)準(zhǔn)!附 星恒醫(yī)學(xué)考試網(wǎng) 10小時前 自從2018年執(zhí)業(yè)藥師資格考試成績公布以來,很...
    惠朋武者閱讀 1,231評論 0 0
  • 我 是一朵盛開的夏荷 多希望 你能看見現(xiàn)在的我 風(fēng)霜還不曾來侵蝕 秋雨還未滴落 青澀的季節(jié)又已離我遠(yuǎn)去 我以亭亭 ...
    靖路閱讀 252評論 0 0

友情鏈接更多精彩內(nèi)容