python 全棧開發,Day1(python介紹,變量,if,while)

 python基礎一

 

一,Python介紹

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

 

目前Python主要應用領域:python

  1. 雲計算: 雲計算最火的語言, 典型應用OpenStack
  2. WEB開發: 衆多優秀的WEB框架,衆多大型網站均爲Python開發,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
  3. 科學運算、人工智能: 典型庫NumPy, SciPy, Matplotlib, Enthought librarys,pandas
  4. 系統運維: 運維人員必備語言
  5. 金融:量化交易,金融分析,在金融工程領域,Python不但在用,且用的最多,並且重要性逐年提升。緣由:做爲動態語言的Python,語言結構清晰簡單,庫豐富,成熟穩定,科學計算和統計分析都很牛逼,生產效率遠遠高於c,c++,java,尤爲擅長策略回測
  6. 圖形GUI: PyQT, WxPython,TkInter

 

二,計算機基礎

cpu:linux

  至關於人的大腦,運算與控制中心。
  速度 飛機
內存:c++

  時存儲,供給CPU數據。
  速度 高鐵。成本高,斷電即消失。
硬盤:數據庫

  至關於電腦的數據庫,存儲着大量的數據,文件,音頻文件。
  速度 走。成本低
操做系統:windows

  執行者,支配全部關係。windows,linux,mac...框架

 

python流行的緣由
1.大量第三方庫
2.Diango運維

 

3、python的歷史

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

4、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()

5、開發語言的分類

解釋型:當程序運行時,將代碼一行一行的解釋成二進制,再運行。
優勢:排錯快,開發效率高,能夠跨平臺
缺點:執行效率相對低
典型:python,

編譯型:將代碼一次性所有編譯成二進制,而後運行。
缺點:排錯慢,開發效率低,不能跨平臺(操做系統)。
優勢:執行效率高
典型:C

python的種類

CPython 默認解釋器,轉換爲字節碼,再轉換爲c語言010101...
IPython
PyPy 一次性所有轉化成二進制,執行效率高。
Jython 把Python代碼編譯成Java字節碼執行
IronPython

 

雖然解釋器不一樣,可是寫python代碼的規則仍是統一的。

6、運行第一個python程序

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

先安裝python2.7

一、下載安裝包
https://www.python.org/downloads/
二、安裝
默認安裝路徑:C:\python27

勾選添加環境變量

 

再安裝python3.5

選擇自定義安裝,勾選添加環境變量

 安裝路徑設置爲C:\Python35

進入目錄C:\Python27

將python.exe更改成python2.exe

打開windows命令行模式

輸入python2就是2.7版本

輸入python就是3.5版本

新建一個test.py文件,內容以下

print('你好,世界')

使用命令行方式

個人代碼路徑在E:\python_script\day1

進入目錄,執行代碼

使用python2執行

執行報錯

由於默認python2x編碼是ascii,不支持中文

在第一行添加

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

 再次執行,就能夠了

 

若是python安裝完成以後,發現執行python有問題時
能夠把全部python版本卸載,從新安裝一次,確保環境變量已經刪除,文件後綴是能夠顯示的。

7、變量

變量:把程序運行的中間結果臨時的存在內存裏,以便後續的代碼調用。

 

變量定義的規則:

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 = 56
NumberOfStudents = 100
#下劃線
age_of_oldboy = 56
number_of_students = 80

 

 通常推薦使用第2種,也就是下劃線的方式。

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

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

3,4,5行的變量,是不合法的,其餘的都是合法的。

 

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

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

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

執行輸出

12 6 12

看一個圖

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

 

7.常量
常量即指不變的量,如pai 3.141592653..., 或在程序運行過程當中不會改變的量
默認所有大寫的變量,稱之爲常量。

CITY_LIST = 'beijing'

 

11.註釋
爲何有註釋?
幫助你記起以前的代碼,或者幫助別人看懂你的代碼
不宜多,精就行

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

#定義一個變量
name1 = "taibai"
'''
虞美人·碧苔深鎖長門路

清代:王國維

碧苔深鎖長門路。總爲蛾眉誤。自來積毀骨能銷。況且真紅一點臂砂嬌。
妾身但使分明在。肯把朱顏悔。從今不復夢承恩。且自簪花坐賞鏡中人。
'''

 

8、基礎數據類型初始

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 + n2
print(n3)

執行輸出

她的名字是南宮紫菱

 

相乘

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

執行輸出

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

9、布爾值(True,False)

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

print(1 > 2)

執行輸出

False

 

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

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

執行輸出

False

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

9、查看數據類型

使用type()方法

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

執行輸出

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

 

10、用戶交互 input

input出來的數據類型,都是字符串

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

執行效果

11、if語句

第一種結構

if 條件:
    結果

舉例

if 3 > 2:
    print(666)

執行輸出

666

 

第二種結構

if 條件:
    結果
else:
    結果

舉例

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

執行輸出

666

 

第三種結構

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

舉例

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

執行輸出

 

第4種結構

if 條件1:
    結果1
elif 條件2:
    結果2
elif 條件3:
    結果3
else:
    結果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) 所有由數字組成的字符串才能轉化爲數字

 

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 = 1
while flag:
    #第一次,打印初始值。以後打印自增值
    print(count)
    #循環一次,自增1
    count = count + 1
    #當等於100時,循環終止
    if count == 100:
        #打印100
        print(count)
        flag = False

執行輸出

1

2

3

...

100

 

第2種寫法

#初始值
count = 1
while 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 = 1
while True:
    #第一次,打印初始值。以後打印自增值
    print(count)
    #循環一次,自增1
    count = count + 1
    if count == 101:
        break
        執行輸出1到100

執行輸出1到100

十3、相關練習題

一、使用while循環輸入 1 2 3 4 5 6     8 9 10

二、求1-100的全部數的和

三、輸出 1-100 內的全部奇數

四、輸出 1-100 內的全部偶數

五、求1-2+3-4+5 ... 99的全部數的和

六、用戶登錄(三次機會重試)

 

習題分析:

一、使用while循環輸入 1 2 3 4 5 6 8 9 10

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

思路以下:

1.先輸出1~10

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

執行輸出1~10

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

若是直接用breck,那麼循環就終止了。這個時候,須要用到continue了

最終代碼以下:

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

執行輸出

1
2
3
4
5
6
8
9
10

 

 二、求1-100的全部數的和

思路以下:

1.先輸出1~100

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

2.須要定義一個總和變量the_sum,每次要向前推動加數字,就好比吃豆遊戲同樣

#初始值
count = 0
#總和的初始值
the_sum = 0
while 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

 

 三、輸出 1-100 內的全部奇數

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

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

 

思路和第2題相似

1.先輸出1~100

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

執行輸出1~100

2.用count和2整除取餘,若是爲1,輸出數字,不然不輸出

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

執行輸出

1
3
5

...

99

 

 四、輸出 1-100 內的全部偶數

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

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

執行輸出

2
4
6

...

100

 

 五、求1-2+3-4+5 ... 99的全部數的和

從這個公式能夠發現出規律

爲偶數的是作減法

爲奇數的是作加法

 

思路:

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

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

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

# 初始值
count = 0
#計算最終值的初始值
final_value = 0
while 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

 

六、用戶登錄(三次機會重試)
思路

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 = 0
while True:
    #判斷登陸次數
    if logins == 3:
        print('登陸失敗超過三次,請稍後重試!')
        break
    username = input('請輸入用戶名:')
    password = input('請輸入密碼:')
    #判斷用戶名和密碼
    if username == "xiao" and password == '123':
        print('ok')
        break
    else:
        #次數加1
        logins += 1
        print('登陸失敗!')

執行輸出

相關文章
相關標籤/搜索