Python-day01
2018-04-07
一、Python 介紹
python 2.X 在2020以後不再更新代碼。
Python 2.x 與 Python 3.x 的區別
python2.x
語法:重復,不規範
編碼:默認ASCII,無法顯示中文。解決方式: # -*- encoding:UTF-8 -*-
數據類型:有long int:長整型
語法格式:print ‘hello world‘ 或 print (‘hello world‘)
python 3.x
語法:整合源碼,清晰簡潔,優美
編碼:默認UTF-8
數據類型:無 long int:長整型
語法格式:print (‘hello world‘)
python語言劃分
編譯型:將代碼全部一次性編譯成二進制再執行。
代表語言:Python JavaScript ruby PHP Perl
缺點:開發效率低,不能跨平臺,例如C語言 優點:執行效率高,一般寫底層,代表語言C 解釋型:當程序開始執行時,它將一行一行的解釋成二進制,執行
代表語言:C C++ go swift
缺點:執行效率低 優點:開發效率高,可以跨平臺,代表語言Python混合型:
解釋器:
CPython
當我們從Python官方網站下載並安裝好Python 3.6後,我們就直接獲得了一個官方版本的解釋器:CPython。這個解釋器是用C語言開發的,所以叫CPython。在命令行下運行python
就是啟動CPython解釋器。CPython是使用最廣的Python解釋器。教程的所有代碼也都在CPython下執行。
IPython
IPython是基於CPython之上的一個交互式解釋器,也就是說,IPython只是在交互方式上有所增強,但是執行Python代碼的功能和CPython是完全一樣的。好比很多國產瀏覽器雖然外觀不同,但內核其實都是調用了IE。CPython用>>>
In [
序號
]:
作為提示符。
PyPy
PyPy是另一個Python解釋器,它的目標是執行速度。PyPy采用JIT技術,對Python代碼進行動態編譯(註意不是解釋),所以可以顯著提高Python代碼的執行速度。
絕大部分Python代碼都可以在PyPy下運行,但是PyPy和CPython有一些是不同的,這就導致相同的Python代碼在兩種解釋器下執行可能會有不同的結果。如果你的代碼要放到PyPy下執行,就需要了解PyPy和CPython的不同點。
Jython
Jython是運行在Java平臺上的Python解釋器,可以直接把Python代碼編譯成Java字節碼執行。IronPython
IronPython和Jython類似,只不過IronPython是運行在微軟.Net平臺上的Python解釋器,可以直接把Python代碼編譯成.Net的字節碼。
小結:
Python的解釋器很多,但使用最廣泛的還是CPython。如果要和Java或.Net平臺交互,最好的辦法不是用Jython或IronPython,而是通過網絡調用來交互,確保各程序之間的獨立性。
Python 基礎知識
變量
將程序的中間結果暫時存在內存中,以便後續程序引用
1、組成:數字,字母下劃線組成,不能是數字開頭
2、不能使用關鍵字:
以下關鍵字不能聲明為變量名- [‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘exec‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]
3、不能中文,不能過長
4、建議格式:birth_date_time
常量
一直不變的量 約定俗成,全部大寫,放在文件最上面 例如:BIRTH_OF_CHINA = 19491001註釋
單行註釋:#
多行註釋:‘‘‘ ‘‘‘ 或 """ """
三引號的另一個功能:格式化輸出
info = ‘‘‘
------------ info of %s -----------
Name : %s #代表 name
Age : %d #代表 age
job : %s #代表 job
Hobbie: %s #代表 hobbie
------------- end -----------------
‘‘‘ %(name,name,int(age),job,hobbie)
print(info)
註意%d 表示變量為數字,所以需要轉化為數字形式使用int()函數
雙引號與單引號作用一樣,但是一下情況必須用雙引號:
""" bob‘s hobby is basketball """
程序交互
name = input (‘please input your name‘)
註:input 接收的字符全部存儲為字符串格式,即使輸入的是數字,若想轉化為字符串需要 int(name)
基礎數據類型
整數類型(int)
字符串類型(str)
在Python中,加了引號的字符都被認為是字符串!
字符串拼接
>>> name
‘Alex Li‘
>>> age
‘22‘
>>>
>>> name + age #相加其實就是簡單拼接
‘Alex Li22‘
>>>
>>> name * 10 #相乘其實就是復制自己多少次,再拼接在一起
‘Alex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex Li‘
註意,字符串的拼接只能是雙方都是字符串,不能跟數字或其它類型拼接
布爾值(True,False)
布爾類型很簡單,就兩個值 ,一個True(真),一個False(假), 主要用記邏輯判斷
但其實你們並不明白對麽? let me explain, 我現在有2個值 , a=3, b=5 , 我說a>b你說成立麽? 我們當然知道不成立,但問題是計算機怎麽去描述這成不成立呢?或者說a< b是成立,計算機怎麽描述這是成立呢?
沒錯,答案就是,用布爾類型
>>> a=3
>>> b=5
>>>
>>> a > b #不成立就是False,即假
False
>>>
>>> a < b #成立就是True, 即真
True
基本運算符
運算符
計算機可以進行的運算有很多種,可不只加減乘除這麽簡單,運算按種類可分為算數運算、比較運算、邏輯運算、賦值運算、成員運算、身份運算、位運算,今天我們暫只學習算數運算、比較運算、邏輯運算、賦值運算
算數運算
比較運算
賦值運算
邏輯運算
針對邏輯運算的進一步研究:
1,在沒有()的情況下not 優先級高於 and,and優先級高於or,即優先級關系為( )>not>and>or,同一優先級從左往右計算。
例題:
判斷下列邏輯語句的True,False
1,3>4 or 4<3 and 1==1
2,1 < 2 and 3 < 4 or 1>2
3,2 > 1 and 3 < 4 or 4 > 5 and 2 < 1
4,1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8
5,1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
6,not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
2 , x or y , x為真,值就是x,x為假,值是y;
x and y, x為真,值是y,x為假,值是x。
in,not in :
判斷子元素是否在原字符串(字典,列表,集合)中:
流程控制之
if語句
逐行判斷,符合條件即推出,否則繼續向下運行。
if 條件1:
結果1
elif 條件2:
結果2
else:
結果3
while語句
符合條件就一直運行
while 1< 2:
print ()
else 只要沒有break跳出循環,就可以運行else。
continue 跳出本次循環,繼續下一次循環。
break 跳出整個循環結束while。
flag = true
for循環語句
有限循環
x 可以是字符串 字典 列表 元祖
for i in x:
do...
else
break
continue
相關練習題
1、使用while循環輸入 1 2 3 4 5 6 8 9 10
2、求1-100的所有數的和
3、輸出 1-100 內的所有奇數
4、輸出 1-100 內的所有偶數
5、求1-2+3-4+5 ... 99的所有數的和
6、用戶登陸(三次機會重試)
Python-day01