python 全棧開發,Day1,python開發day1

來源:互聯網
上載者:User

python 全棧開發,Day1,python開發day1
 一,Python介紹

python的出生與應用
  python的創始人為吉多·范羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·范羅蘇姆(中文名字:龜叔)為了在阿姆斯特丹打發時間,決心開發一個新的指令碼解釋程式,作為ABC語言的一種繼承。

 

目前Python主要應用領域:

 

二,電腦基礎

cpu:

  相當於人的大腦,運算與控制中心。
  速度 飛機
記憶體:

  時儲存,供給CPU資料。
  速度 高鐵。成本高,斷電即消失。
硬碟:

  相當於電腦的資料庫,儲存著大量的資料,檔案,音頻檔案。
  速度 走。成本低
作業系統:

  執行者,支配所有關係。windows,linux,mac...

 

python流行的原因
1.大量第三方庫
2.Diango

 

三、python的曆史

Python崇尚優美、清晰、簡單,是一個優秀並廣泛使用的語言。
python 2x和3x在同一年誕生,2x是10月,3是12月
python 2x:源碼混亂,重複代碼較多,冗餘。
python 3x: 源碼規範,崇尚優美、清晰,簡單

四、python 2x,python 3x的區別

1.print方法有區別
python 3x print('內容')
python 2x print()或者print '內容'

2.編碼方式不一樣
python 3x 預設編碼:utf-8
python 2x 預設編碼: ascii 只包含英文字母和特殊字元以及數字
不支援中文
解決方式:
在頭部增加

# -*- coding: utf-8 -*-

3.input不同
python 2x: raw_input()
python 3x: input()

五、開發語言的分類

解釋型:當程式運行時,將代碼一行一行的解釋成二進位,再運行。
優點:排錯快,開發效率高,可以跨平台
缺點:執行效率相對低
典型:python,

編譯型:將代碼一次性全部編譯成二進位,然後運行。
缺點:排錯慢,開發效率低,不能跨平台(作業系統)。
優點:執行效率高
典型:C

python的種類

CPython 預設解譯器,轉換為位元組碼,再轉換為c語言010101...
IPython
PyPy 一次性全部轉化成二進位,執行效率高。
Jython 把Python代碼編譯成Java位元組碼執行
IronPython

 

雖然解譯器不同,但是寫python代碼的規則還是統一的。

六、運行第一個python程式

如果想要windows電腦同時有2個python環境,Python2.7和Python3.5

先安裝python2.7

1、下載安裝包
https://www.python.org/downloads/
2、安裝
預設安裝路徑:C:\python27

勾選添加環境變數

 

再安裝python3.5

選擇自訂安裝,勾選添加環境變數

 安裝路徑設定為C:\Python35

進入目錄C:\Python27

將python.exe更改為python2.exe

開啟windows命令列模式

輸入python2就是2.7版本

輸入python就是3.5版本

建立一個test.py檔案,內容如下

print('你好,世界')

使用命令列方式

My Code路徑在E:\python_script\day1

進入目錄,執行代碼

使用python2執行

執行報錯

因為預設python2x編碼是ascii,不支援中文

在第一行添加

# -*- coding: utf-8 -*-

 再次執行,就可以了

 

如果python安裝完成之後,發現執行python有問題時
可以把所有python版本卸載,重新安裝一次,確保環境變數已經刪除,檔案尾碼是可以顯示的。

七、變數

變數:把程式啟動並執行中間結果臨時的存在記憶體裡,以便後續的代碼調用。

 

變數定義的規則:

1,變數必須由數字,字母,底線任意組合。
2,變數不能以數字開頭。
3,變數不能是python中的關鍵字。(不用背)
['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']
4,變數要具有可描述性。
5,變數不能是中文。
6,變數不能太長。
7,官方推薦:

#駝峰體AgeOfOldboy = 56NumberOfStudents = 100#底線age_of_oldboy = 56number_of_students = 80

 

 一般推薦使用第2種,也就是底線的方式。

下面幾個例子,判斷變數名是否合法

w__ = 22e_a_ = '太白'e$ = 'fdsa'-_ = '15'2g = 33__ = '老村長'

3,4,5行的變數,是不合法的,其他的都是合法的。

 

賦值計算
先計算等號右邊的,把計算的值賦值給左邊的

python是解釋型語言,代碼是一行一行執行
後面的變數會覆蓋前面的。

age1 = 12age2 = age1age3 = age2age2 = 6print(age1,age2,age3)

執行輸出

12 6 12

看一個圖

age1~3的值,儲存在記憶體中。當age2等於6時,age2值的指向就發生了變化,值為6

 

7.常量
常量即指不變的量,如pai 3.141592653..., 或在程式運行過程中不會改變的量
預設全部大寫的變數,稱之為常量。

CITY_LIST = 'beijing'

 

11.注釋
為什麼有注釋?
協助你記起之前的代碼,或者協助別人看懂你的代碼
不宜多,精就行

單行注釋: #被注釋內容
多行注釋: '''被注釋內容''' 或者 """被注釋內容"""

#定義一個變數name1 = "taibai"'''虞美人·碧苔深鎖長門路清代:王國維碧苔深鎖長門路。總為蛾眉誤。自來積毀骨能銷。何況真紅一點臂砂嬌。妾身但使分明在。肯把朱顏悔。從今不複夢承恩。且自簪花坐賞鏡中人。'''

 

八、基礎資料類型初始

int(整型)

在32位機器上,整數的位元為32位,取值範圍為-2**31~2**31-1,即-2147483648~2147483647

在64位系統上,整數的位元為64位,取值範圍為-2**63~2**63-1,即-9223372036854775808~9223372036854775807

long(長整型)

跟C語言不同,Python的長整數沒有指定位寬,即:Python沒有限制長整數數值的大小,但實際上由於機器記憶體有限,我們使用的長整數數值不可能無限大。

注意,自從Python2.2起,如果整數發生溢出,Python會自動將整數資料轉換為長整數,所以如今在長整數資料後面不加字母L也不會導致嚴重後果了。
注意:在Python3裡不再有long類型了,全都是int長整型

字串類型(str)

在Python中,加了引號的字元都被認為是字串!

msg = "My name is xiao,I'm 22 years old!"num = '12'

這種會出錯

msg = "My name is xiao,I"m 22 "years old!"

雙引號,只看2頭的,從左至右


一般3個引號的,用到多行的情境,有行號符的。
一行很少用3個引號的

shi = '''馬汗踏成泥,朝馳幾萬蹄。雪中行地角,火處宿天倪。塞迥心常怯,鄉遙夢亦迷。那知故園月,也到鐵關西。'''print(shi)

執行輸出

馬汗踏成泥,朝馳幾萬蹄。
雪中行地角,火處宿天倪。
塞迥心常怯,鄉遙夢亦迷。
那知故園月,也到鐵關西。

 

3個單引號,沒有賦值,是用來注釋的

比如上面的唐詩《虞美人·碧苔深鎖長門路》


字串只能相加和相乘

 相加

n1 = '她的名字是'n2 = '南宮紫菱'n3 = n1 + n2print(n3)

執行輸出

她的名字是南宮紫菱

 

相乘

n1 = '我好愛你!'print(n1 * 3)

執行輸出

我好愛你!我好愛你!我好愛你!

九、布爾值(True,False)

布爾類型很簡單,就兩個值 ,一個True(真),一個False(假), 主要用記邏輯判斷

print(1 > 2)

執行輸出

False

 

返回false
布爾值是不帶引號的

print(1 > 2 and 3 < 4 or 4 > 5)

執行輸出

False

布爾值判斷時,如果出現false,結果返回false

九、查看資料類型

使用type()方法

n1 = 'nan'n2 = Falsen3 = 'False'print(type(n1))print(type(n2))print(type(n3))

執行輸出

<class 'str'>
<class 'bool'>
<class 'str'>

 

十、使用者互動 input

input出來的資料類型,都是字串

name = input('請輸入你的名字: ')age = input('請輸入你的年齡: ')hobby = input('請輸入你的愛好: ')s = '我的名字是' + name + '\n我的年齡是' + age + '\n我的愛好是' + hobbyprint(s)

執行效果

十一、if語句

第一種結構

if 條件:    結果

舉例

if 3 > 2:    print(666)

執行輸出

666

 

第二種結構

if 條件:    結果else:    結果

舉例

if 3 > 2:    print(666)else:    print(333)

執行輸出

666

 

第三種結構

if 條件1:    結果1elif 條件2:    結果2elif 條件3:    結果3

舉例

choice = input('請輸入你猜的數字:')if choice == '2':    print('我請你吃飯')elif choice == '6':    print('免一周作業')elif choice == '3':    print('一起去玩耍')

執行輸出

 

第4種結構

if 條件1:    結果1elif 條件2:    結果2elif 條件3:    結果3else:    結果4

舉例

choice = input('請輸入你猜的數字:')if choice == '2':    print('我請你吃飯')elif choice == '6':    print('免一周作業')elif choice == '3':    print('一起去玩耍')else:    print('輸入錯誤')

執行輸出

 

== 表示做比較
= 表示賦值

 

第5種結構

if 條件:    if 條件:        結果    else:        結果else:    結果

只要需求存在,就可以一直嵌套if

舉例

age = int(input('請猜我的年齡:'))if True:    if age == 18:        print('恭喜你猜對了')    else:        print('這都看不出來...')else:    print('輸入錯誤')

執行輸出

 

字串之間不能比較大小,只能比較相等

int ---> str str(12)  轉換成字串,使用str()
str ---> int int(12) 全部由數字組成的字串才能轉化為數字

 

十二、while迴圈

用來執行重複的代碼

while True:    print('癢')    print('涼涼')    print('體面')    print('社會搖')

執行輸出


涼涼
體面
社會搖

...

 

while True 代表死迴圈

 

另外一個例子

print(222)while True:    print(111)    print(333)print(444)

執行輸出

222

111
333

111
333

....

 

444永遠不會執行

 

跳出迴圈的條件:
1.改變條件
2.breck

 

標誌位flag


從1列印到100

#標誌位flag = True#初始值count = 1while flag:    #第一次,列印初始值。之後列印自增值    print(count)    #迴圈一次,自增1    count = count + 1    #當等於100時,迴圈終止    if count == 100:        #列印100        print(count)        flag = False

執行輸出

1

2

3

...

100

 

第2種寫法

#初始值count = 1while count < 101:    #第一次,列印初始值。之後列印自增值    print(count)    #迴圈一次,自增1    count = count + 1

執行輸出,效果同上

 

breck:結束迴圈

 

while True:    print(111)    print(222)    break    print(333)

執行輸出

111

222


遇到breck,終止迴圈,下面的代碼不執行

 

continue:結束本次迴圈,繼續下一次迴圈。
continue 相當於見底了

while True:    print(111)    print(222)    continue    print(333)

執行輸出

111

222

....

 

333永遠不會執行,為什麼呢?遇到continue時,下面代碼不執行,繼續執行下一次迴圈,由於迴圈無法終止,所以最後一行代碼,始終不會執行。

 

使用breck方式,列印1到100

#初始值count = 1while True:    #第一次,列印初始值。之後列印自增值    print(count)    #迴圈一次,自增1    count = count + 1    if count == 101:        break        執行輸出1到100

執行輸出1到100

十三、相關練習題

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、使用者登陸(三次機會重試)

 

習題分析:

1、使用while迴圈輸入 1 2 3 4 5 6 8 9 10

觀察題目,發現1~10,少了一個數字7

思路如下:

1.先輸出1~10

#初始值count = 0while count < 10:    count = count + 1    print(count)

執行輸出1~10

2.遇到7的時候,不執行print()就可以了

如果直接用breck,那麼迴圈就終止了。這個時候,需要用到continue了

最終代碼如下:

#初始值count = 0while count < 10:    #自增1    count = count + 1    #判斷為7時,終止此次迴圈,繼續下一次迴圈    if count == 7:        continue    print(count)

執行輸出

1
2
3
4
5
6
8
9
10

 

 2、求1-100的所有數的和

思路如下:

1.先輸出1~100

#初始值count = 0while count < 100:    #自增1    count = count + 1    print(count)

2.需要定義一個總和變數the_sum,每次要向前推進加數字,就比如吃豆遊戲一樣

#初始值count = 0#總和的初始值the_sum = 0while count < 100:    #自增1    count = count + 1    the_sum = the_sum + count    print(the_sum)print(the_sum)

執行輸出

1
3
6

...

5050

 

上面的代碼,我把每次相加的結果給列印出來了。

0+1+2+3+....+100

計算過程是從左至右的,0+1=1,再計算1+2=3,再計算3+3=6....

解釋一下代碼執行過程

第一次count=0,the_sum=0 執行到第7行時,count=1,那麼the_sum結果1,所以輸出1

第二次count=1(因為whlie迴圈會迭代),執行到第7行時,count=2(1+1=2),那麼the_sum的結果為3。因為第一次the_sum的值為1,所以這裡為1+2=3

第三次,count=2,執行到第7行時,count=3,那麼the_sum的結果為6(3+3=6)

所以最終結果為4950+100=5050

 

 3、輸出 1-100 內的所有奇數

先來介紹求奇數和偶數的方法

用數字和2整除,取餘 %
等於1為奇數
等於0為偶數

 

思路和第2題類似

1.先輸出1~100

#初始值count = 0while count < 100:    #自增1    count = count + 1    print(count)

執行輸出1~100

2.用count和2整除取餘,如果為1,輸出數字,否則不輸出

#初始值count = 0while count < 100:    #自增1    count = count + 1    #取餘,和2整除    yushu = count % 2
#為1表示奇數 if yushu == 1: print(count)

執行輸出

1
3
5

...

99

 

 4、輸出 1-100 內的所有偶數

方法和第3題類似,把取餘部分修改一下

#初始值count = 0while count < 100:    #自增1    count = count + 1    #取餘,和2整除    yushu = count % 2    #為0表示偶數    if yushu == 0:        print(count)

執行輸出

2
4
6

...

100

 

 5、求1-2+3-4+5 ... 99的所有數的和

從這個公式可以發現出規律

為偶數的是做減法

為奇數的是做加法

 

思路:

在第二個題目基礎上來做,第二個是1到100的求和

1.先把第2題的代碼貼過來

2.在此基礎上做一下稍微的改動,最終代碼如下:

# 初始值count = 0#計算最終值的初始值final_value = 0while count < 99:    #自增1    count = count + 1    #取餘,和2整除    yushu = count % 2    # 為1表示奇數    if yushu == 1:        # 做加法運算        final_value = final_value + count        print(final_value)    # 偶數    else:        # 做減法運算        final_value = final_value - count        print(final_value)print(final_value)

執行輸出

1
-1
2

...

50

最終結果為50

 

注意: 這裡最後一個數字是99,而不是100,所以是while count < 99

上面的代碼,我把每次計算的結果給列印出來了。

0+1-2+3-4....+99

計算過程是從左至右的,0+1=1,再計算1-2=-1,再計算-1+3=2....

解釋一下代碼執行過程

第一次count=0,final_value=0,執行到第7行時,count=1。做取餘計算 1 / 2,結果為1。

if判斷等於1,結果成立,所以為奇數。計算等式final_value + count  也就是0+1=1,輸出1

第二次count=1,final_value=1,執行到第7行時,count=2。做取餘計算 2 / 2,結果為0。

if判斷等於1,結果不成立,所以為偶數。計算等式final_value - count  也就是1-2=-1,輸出-1

第三次count=2,final_value=-1,執行到第7行時,count=3。做取餘計算 3 / 2,結果為1。

if判斷等於1,結果成立,所以為奇數。計算等式final_value + count  也就是-1+3=2,輸出2

所以最終結果為-49+99=50

 

6、使用者登陸(三次機會重試)
思路

1.先來做簡單的登入驗證

username = input('請輸入使用者名稱:')password = input('請輸入密碼:')if username == "xiao" and password == '123':    print('ok')else:    print('登入失敗超過三次,請稍後重試!')

2.用while迴圈來執行輸入框,可以無限次嘗試登入

while True:    username = input('請輸入使用者名稱:')    password = input('請輸入密碼:')    if username == "xiao" and password == '123':        print('ok')    else:        print('登入失敗超過三次,請稍後重試!')

3.做一個變數用來記錄登入失敗次數,初始為0,如果登入失敗,次數加1。達到3次,直接結束程式。

#登入次數logins = 0while True:
#判斷登入次數 if logins == 3: print('登入失敗超過三次,請稍後重試!') break username = input('請輸入使用者名稱:') password = input('請輸入密碼:')
#判斷使用者名稱和密碼 if username == "xiao" and password == '123': print('ok') else:
#次數加1 logins += 1 print('登入失敗!')

執行輸出

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.