Python入門篇-基礎語法

                    Python入門篇-基礎語法
html

                                           做者:尹正傑python

版權聲明:原創做品,謝絕轉載!不然將追究法律責任。git

 

 

 

一.編程基礎算法

1>.程序編程

  一組能讓計算機識別和執行的指令。數組

程序
1>.算法+ 數據結構= 程序
2>.數據一切程序的核心
3>.數據結構是數據在計算機中的類型和組織方式
4>.算法是處理數據的方式,算法有優劣之分


寫程序難點
1>.理不清數據
2>.不清處理方法
3>.沒法把數據設計轉換成數據結構,沒法把處理方法轉換成算法
4>.沒法用設計範式來進行程序設計
5>.世間程序皆有bug,但不會debug

2>.電子計算機數據結構

  可以執行程序的機器。架構

3>.現代計算機app

   艾倫·麥席森·圖靈(Alan Mathison Turing,1912年6月23日-1954年6月7日),出生於英國倫敦,畢業於普林斯頓大學,英國數學家、邏輯學家,被稱爲計算機科學之父,人工智能之父。圖靈提出的著名的圖靈機模型爲現代計算機的邏輯工做方式奠基了基礎。ide

   馮·諾依曼(John von Neumann,1903~1957),出生於匈牙利,畢業於蘇黎世聯邦工業大學,數學家,被後人稱爲「計算機之父」和「博弈論之父」。

4>.馮·諾依曼體系架構

   CPU由運算器和控制器組成。

  運算器,完成各類算術運算,邏輯運算,數據傳輸等數據加工處理。

  控制器,控制程序的執行。

  存儲器,用於記憶程序和數據,例如內存。

  輸入設備,將數據或者程序輸入到計算機中,例如鍵盤,鼠標。

  輸出設備,將數據或程序的處理結果展現給用戶,例如顯示器,打印機等。

5>. 計算機語言

  人與計算機之間交互的語言。

6>.機器語言

  必定位數組成二進制的0和1的序列,稱爲機器指令。機器指令的集合就是機器語言。

  與天然語言差別太大,難學、難懂、難寫、難記、難查錯。

7>.彙編語言

用一些助記符號替代機器指令,稱爲彙編語言。ADD A,B 指的是將寄存器A的數與寄存器B的數相加獲得的數放到寄存器A中。

彙編語言寫好的程序須要彙編程序轉換成機器指令。

彙編語言只是稍微好記了些,能夠認爲就是機器指令對應的助記符。只是符號自己接近天然語言。

 

二.語言分類

1>.低級語言

面向機器的語言,包括機器語言、彙編語言

不一樣的機器不能通用,不一樣的機器須要不一樣的機器指令或者彙編程序

2>.高級語言 

接近人類的天然語言和數學語言的計算機語言。

高級語言首先要書寫源程序,經過編譯程序把源程序轉換成機器指令的程序。

1954年正式發佈的Fortran語言是最先的高級語言,本意是公式翻譯

人們只須要關心怎麼書寫源程序,針對不一樣機器的編譯的事交給編譯器關心處理

3>.低級語言到高級語言的區別

語言越高級,越接近人類的天然語言和數學語言。

語言越低級,越能讓機器理解。

高級語言和低級語言之間須要一個轉換的工具:編譯器、解釋器。

C、C++等語言的源代碼須要本地編譯。

Java、Python、C#的源代碼須要被解釋器編譯成中間代碼(Bytecode),在虛擬機上運行。

4>.編譯語言和解釋器語言的區別

編譯語言:
    把源代碼轉換成目標機器的CPU指令,便可以直接執行,速度快。

解釋語言:
    解釋後轉換成字節碼,運行在虛擬機上,解釋器執行中間代碼,即邊解釋邊執行,速度慢。

5>.高級語言的發展

非結構化語言
1>.編號或標籤、GOTO,子程序能夠有多個入口和出口
2>.有分支、循環

結構化語言
1>.任何基本結構只容許是惟一入口和惟一出口
2>.順序、分支、循環,廢棄GOTO

面嚮對象語言
1>.更加接近人類認知世界的方式,萬事萬物抽象成對象,對象間關係抽象成類和繼承
2>.封裝、繼承、多態

函數式語言
1>.古老的編程範式,應用在數學計算、並行處理的場景。引入到了不少現代高級語言中
2>.函數是「一等公民」,高階函數

 

三.Python解釋器

官方CPython
    C語言開發,最普遍的Python解釋器

IPython
    一個交互式、功能加強的Cpython

PyPy
    Python語言寫的Python解釋器,JIT技術,動態編譯Python代碼

Jython
    Python的源代碼編譯成Java的字節碼,跑在JVM上

IronPython
    p 與Jython相似,運行在.Net平臺上的解釋器,Python代碼被編譯成.Net的字節碼

 

四.基礎語法

1>.註釋

#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com
以「#」號開頭的通常都是註釋行
'''
    這是註釋代碼!
    該註釋是用來解釋某個函數或者類的功能時,一行說明不了須要多行進行註釋時使用
'''
以單引號註釋的段落
"""
    這是註釋代碼!
    該註釋是用來解釋某個函數或者類的功能時,一行說明不了須要多行進行註釋時使用

"""
以雙引號註釋的段落

2>.數字

一.整數
    不區分long和int。
    進制有不一樣的表示形式:0xa,0o10,0b10
    布爾值(bool):2個值True和False

二.浮點數
    如3.1415926,9.18等等。

三.複數
    1+2j

3>.字符串

使用' " 單雙引號引用的字符的序列.

'''和""" 單雙三引號,能夠跨行、能夠在其中自由的使用單雙引號.

在字符串前面加上r或者R前綴,表示該字符串不作特殊的處理.

4>.轉義序列

 \\, \t, \r, \n, \', \",

 前綴r,把裏面的全部字符當普通字符對待

5>.縮進

未使用C等語言的花括號,而是採用縮進的方式表示層次關係。

咱們在開發者推薦約定使用4個空格縮進。

6>.續行

在行尾使用 「\」
    
若是使用各類括號,認爲括號內是一個總體,內部跨行不用 「\」

7>.標識符(能夠理解是變量,常量等的統稱)

1. 一個名字,用來指代一個值
2. 只能字母、下劃線和數字
3. 只能以字母或下劃線開頭
4. 不能是python的關鍵字,例如def、class就不能做爲標識符
5. Python是大小寫敏感的

約定:
不容許使用中文
不容許使用歧義單詞,例如class_
在python中不要隨便使用下劃線開頭的表示符

8>.常量

一旦賦值就不能改變值的標識符

python中沒法定義常量

9>.字面常量

一個單獨的量,例如十二、"abc"'2341356514.03e-9'

10>.變量

賦值後,能夠改變值的標識符

 

五.Python的語言類型

Python是動態語言、強類型語言

靜態編譯語言
    實現聲明變量類型,類型不能再改變
    編譯時檢查

動態編譯語言
    不用事先聲明類型,隨時能夠賦值爲其餘類型
    編程時不知道是什麼類型,很難推斷

強類型語言
    不一樣類型之間操做,必須先強制類型轉換爲同一類型。print('a'+1)
    
弱類型語言
    不一樣類型間能夠操做,自動隱式轉換,JavaScript中console.log(1+'a')

 

六.運算符(Operator)

1>.算術運算符

  如下例子a = 10 , b= 20。

2>.比較運算符

  如下例子a = 10 , b= 20。

 

3>.賦值運算符

  

4>.按位運算(我們也能夠稱爲「二進制運算符」)

  咱們都知道,計算機處理數據的時候都會把數據最終變成0和1的二進制來進行運算,也就是說,計算機其實只認識0和1, 那按位運算其實就是把數字轉換成二進制的形式後再進行位運算的。直接看例子,咱們設定a=60; b=13; 要進行位運算,就得把他們先轉成2進制格式,那0和1是如何表示60和13的呢? 

  好,知道了10進制如何轉2進制了以後,咱們接着來看,若是進行2個10進制數字的位運算。

 

  看下面的運算過程:

 

5>.成員運算符

  in

  not in

6>.身份運算符

  is

  is not

7>.運算符優先級,由低到高(瞭解便可,不用背下來)

算數運算符> 位運算符> 身份運算符> 成員運算符> 邏輯運算符

使用方法:
    記不住,用括號
    長表達式,多用括號,
    易懂、易讀

8>.三目運算符(三元運算符)

#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com



# #輸入兩個數,比較大小後,從小到大升序打印
num_1 = int(input("請輸入第一個數字:>>> "))
num_2 = int(input("請輸入第二個數字:>>> "))

# if num_1 > num_2:
#     print(num_2,num_1)
# else:
#     print(num_1,num_2)

"""
Python沒有三目運算符,但提供了:
    真值 if 條件 else 假值

接下來咱們將上面4行代碼使用Python中的三目運算符實現,上面4行就能夠簡寫爲一行啦!功能能實現,就是可讀性較差喲!
"""
print(num_2,num_1) if  num_1 > num_2 else  print(num_1,num_2)

 

9>.博主強烈推薦閱讀

  推薦一:https://www.cnblogs.com/yinzhengjie/p/8666354.html(原碼反碼補碼

  推薦二:https://www.cnblogs.com/yinzhengjie/p/8656833.html(進制轉換

  推薦三:https://www.cnblogs.com/yinzhengjie/p/8679721.html(算術運算符,Arithmetic Operators

  推薦四:https://www.cnblogs.com/yinzhengjie/p/8681000.html(比較運算符,Compare Operators

  推薦五:https://www.cnblogs.com/yinzhengjie/p/8688081.html(邏輯運算符,Logic Operators

  推薦六:https://www.cnblogs.com/yinzhengjie/p/8688553.html(賦值運算符Assignment Operators與條件運算符Condition Operators

  推薦七:https://www.cnblogs.com/yinzhengjie/p/8688845.html(字符串鏈接運算符String link operator

  推薦八:https://www.cnblogs.com/yinzhengjie/p/8689059.html(位運算符Bitwise Operators

 

七.內存管理

變量無須事先聲明,也不須要指定類型
    動態語言的特性

編程中通常無須關心變量的存亡,也不用關心內存的管理

python使用引用計數記錄全部對象的引用數
    當對象引用數變爲0,它就能夠被垃圾回收GC
    計數增長:賦值給其它變量就增長引用計數,例如x=3;y=x
    計數減小:
        函數運行結束時,局部變量就會被自動銷燬,對象引用計數減小
        變量被賦值給其它對象。例如x=3;y=x;x=4

有關性能的時候,就須要考慮變量的引用問題,可是該釋放內存,仍是儘可能不釋放內存,看需求

 

八.程序控制

1>.程序控制概述

一.順序
    按照前後順序一條條執行
    例如,先洗手,再吃飯,再洗碗

二.分支
    根據不一樣的狀況判斷,條件知足執行某條件下的語句
    例如,先洗手,若是飯沒有作好,玩遊戲,若是飯作好了,就吃飯,若是飯都沒有作,叫外賣

三.循環
    條件知足就反覆執行,不知足就不執行或再也不執行
    例如,先洗手,看飯好了沒有,沒有好,一會來看一次是否好了,一下子來看一次,直到飯好了,才但是吃飯。這裏循環的條件是飯沒有好,飯沒有好,就循環的來看飯好了沒有。

2>.真值表

False等價布爾值,至關於bool(value)
    空集合
        空字符串
        空字典 
        列表
        空元祖 
    one對象
    0

3>.單分支結構

if語句

if condition:
    代碼塊
condition必須是一個bool類型,這個地方有一個隱式轉換bool(condition)


代碼塊
    相似於if語句的冒號後面的就是一個語句塊
    在if、for、def、class等

#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com



zhangshan_age = 28
lisi_age = 20

if zhangshan_age > lisi_age:
    print("張三年齡比李四大")
單分支案例展現
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com

num_01 = int(input("請輸入第一個數:>>> "))
num_02 = int(input("請輸入第二個數:>>> "))


if num_01 > num_02:
    print("兩次輸入,最大的數字是:",num_01)
else:
    print("兩次輸入,最大的數字是:", num_02)
輸入2個數字,輸出最大數案例

3>.多分支結構

if...elif...else語句

if condition1:
    代碼塊1
elif condition2:
    代碼塊2
elif condition3:
    代碼塊3
    ......
else:
    代碼塊
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com

Academic_record = int(input("請輸入你的學習成績:>>> "))


if Academic_record == 100:
    print("滿分!")
elif Academic_record >= 90:
    print("優秀!")
elif Academic_record >=80:
    print("良好!")
elif Academic_record >=70:
    print("通常!")
elif Academic_record >= 60:
    print("及格!")
else:
    print("你得加油啦!")
多分支案例展現
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com

number = int(input("請輸入一個不超過5位的正整數:>>> "))

if number >=100000:
    print("對不起,您輸入的參數不合法!")
else:
    if number >= 1000:
        if number >= 10000:
            print("您輸入的是五位數")
        else:
            print("您輸入的四位數")
    else:
        if number >= 100:
          print("您輸入的是三位數")
        elif number >= 10:
            print("您輸入的是二位數")
        else:
            print("您輸入的是一位數")
給定一個不超過5位的正整數,判斷其有幾位(嵌套分支案例)

4>.while循環

while condition:
    block

當條件知足即condition爲True,進入循環體,執行block
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com


flag = 100

while flag:
   if flag % 2 != 0:
       print(flag)
   flag -= 1 
案例一(倒着打印100-1的奇數)

5>.for循環

for element in iteratable:
    block

當可迭代對象中有元素能夠迭代,進入循環體,執行block
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com


for item in range(100):
   if item % 2 != 0:
       print(item)
案例一(正序打印1-100的奇數)
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com


for item in range(100):
   if not item % 2:
       print(item)
案例二(正序打印1-100的偶數)

6>.continue語句

#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com



# for item in  range(0,100,2):
#     print(item)

for item in range(0,100):
    if item & 1:
        continue
    print(item)
    

7>.break語句

#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com


count = 0

# 計算1000之內的被7整除的前20個數(for循環)
for item in range(0,1000,7):
    print(item)
    count += 1
    if count >= 20:
        break
continue和break是循環的控制語句,隻影響當前循環,包括while、for循環

若是循環嵌套, continue和break也隻影響語句所在的那一層循環

continue和break 不是跳出語句塊,因此if condition: break 不是跳出if,而是終止if外的break所在的循環
循環continue、break語句總結

8>.循環else子句

while condition:
    block
else:
    block

for element in iteratable:
    block
else:
    block

若是循環正常的執行結束,就執行else子句;若是使用break終止,else子句不會執行

 

 

十.練習案例(儘可能全部程序本身能實現,不能實現的要求能寫出思路或者僞代碼!若是你以爲困難就對了,說明你已經在努力啦!)

1>.給定一個不超過5位的正整數,判斷該數的位數,依次打印出個位、十位、百位、千位、萬位的數字.

 

2>.給定一個不超過5位的正整數,判斷該數的位數,依次從萬位打印到個位的數字

 

3>.打印一個邊長爲n的正方形

 

4>.求100內全部奇數的和(2500)

 

5>.判斷學生成績,成績等級A~E。其中,90分以上爲'A',80~89分爲'B',70~79分爲'C',60~69分爲'D',60分如下爲'E'

 

6>.求1到5階乘之和

 

7>.給一個數,判斷它是不是素數(質數,一個大於1的天然數只能被1和它自己整除)

 

8>.打印九九乘法表

#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com


#打印九九乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print("{} * {} = {}".format(i,j,(i*j)),end="\t")
    print()
使用for循環打印九九乘法表
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com


#打印九九乘法表
i = 1
while i < 10:
    j = 1
    while j < 10:
        if i >= j:
            print('%d x %d = %d'%(i,j,(i*j)), end="\t")
        j += 1
    i += 1
    print()
使用while循環打印九九乘法表
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com


#倒着打印九九乘法表
for i in range(1,10):
    for item in range(i):
        print(" " * 12,end=" ")
    for j in range(i,10):
        print("{} x {} = {:<4}".format(i,j,i*j),end=" ")
    print()
倒着打印九九乘法表(方案一)
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com




#倒着打印九九乘法表
for i in range(1,10):
    for j in range(1,10):
        if i > j :
            line = "{}   {}   {:<4}".format(" "," "," ")
        else:
            line = "{} x {} = {:<4}".format(i,j,i*j)
        print(line,end=" ")
    print()
倒着打印九九乘法表(方案二)
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com


#倒着打印九九乘法表
for i in range(1,10):
    print((i-1)*(" " * 14),end="")
    for j in  range(i,10):
        print('%d x %d = %d' % (i, j, (i * j)), end="    ")
        if i * j < 10:
            print(end=" ")
    print()
倒着打印九九乘法表(方案三)
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com

#倒着打印九九乘法表
for i in range(1,10):
    print(' '* 7 * (i - 1),end="")
    for j in range(i,10):
        product = i * j
        if product < 10:
            end = '  '
        else:
            end = ' '
        print(str(i) + "*" + str(j) + "=" + str(i * j),end=end)
    print()
倒着打印九九乘法表(方案四) 

9>.打印以下圖所示的菱形或閃電(典型的中心對稱案例)

#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com


#打印菱形
display = "*"

for item in range(1,8,2):
    print((display * item).center(7))

for item in reversed(range(1, 6, 2)):
    print((display * item).center(7))
打印菱形(案例一)
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com


#打印菱形
for i in range(-3,4):
    if i < 0:
        prespace = -i
    else:
        prespace = i
    print(" " * prespace + "*" * (7 - prespace * 2))
打印菱形(案例二)

 

#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com


#打印閃電
for i in range(-3,4):
    if i < 0:
        print(" " * (-i) + "*" * (4 + i))
    elif i > 0:
        print(" " * 3 + "*" * ( 4 - i))
    else:
        print("*" * 5)
打印閃電(參考案例)

10>.求斐波那契數列第101項

#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com

a  = 1
b  = 1
index = 2
print("第0項是:{}".format(0,0))
print("第1項是:{}".format(1,1))
print("第2項是:{}".format(2,1))

while True:
    c = a + b
    a = b
    b = c
    index += 1
    print("第{}項是:{}".format(index,c))
    if index == 101:
        break
斐波拉契數列參考案例

11>.打印10萬內的全部素數(應用在密碼學領域,都要使用大素數)

#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com


#打印10萬內的全部素數
print(1)
print(2)
print(3)
for i in range(3,100000,2):
    m = i ** 0.5
    for j in range(3,i,2):
        if i %j == 0:
            break
        if j>m:
            print(i)
            break
打印10萬內的全部素數(參考案例一)
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com


#打印10萬內的全部素數
num =100000
if num > 2:
    print(2)
if num > 3:
    print(3)
if num > 5:
    print(5)
if num > 7:
    print(7)
for num in range(11,num + 1,2):
    for i in range(3,int(num ** 0.5) + 1,2):
        if num % i == 0:
            break
    else:
        print(num)
打印10萬內的全部素數(參考案例二,和上面的案例的時間複雜度如出一撤,效率和案例一相似)
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com




#打印10萬內的全部素數
for i in range(2,10000):
    for j in range(2,i):
        if i % j == 0:
            break
    else:
        print(i)
打印10萬內的全部素數(參考案例三,改案例時間複雜度最高,運行時間週期最長,效率天然是最低的!)
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com


#打印10萬內的全部素數
import time

start = time.clock()
for i in range(1,100000,2):
    if i % 3 == 0:
        continue
    if i % 5 == 0:
        continue
    for j in range(7,int(i ** 0.5) + 1,2):
        if i % j == 0:
            continue
    print(i)

end = time.clock()
print(end - start)
打印10萬內的全部素數(參考案例四,使用time模塊計算運行時間)
 #!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com


#打印10萬內的全部素數
import datetime

start =datetime.datetime.now()
for i in range(1,100000,2):
    if i % 3 == 0:
        continue
    if i % 5 == 0:
        continue
    for j in range(7,int(i ** 0.5) + 1,2):
        if i % j == 0:
            continue
    print(i)

end = datetime.datetime.now()
print(end - start)
打印10萬內的全部素數(參考案例五,使用datatime模塊計算運行時間)

12>.輸入兩個數,比較大小後,從小到大升序打印

#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com


#輸入兩個數,比較大小後,從小到大升序打印
num_1 = int(input("請輸入第一個數字:>>> "))
num_2 = int(input("請輸入第二個數字:>>> "))

if num_1 > num_2:
    print(num_2,num_1)
else:
    print(num_1,num_2)
輸入兩個數,比較大小後,從小到大升序打印(參考答案)

13>.給一個半徑,求圓的面積和周長(圓周率咱們取值爲3.14)。

#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com




#給定一個半徑,求圓的面積和周長,圓周率爲3.14
r = int(input("請輸入圓的半徑:>>> "))
PI = 3.14
Perimeter = 2 * PI * r
Area = PI * r ** 2

print("您輸入的圓半徑爲:{},其周長爲:{},其面積爲:{}".format(r,Perimeter,Area))
給定一個半徑,求圓的面積和周長,圓周率爲3.14(參考答案)

14>.輸入n個數,求每次輸入後的算數平均數。

#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com


#輸入n個數,求每次輸入後的算數平均數
input_count = 0
sum = 0

while True:
    nums = input("請輸入一個整數:>>> ")
    if nums == "quit":
        break
    if nums.isdigit():
        input_count += 1
        sum += int(nums)
        avg = sum / input_count
        print("算數平均數爲:{}".format(avg))
輸入n個數,求每次輸入後的算數平均數(參考案例一)
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com


#輸入n個數,求每次輸入後的算數平均數
Flag = True

NumberMembers = []

while Flag:
    nums = input("請輸入一個整數:>>> ")
    if nums == "quit":
         Flag = False
    if nums.isdigit():
        NumberMembers.append(nums)
        NumberSum = 0
        for item in NumberMembers:
            NumberSum += int(item)
        NumberAvg = NumberSum / NumberMembers.__len__()
        print("目前已經存在的數字是:{},算數平均數爲:{}".format(NumberMembers, NumberAvg))
入n個數,求每次輸入後的算數平均數(參考案例二)

15>.解決猴子吃桃問題(猴子第一天摘下若干個桃子,立即吃了一半,還不過癮,有多吃了一個。次日早上又將剩下的桃子吃掉一半,又多吃了一個。之後天天早上都吃了前一天剩下的一半零一個。到第10天早上想吃時,只剩下一個桃子了。求第一天共摘了多少個桃子。)

#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com


#解決猴子吃桃的問題
peach = 1

for i in range(9):
    peach = 2 * (peach + 1)

print("猴子第一天共摘了[{}]個桃子".format(peach))
猴子第一天共摘了[1534]個桃子(點我查看計算代碼)
相關文章
相關標籤/搜索