1、執行 Python 指令碼的兩種方式

終端和互動模式

法1:
python helloword.py

法2:
ps: 執行前需給預chmod 755 helloword.py (linux系統中)
./helloword.py

2、簡述位、位元組的關係
1byte =8位

3、簡述 ascii、unicode、utf-8、gbk 的關係

  • unicode:包含所有國家的字元編碼,
  • utf-8可變長的字元編碼,英文表示一個位元組,中文(繁文)表示3個位元組
  • ascii美國標誌資訊交換程式碼,是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言,一個字元佔一個位元組
  • gbk全稱《漢字內碼擴充套件規範》,一個字元佔用兩個位元組

4、請寫出 “李傑”分別用 utf--‐8 和 gbk 編碼所佔的位數

  • 在utf-8中,一箇中文字元佔用3個位元組
  • 在gbk中一個漢字佔用2個位元組
  • 李傑 = utf-8(6位元組)=48
  • 李傑 = gbk(4位元組)=32

5、Pyhton 單行註釋和多行註釋分別用什麼?

  • 單行註釋 #被註釋內容
  • 多行註釋 '''被註釋內容'''

6、宣告變數注意事項有那些?

  • 變數名只能是 字母、數字或下劃線的任意組合
  • 變數名的第一個字元不能是數字
  • 以下關鍵字不能宣告為變數名
  • ['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']
  • 最好不好和python內建的東西重複

7、如有一下變數 n1=5,請使用 int 的提供的方法,得到該變數少可以用多少個二進位制位表示?

 n1=5
v = int(n1.bit_length())
print(v)

執行結果:

 3

8、布林值分別有什麼?

  • 一個布林值只有True、False兩種值,要麼是True,要麼是False
  • 可以用0或1表示

9、閱讀程式碼,請寫出執行結果

 a = "alex"
b = a.capitalize()
print(a)
print(b)

執行結果:

 alex
Alex

10、寫程式碼,有如下變數,請按照要求實現每個功能

name="aleX"

a.移除 name 變數對應的值兩邊的空格,並輸入移除後的內容
print(name.strip()) #aleX

b.判斷 name 變數對應的值是否以"al"開頭,並輸出結果
print(name.startswith('al')) #False

c.判斷 name 變數對應的值是否以"X"結尾,並輸出結果
print(name.endswith('X')) #False

d.將 name 變數對應的值中的“l”替換為“p”,並輸出結果
print(name.replace('l','p')) #aleX

e.將 name 變數對應的值根據“l”分割,並輸出結果。
print(name.split('l')) #['a', 'eX']

f.請問,上一題e分割之後得到值是什麼型別(可選)
print(type(name.split('l'))) #<class 'list'>

g.將 name 變數對應的值變大寫,並輸出結果
print(name.upper()) #ALEX

h.將 name 變數對應的值變小寫,並輸出結果
print(name.lower()) #alex

i.請輸出 name 變數對應的值的第 2 個字元?
print(name[1:2]) #l

j.請輸出 name 變數對應的值的前 3 個字元?
print(name[:3]) #ale

k.請輸出 name 變數對應的值的後 2 個字元?
print(name[-2:]) #eX

l.請輸出 name 變數對應的值中“e”所在索引位置?
print(name.index('e')) #2

m.獲取子序列,僅不包含後一個字元。如:oldboy則獲取oldbo;root則獲取roo

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige n1 = "oldboy"
n2 = n1.strip('y')
print(n2)

執行結果:

 oldbo

21、字串是否可迭代物件?如可以請使用 for 迴圈每一個元素?

可以

 name = "nulige"
for i in name:
print(i)

執行結果:

 n
u
l
i
g
e

補充知識:

什麼是迭代?

利用 for 迴圈來遍歷一個列表(list)或元組(tuple),將值依次取出,這種方法我們稱為迭代。

利用for語句迭代字串,建立一個字串,name = "nulige",然後用for語句進行迭代。

22、請用程式碼實現:
a.利用下劃線將列表的每一個元素拼接成字串,li="alexericrain"

 li = "alexericrain"
v = "_".join(li)
print(v)

執行結果:

 a_l_e_x_e_r_i_c_r_a_i_n

b.利用下劃線將列表的每一個元素拼接成字串,li=['alex','eric','rain'](可選)

 li = ['alex','eric','rain']
v = "_".join(li)
print(v)

執行結果:

 alex_eric_rain

23、Python2 中的 range 和 Python3 中的 range 的區別?

python2直接就在記憶體中創建出來

pyhotn3沒有在記憶體中創建出來,需要使用for迴圈才會創建出來

24、實現一個整數加法計算器:
如:content=input('請輸入內容:')#如:5+9或5+9或5+9

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige n1 = int(input("name:"))
n2 = int(input("age:"))
info = n1+n2
print(info)

執行結果:

 name:5
age:9
14

25、計算使用者輸入的內容中有幾個十進位制小數?幾個字母?

如:content=input('請輸入內容:')#如:asduiaf878123jkjsfd-­‐213928

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige number_null = ""
name = "123456asdfsdf"
str_null = ""
for i in name:
if i.isdecimal(): #判斷i的值是不是數字
number_null += i #如果i的值是數字的話,則加入到number_null
elif i.isalpha(): #判斷i的值是不是字母
str_null += i
print(number_null,str_null)
print(len(number_null),len(str_null))

執行結果:

 123456 asdfsdf
6 7

26、簡述int和9等數字以及str和"xxoo"等字串的關係?

數字就是整型,帶“ ”的就是字串

27、製作趣味模板程式

需求:等待使用者輸入名字、地點、愛好,根據使用者的名字和愛好進行任意現實

如:敬愛可親的 xxx,喜歡在 xxx 地方幹 xxx

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige n1 = input("name:")
n2 = input("add:")
n3 = input("hobby:")
print("敬愛的",n1,"喜歡在",n2,"安靜的",n3)

執行結果:

 敬愛的 成龍 喜歡在 圖書館 安靜的 看書

28、製作隨機驗證碼,不區分大小寫。

流程:
-­‐使用者執行程式
-­‐給使用者顯示需要輸入的驗證碼
-­‐使用者輸入的值
使用者輸入的值和顯示的值相同時現實正確資訊;否則繼續生成隨機驗證碼繼續等待使用者輸入
生成隨機驗證碼程式碼示例:

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige def check_code():
import random
checkcode = ''
for i in range(4):
current = random.randrange(0,4)
if current != i:
temp = chr(random.randint(65,90))
else:
temp = random.randint(0,9)
checkcode += str(temp)
return checkcode
code = check_code()
print(code) count = 0
while count < 3:
identifying_code = input("請輸入驗證碼:")
if code == identifying_code.upper():
print("驗證通過---登入成功---")
break
else:
continue
count += 1

執行結果:

 請輸入驗證碼:lwv9
驗證通過---登入成功---

29、開發敏感詞語過濾程式,提示使用者輸入內容,如果使用者輸入的內容中包含特殊的字元:
如:"蒼老師"“東京熱”,則將內容替換為***

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige n1 = input("請輸入:")
m = str.maketrans("蒼老師", "***")
a = str.maketrans("東京熱", "***")
new_v = n1.translate(m).translate(a)
print(new_v)

執行結果:

 請輸入:蒼老師
***

30、製作表格

迴圈提示使用者輸入:使用者名稱、密碼、郵箱  (要求使用者輸入的長度不超過 20 個字元,如果超過則只有前 20 個字元有效) 如果使用者輸入  q 或 Q  表示不再繼續輸入,將使用者輸入的內容以表格形式列印

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: nulige W = "使用者名稱\t密碼\t郵箱\n"
while 1 == 1:
name = input("使用者名稱:")
if name == "q" or name == "Q" or name == "no":
print(w)
break
passwd = input("密碼:")
if passwd == "q" or passwd == "Q" or quit == "no":
print(w)
break
mail = input("郵箱:")
if mail == "q" or mail == "Q" or mail == "no":
print(w)
break
Name = name[0:20]
Pwd = passwd[0:20]
Mail = mail[0:20]
b = "{0}\t{1}\t{2}\n".format(Name,Pwd,Mail)
n1 = W + b
w = n1.expandtabs(20)
continue

執行結果:

 使用者名稱:asfdsa
密碼:ddd
郵箱:[email protected]
使用者名稱:q
使用者名稱 密碼 郵箱
asfdsa ddd [email protected]