1、執行python腳本的兩種方式
一種是點開始--運行--cmd 方式(這個操作需要先配置好環境變量path路徑)之后運行python
二是直接進安裝目錄 運行tython軟件運行。pycharm
2、簡述位、字節的關系
位:計算機的計算單位,代表0或者1
字節:一字節相當於8位
3、簡述ascii、unicode、uft-8、gbk的關系
ascii 英文編碼,8個二進制位代表一個字母,總共可以有2的8次方減去1個等於255個
gbk是中文編碼,是用的16個二進制代表一個漢字,有點浪費空間
uft-8也是中文編碼,也是用的16個二進制代表一個漢字,但是能用8位表示就用位了
4、請寫出“李傑”分別用utf-8的gbk編碼所占的位數
len(bytes(name,encoding='utf-8')) 6 len(bytes(name,encoding='gbk')) 4
5、python單行注釋和多行注釋分別用什么?
單行注釋:# 多行注釋 """ 開始 """結束
6、聲明變量注意事項有哪些?
變量必須由數字,字母,下划線組成,不能以數字開頭,不能用關鍵字,還有系統內置函數。
7、如有以下變量n1 = 5,請使用int提供的方法,得到該變量最少可以用多少個二進制位表示
n1 = 5 v = n1.bit_length() print (v) # 3
8、布爾值分別有什么?
True False
9、閱讀代碼,請寫出執行結果
a = "gouguoqi" b = a.capitalize() print (a) print (b)
gouguoqi
Gouguoqi
10、寫代碼,有如下變量,請按照要求實現每個功能
name = " gouguoQ "
a.移除name變量對應值的兩邊的空格,並輸出移除后的內容
v = name.strip() print(v)
b.判斷name變量對應的值是否以"go"開頭,並輸出結果
v = name.startswith('go') print(v) #false
c.判斷name變量對應的值是否以"Q"結尾,並輸出結果
v = name.endswith('Q') print(v) #true
d.將name變量對應的值中的"o",替換為"p",並輸出結果
print name.replace("o","p")
e.將name變量對應的值根據"o"分割,並輸出結果
v = name.split('o') print(v) #此為不包括分隔符方式
f.請問上一題分割之后得到的值是什么類型(可選)
列表
g.將name變量對應的值變大寫,並輸出結果
v = name.upper() print(v)
h.將name變量對應的值變成小寫,並輸出結果
v = name.lower() print(v)
i.請輸出name變量對應的值的第二個字符?
print(name[1])
j.請輸出name變量對應的值的前三個字符
print(name[0:3])
h.請輸出name變量對應值的后2個字符
print(name[5:8])
name = " gouguoQ" v = name[-2:] print (v)
l.請輸出name變量中的值"Q的索引的位置
name = " gouguoQ" v = len(name) for n in range(v): if (name[n]) != "Q": continue else: print (n,name[n]) # 7 Q
m.獲取子序列,僅不包含最后一個字符,如:woaini則獲取woain root則獲取roo
name = " gouguoQ" print (name[0:-1])
21、字符串是否可以迭代對象?如果可以請使用for循環每一個元素?
#可以 test = "中華人民共和國" for ts in test : print(ts)
22、請用代碼實現
a.利用下划線將列表的每一個元素拼接成字符串 li = "gouguoqi"
li = "gouguoqi" v = "_".join(li) print (v) #g_o_u_g_u_o_q_i
b.利用下划線將列表的每一個元素拼接成字符串 li = ['gou', 'guo', 'qi']
li = ['gou','guo','qi'] v = "_".join(li) print (v) #gou_guo_qi
23、在python2和3中range有啥區別
在python2.7里面,range可以直接幫我們打印出來范圍內的數字,這個就有缺點了,比如我打印出來1萬個數字,它得先把一萬個數字打印出來,這個時候我們得等着了。並且占用很多內存
在python3里面,range創建之后,並不會把這些數字打印出來,而是在什么時候調用的時候才去一個一個的打印,比如我for循環調用的時候才會挨個打印,這樣就省內存了
24、實現一個整數加法計算器:
content = input("請輸入內容:")
如:5 + 9或3 + 6或9008 + 2566
v =content.split('+') n1 = int(v[0]) n2 = int(v[1]) n3 = n1 + n2 print (n1,'+',n2,'=',n3)
25.計算用戶輸入的內容中有幾個十進制小數?幾個字母?
如: content = input ('請輸入內容:') #如:adsffjjhb87902kdjhs-+9802jkl
思路是:定義2基數都是0,一個是字母的一個是數字的
把字符串挨個打印出來,打印出來一個,判斷一個,如果是數字,就把數字的基數加一,如果是字母就把字母的基數加一,就不是數字也不是字母,就pass,最后打印出num zimu
content = input('請輸入內容:計算十進制小數個數和字母個數 ') num = 0 zimu = 0 for n in content: if n.isdecimal() == True: num+=1 # print ('數字個數 ',(num)) elif n.isalpha() == True: zimu+=1 # print ('字母個數',zimu) else: pass print ('數字個數 ',(num)) print ('字母個數',zimu) C:\python35\python3.exe D:/pyproject/day11數據類型的方法/str-way.py 請輸入內容:計算十進制小數個數和字母個數 56gou<<<ijh78 數字個數 4 字母個數 6
26、簡述int和9等數字 以及 str和"xxoo" 等字符串的關系?
int就是數字類型,str就是字符串類型,xxoo就是字符串
int str都是類,類型, 9 xxoo這些都是根據類創建的對象
27、制作趣味模板程序
需求:等待用戶輸入名字、地點、愛好、根據用戶的名字和愛好進行任意顯示
如:敬愛可親的xxxx,最喜歡在xxxx地方干xxxx
name = input("請輸入你的名字: ") place = input("請輸入你經常去的地方: ") like = input("請輸入你平時的愛好: ") print('猥瑣的', name, ',', '最喜歡在', place, '地方', like) test = "猥瑣的{0},最喜歡在{1}地方干{2}" name = input("請輸入你的名字: ") place = input("請輸入你經常去的地方: ") like = input("請輸入你平時的愛好: ") v = test.format(name, place, like) print(v)
28、制作隨機驗證碼,不區分大小寫
流程:
- 用戶執行程序
- 給用戶顯示需要輸入驗證碼
- 用戶輸入的值
用戶輸入的值和顯示的值相同時顯示正確的信息:否則繼續生成驗證碼等待用戶輸入
生成隨機驗證碼代碼示例:
def check_code(): import random check_code = '' 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) check_code += str(temp) return check_code code = check_code() print(code)
def check_code(): import random check_code = '' 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) check_code += str(temp) return check_code code = check_code() while True: code = check_code() print (code) v = input('請輸入驗證碼>>>>') v1 = v.upper() if v1 == code: print ('驗證碼正確') break else: pass
29、開發敏感詞語過濾程序,提示用戶輸入內容,如果用戶輸入的內容中包含特殊的字符:
如 "蒼井空" "東京熱" 則將內容替換為***
思路是:創建2個變量v1 v2,用find方法來判斷用戶輸入的字符串里面是否有敏感詞,有的話find的值就不是-1,只有find的值是-1的時候才是沒有敏感詞的
然后用if判斷,如果2個值都等於-1,才證明不包含定義的2個敏感詞,就正常打印,如果包含一個敏感詞或者是包含2個敏感詞都包含,就執行替換的操作
替換操作思路是,先替換蒼井空。替換完成之后,給它賦值一個新的變量名字,再把新的變量里面的東京熱再次替換下,最后打印出來最后的變量就是2者都替換過了的結果
shuru = input("請輸入字符串") v = shuru.find('蒼井空') v1 = shuru.find('東京熱') if v == -1 and v1 == -1: print (shuru) elif v != -1 or v1 != -1: shuru1 = shuru.replace('蒼井空','*****') shuru2 = shuru1.replace('東京熱','*****') print (shuru2) # elif v1 != -1: # shuru.replace('東京熱','*****') # shuru1 = shuru.replace('東京熱','*****') # print (shuru1) else: pass
用in來實現其實更簡單些,代碼如下
如果有敏感詞的話就題把敏感詞替換成*****並且趕緊退出,沒有敏感詞的話可以繼續輸入
while True: name = input('請輸入內容:') if "蒼井空" in name or "東京熱" in name: v = name.replace('蒼井空', '*****') v1 = v.replace('東京熱', '*****') print(v1) exit() else: print(name)
30、制作表格
循環提示用戶輸入:用戶名、密碼、郵箱(要求用戶輸入的長度不能超過20個字符,如果超過則只有前20個字符有效),如果用戶輸入q或者Q表示不再繼續輸入,將用戶的內容一表格形式打印
s = "" while True: v1 = input('請輸入你的名字') v2 = input('請輸入你的密碼') v3 = input('請輸入你的郵箱') v4 = v1[0:19] v5 = v2[0:19] v6 = v3[0:19] test = "{0}\t{1}\t{2}\n" v = test.format(v4, v5, v6) b = v.expandtabs(20) s = s + b if v1 == "q" or v2 == "q" or v3 == "q" or v1 == "Q" or v2 == "Q" or v3 == "Q": break print(s) 請輸入你的名字q 請輸入你的密碼ww 請輸入你的郵箱ee aa bb cc dd dd dd ff ff ff q ww ee
