1. 程式人生 > >python開發基礎之語法基礎

python開發基礎之語法基礎

一、知識點

(一)python介紹

1.Python被設計成一種高可讀性的語言,它大量地使用了英語單詞作為關鍵字,不像其他語言使用標點符號構成複雜的語法結構。

2.Pyton是支援面向物件的,支援在物件中進行程式碼封裝,是一種面向物件的語言。

3.Python是一種解釋性語言,不用編譯源程式。

4.Python可跨平臺,應用範圍廣可擴充套件,非常適合初學者,深入研究程式設計也是不錯的選擇。

(二)python安裝

1.下載https://www.python.org/downloads/windows/,選擇自己需要的版本安裝。

2.windows下安裝完成後,執行cmd,輸入python,如果能進入互動環境 ,代表安裝成功。

(三)基本語法

1.變數命名規則:數字,字母,下劃線, 任意組合,數字不能開頭,python 的關鍵字不能用,變數名儘量有意義。

2.註釋

#單行註釋
#註釋可以是英文和中文不能使用拼音

"""
第一種方式
多行註釋
多行註釋

"""

'''
第2種方式
多行註釋
多行註釋

'''

3.PEP 8是一種編碼規範,是一系列關於如何讓Python程式碼更加具有可讀性的編碼建議。

4.python的內建型別:分為可變型別和不可變型別。

  • 可變型別:列表、集合、字典
  • 不可變型別:字串、元組、數字

5.格式化輸出:

name = input("
Name:") age = input("Age:") job = input("Job:") hobbie = input("Hobbie:") info = ''' ------------ info of %s ----------- #這裡的每個%s就是一個佔位符,本行的代表 後面拓號裡的 name Name : %s #代表 name Age : %s #代表 age job : %s #代表 job Hobbie: %s #代表 hobbie ------------- end ----------------- ''' %(name,name,age,job,hobbie) #
這行的 % 號就是 把前面的字串 與括號 後面的 變數 關聯起來 print(info)

6.運算子:

  • 算數運算

  以下假設變數:a=10,b=20

  • 比較運算

  以下假設變數:a=10,b=20

  • 賦值運算

  以下假設變數:a=10,b=20

  • 邏輯運算

7.if條件語句

# 單分支
if
條件: 滿足條件執行程式碼 else: if條件不滿足就走這段
if 條件:
    滿足條件執行程式碼
elif 條件:
    上面的條件不滿足就走這個
elif 條件:
    上面的條件不滿足就走這個
elif 條件:
    上面的條件不滿足就走這個    
else:
    上面所有的條件不滿足就走這段

 8.while迴圈語句

while  條件:
    執行程式碼...

9.IDE開發工具推薦用pycharm

下載地址:https://www.jetbrains.com/pycharm/download

二、練習題

1.簡述編譯型與解釋型語言的區別,且分別列出你知道的哪些語言屬於編譯型,哪些屬於解釋型?

編譯型語言:
使用專門的編譯器,針對特定的平臺,將高階語言原始碼一次性的編譯成可被該平臺硬體執行的機器碼,幷包裝成該平臺所能識別的可執行性程式的格式。
特點:
在編譯型語言寫的程式執行之前,需要一個專門的編譯過程,把原始碼編譯成機器語言的檔案.
執行方式:
原始碼 ———> 編譯(一次編譯) ———>目的碼———>執行(多次執行)———>輸出

解釋型語言:
使用專門的直譯器對源程式逐行解釋成特定平臺的機器碼並立即執行。
特點:
解釋型語言不需要事先編譯,其直接將原始碼解釋成機器碼並立即執行,所以只要某一平臺提供了相應的直譯器即可執行該程式。
執行方式:
原始碼 ———> 直譯器(每次執行都需要解釋)———>輸出    

編譯型: C c++, c#
解釋型: python PHP ruby, java

2.執行 Python 指令碼的兩種方式是什麼?

1../run.py.shell直接呼叫python指令碼  

2.python run.py 呼叫python 直譯器來呼叫python指令碼

3.Pyhton 單行註釋和多行註釋分別用什麼?

單行註釋使用 # 
多行註釋使用""" """''' '''

4.布林值分別有什麼?

布林值分別有:True 和False

5.宣告變數注意事項有那些?

模組名,包名 :小寫字母, 單詞之間用_分割。
類名:首字母大寫。
全域性變數: 大寫字母, 單詞之間使用者_分割。
普通變數: 小寫字母, 單詞之間使用者_分割。
函式: 小寫字母, 單詞之間使用者_分割。
例項變數: 以_開頭,其他和普通變數一樣 。
私有例項變數(外部訪問會報錯): 以__開頭(2個下劃線),其他和普通變數一樣 。
專有變數: __開頭__結尾,一般為python的自有變數(不要以這種變數命名)。

6.如何檢視變數在記憶體中的地址?

id()

7.寫如下程式碼:

  • 實現使用者輸入使用者名稱和密碼,當用戶名為 seven 且 密碼為 123 時,顯示登陸成功,否則登陸失敗!

 

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/11/14 15:04
# @Author  : lurkerzhang
# @File    : 7_1.py
# @Descript: 實現使用者輸入使用者名稱和密碼,當用戶名為 seven 且 密碼為 123 時,顯示登陸成功,否則登陸失敗!

name = input("使用者名稱:")
pwd = input("密碼:")
if name == "seven" and pwd == "123":
    print("登陸成功!")
else:
    print("登陸失敗!")

 

  • 實現使用者輸入使用者名稱和密碼,當用戶名為 seven 且 密碼為 123 時,顯示登陸成功,否則登陸失敗,失敗時允許重複輸入三次
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/11/14 15:26
# @Author  : lurkerzhang
# @File    : 7_2.py
# @Descript:實現使用者輸入使用者名稱和密碼,當用戶名為 seven 且 密碼為 123 時,顯示登陸成功,否則登陸失敗,失敗時允許重複輸入三次

count = 3
while count > 0:
    count -= 1
    name = input("使用者名稱:")
    pwd = input("密碼:")
    if name == "seven" and pwd == "123":
        print("登陸成功!")
        break
    else:
        print("登陸失敗!")
  • 實現使用者輸入使用者名稱和密碼,當用戶名為 seven 或 alex 且 密碼為 123 時,顯示登陸成功,否則登陸失敗,失敗時允許重複輸入三次
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/11/14 15:42
# @Author  : lurkerzhang
# @File    : 7_3.py
# @Descript: 實現使用者輸入使用者名稱和密碼,當用戶名為 seven 或 alex 且 密碼為 123 時,顯示登陸成功,否則登陸失敗,失敗時允許重複輸入三次

user_name = ['seven', 'alex']
password = '123'
count = 3
while count > 0:
    count -= 1
    name = input('使用者名稱:')
    pwd = input('密碼:')
    if name in user_name and pwd == password:
        print('登陸成功!')
        break
    else:
        print('登陸失敗!')

 8.按要求完成如下程式碼:

  • 使用while迴圈實現輸出2-3+4-5+6...+100 的和
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/11/14 15:53
# @Author  : lurkerzhang
# @File    : 8_1.py
# @Descript: 使用while迴圈實現輸出2-3+4-5+6...+100 的和

n = 2
sum = 0
while n <= 100:
    if n % 2 == 0:
        sum += n
    else:
        sum -= n
    n += 1
print('2-3+4-5+6...+100=%d' % sum)
  • 使用 while 迴圈實現輸出 1,2,3,4,5, 7,8,9, 11,12
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/11/14 16:03
# @Author  : lurkerzhang
# @File    : 8_2.py
# @Descript: 使用 while 迴圈實現輸出 1,2,3,4,5, 7,8,9, 11,12

n = 0
while n < 12:
    n += 1
    if n in [6, 10]:
        continue
    elif n == 12:
        print(n)
    else:
        print(n, end=',')
  • 使用while 迴圈輸出100-50,從大到小,如100,99,98...,到50時再從0迴圈輸出到50,然後結束
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/11/14 16:17
# @Author  : lurkerzhang
# @File    : 8_3.py
# @Descript: 使用while 迴圈輸出100-50,從大到小,如100,99,98...,到50時再從0迴圈輸出到50,然後結束

n = 100
while n >= -1:
    if n >= 50:
        print(n)
    else:
        print(49 - n)
    n -= 1
  • 使用 while 迴圈實現輸出 1-100 內的所有奇數
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/11/14 23:16
# @Author  : lurkerzhang
# @File    : 8_4.py
# @Descript: 使用 while 迴圈實現輸出 1-100 內的所有奇數

n = 1
while n <= 100:
    if n % 2 != 0:
        print(n)
    n += 1
  • 使用 while 迴圈實現輸出 1-100 內的所有偶數
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/11/14 23:20
# @Author  : lurkerzhang
# @File    : 8_5.py
# @Descript: 使用 while 迴圈實現輸出 1-100 內的所有偶數

n = 1
while n <= 100:
    if n % 2 == 0:
        print(n)
    n += 1

9.現有如下兩個變數,請簡述 n1 和 n2 是什麼關係?

n1 = 123456
n2 = n1
n2是n1的引用,它們在記憶體中的地址是一樣的,n1的值發生變化,n2的值也同樣發生變化。

10.製作趣味模板程式(程式設計題):

需求:等待使用者輸入名字、地點、愛好,根據使用者的名字和愛好進行任意顯示
如:敬愛可愛的xxx,最喜歡在xxx地方幹xxx。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/11/14 23:31
# @Author  : lurkerzhang
# @File    : 10.py
# @Descript: 製作趣味模板程式(程式設計題):
#            需求:等待使用者輸入名字、地點、愛好,根據使用者的名字和愛好進行任意顯示
#            如:敬愛可愛的xxx,最喜歡在xxx地方xxx。
name = input("姓名:")
place = input("地點:")
hobby = input("愛好:")
message = "敬愛可愛的%s,最喜歡在%s地方幹%s" % (name, place, hobby)
print(message)

11.輸入一年份,判斷該年份是否是閏年並輸出結果。(程式設計題)
注:凡符合下面兩個條件之一的年份是閏年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/11/14 23:38
# @Author  : lurkerzhang
# @File    : 11.py
# @Descript: 輸入一年份,判斷該年份是否是閏年並輸出結果。(程式設計題)
#            注:凡符合下面兩個條件之一的年份是閏年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。

year = int(input("輸入年份:"))
isleap = False
if year % 400 == 0:
    isleap = True
elif year % 4 == 0 and year % 100 != 0:
    isleap = True
if isleap:
    print("%d是潤年。" % year)
else:
    print("%d是平年。" % year)

12.假設一年期定期利率為3.25%,計算一下需要過多少年,一萬元的一年定期存款連本帶息能翻番?(程式設計題)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/11/14 23:56
# @Author  : lurkerzhang
# @File    : 12.py
# @Descript: 假設一年期定期利率為3.25%,計算一下需要過多少年,一萬元的一年定期存款連本帶息能翻番?

n = 1
while True:
    if 1.0325**n >= 2:
        print(n)
        break
    n += 1

13.一球從100米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在第10次落地時,共經過多少米?第10次反彈多高?

# @Time    : 2018/11/15 0:05
# @Author  : lurkerzhang
# @File    : 13.py
# @Descript: 一球從100米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在第10次落地時,共經過多少米?第10次反彈多高?

n = 1
height = 100
distance = 0
while n <= 10:
    distance += height
    height = height * 0.5
    distance += height
    n += 1
print("它在第10次落地時,共經過%f米?第10次反彈%f米。" % (distance-height, height))