1. 程式人生 > >Python-day01

Python-day01

一行 python代碼 ipython clas 是否 執行效率 條件 convert 計算

                                  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

混合型:

    JAVA  C#

解釋器:

      CPython

  當我們從Python官方網站下載並安裝好Python 3.6後,我們就直接獲得了一個官方版本的解釋器:CPython。這個解釋器是用C語言開發的,所以叫CPython。在命令行下運行python就是啟動CPython解釋器。CPython是使用最廣的Python解釋器。教程的所有代碼也都在CPython下執行。

      IPython

  IPython是基於CPython之上的一個交互式解釋器,也就是說,IPython只是在交互方式上有所增強,但是執行Python代碼的功能和CPython是完全一樣的。好比很多國產瀏覽器雖然外觀不同,但內核其實都是調用了IE。CPython用>>>

作為提示符,而IPython用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