Python基礎知識練習題(一)

#!/usr/bin/env python
# -*- coding:utf-8 -*-

# Python基礎知識練習題(一)
#1、使用while循環輸入1 2 3 4 5 6   8 9 10
a = 0
while a < 10:
    a += 1
    if a ==7:
        print("【我是小七,我會隱身,你看不到我】",end=" ")
        continue
    print(a,end=" ")
print('\n')
print("##########################################################")
#2、求1-100的所有數的和
m = 0
sumNum = 0
while m < 100:
    m += 1
    sumNum += m
print(sumNum)
print("##########################################################")

#3、輸出1-100內的所有奇數
i = 0
while i <=100:
    if i % 2 == 1:
        print(i,end=" ")
    i += 1
print('\n')
print("##########################################################")

#4、輸出1-100內的所有偶數
j = 0
while j <= 100:
    if j % 2 == 0:
         print(j,end=" ")
    j += 1
print('\n')
print("##########################################################")
#5、求1-2+3-4+5...99的所有數的和
import random
i1=0
i2=0
for i in range(100):
    if i%2==0:
        i1 -= i
    else:
        i2 += i
i3=i1+i2
print(i3)

#6、用戶登陸(三次機會重試)
count = 0
while count < 3:
    n1 = input('請輸入用戶名:')
    n2 = input('請輸入密碼:')
    if n1 == 'root' and n2 == 'root':
        print('登錄成功')
        break
    else :
        print('用戶名或者密碼錯誤,請重新輸入:')
    count += 1
    if count == 3:
        print('對不起,您以及輸入錯誤3次,登錄程序終止')
print("##########################################################")
#ctrl+? 快捷鍵爲選中行做整體註釋
#7、執行Python腳本的兩種方式
"""
答:第一種,配置好環境變量,找到pyhon文件,形式:python 1.py
     第二種,進入解釋器,實時輸入輸出,形式:python
     在Linux在,在文件內部加入該語句#!/usr/bin/env python,即解釋器的位置,終端執行文件./1.py。
"""
#8、簡述位、字節的關係
"""
答:位bit,字節byte,一字節等於8bit。計算機計算時是以字節爲單位,存儲是以位爲單位。
"""
#9、
# 簡述ascii,unicode,utf-8的關係
# 簡述ascii、unicode、utf8、gbk編碼所佔位數
#請寫出“李傑”分別用utf-8和gdk編碼所佔的字節數
"""
答:最先出現的是ascii編碼,其次是unicode編碼,又因爲每個國家的標準不同,繼而出現unicode的壓縮編碼utf-8。ascii碼8位,unicode碼16位。用ascii碼錶示的字符,再用unicode表示就會造成內存浪費,提出的utf-8編碼,能用多少表示就用多少表示。
UTF-8編碼是變長編碼,通常漢字佔三個字節,擴展B區以後的漢字佔四個字節,英文字母佔兩個字節。
GBK編碼,一個漢字佔兩個字節,英文字母佔兩個字節。
“李傑”utf-8:6字節,gdk:4字節
"""
#10、Python單行註釋和多行註釋分別是什麼
"""
答:單行註釋是“#”快捷鍵ctrl+/,多行註釋是“''' '''”或“""" """”
"""
#11、聲明變量注意事項有哪些?
"""
答:數字,下劃線,字母,數字不能開頭,一定不能和關鍵字名重複。儘量不要用python內置函數名,可能會出錯。
"""
#12、如果有一個變量n1=5,請使用int的提供的方法,得到該變量最少可以用多少個二進制位表示?
"""
答:bit_length(n1),結果爲:3。
"""
#13、布爾值分別有什麼?
"""
答:布爾值有兩個True、False
    對於空字符串""是False,數字0是假
"""
#14、閱讀代碼,請寫出執行結果
a="alex"
b=a.capitalize()
print(a)
print(b)
# 請寫出輸出結果:alex Alex
#15、寫代碼,有如下變量,請按照要求實現每個功能
name = "   aleX   "
# a. 移除 name 變量對應的值兩邊的空格,並輸入移除後的內容
print(name.strip())
# b. 判斷 name 變量對應的值是否以  "al"  開頭,並輸出結果
name = "aleX"
print(name.startswith("al"))
# c. 判斷 name 變量對應的值是否以  "X"  結尾,並輸出結果
print(name.endswith("X"))
# d. 將 name 變量對應的值中的  “l”  替換爲  “p”,並輸出結果
print(name.replace("l","p"))
# e. 將 name 變量對應的值根據  “l”  分割,並輸出結果。
print(name.split("l"))
# f. 請問,上一題 e 分割之後得到值是什麼類型(可選)?
name_1 = name.split("e")
print(type(name_1))   #class 'list'
# g. 將 name 變量對應的值變大寫,並輸出結果
print(name.upper())
# h. 將 name 變量對應的值變小寫,並輸出結果
print(name.lower())
# i. 請輸出 name 變量對應的值的第 2 個字符?
print(name[1])
# j. 請輸出 name 變量對應的值的前 3 個字符?
print(name[0:3])
# k. 請輸出 name 變量對應的值的後 2 個字符?
print(name[-2:])
# l. 請輸出 name 變量對應的值中  “e”  所在索引位置?
print(name.index("e"))
# m. 獲取子序列,僅不包含最後一個字符。如:  oldboy  則獲取  oldbo;  root  則獲取  roo
a = "oldboy"
print(a[0:-1])
#16、字符串是否可迭代對象?如可以請使用 for 循環每一個元素?
# 可迭代對象===可以用for循環進行獲取。
str_1="asdasafghyyh"
for item in range(0,len(str_1)):
    print(str_1[item],end=" ")

#17、請用代碼實現:
#a. 利用下劃線將列表的每一個元素拼接成字符串,li  =  "alexericrain"
li = "alexericrain"
li_1 = "_".join(li)
print(li_1)
#b. 利用下劃線將列表的每一個元素拼接成字符串,li  =  ['alex',  'eric',  'rain'] (可選)
li = ['alex','eric','rain']
li_1 = "_".join(li)
print(li_1)

#18、Python2 中的 range 和 Python3 中的 range 的區別?
"""
答:Python2中的range將遍歷的內容直接輸出,Python3中的range將遍歷的內容放到內存中不直接輸出,
等到程序需要調用循環迭代時再輸出,節省內存,內含垃圾回收機制。
"""
#19、實現一個整數加法計算器:
# 如:content  =  input('請輸入內容:')    #  如:  5+9  或  5+  9  或  5  +  9  
print("19、")
content = input('請輸入內容(如 9 + 5):')
v1,v2 = content.split("+")
v1 = int(v1)
v2 = int(v2)
print(v1+v2)

#20、計算用戶輸入的內容中有幾個十進制小數?幾個字母?
#如: content  =  input('請輸入內容:')  如:asduiaf878123jkjsfd-­‐213928
print("20、")
num_1 = 0
num_2 = 0
content = input('請輸入內容:')
for item in content:
    if item.isdecimal():
        num_1 += 1
    elif item.isalpha():
        num_2 += 1
    else:
        break
print("十進制數個數:" + str(num_1))
print("字母個數:" + str(num_2))

# 21、簡述  int  和  9  等數字   以及   str  和  "xxoo"  等字符串的關係?
"""
答:就是類和對象的關係。
"""
#22、製作趣味模板程序
#需求:等待用戶輸入名字、地點、愛好,根據用戶的名字和愛好進行任意現實
#如:敬愛可親的 xxx,最喜歡在 xxx 地方幹 xxx
template = "敬愛可親的 {0},最喜歡在 {1} 地方幹 {2}"
input_1 = input("name>>>")
input_2 = input("place>>>")
input_3 = input("doing>>>")
v = template.format(input_1,input_2,input_3)
print(v)
#23、製作隨機驗證碼,不區分大小寫。
#    流程:
#        -­‐  用戶執行程序
#        -­‐  給用戶顯示需要輸入的驗證碼
#        -­‐  用戶輸入的值
#            用戶輸入的值和顯示的值相同時現實正確信息;否則繼續生成隨機驗證碼繼續等待用戶輸入
#        生成隨機驗證碼代碼示例:

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

while True:
    code = check_code()
    print(code)
    app = input("請輸入驗證碼:")
    if code.upper() == app.upper():
        print("輸入正確")
        break
    else:
        print("輸入錯誤")
        s = input("是否重新輸入?")
    if s == "no":
        break
    else:
        continue

#24、開發敏感詞語過濾程序,提示用戶輸入內容,如果用戶輸入的內容中包含特殊的字符:
#如  "蒼老師"  "東京熱",則將內容替換爲  ***
print("24、")
content = input('請輸入內容:')
if "蒼老師" in content or "東京熱" in content:
    print("您輸入的信息中有敏感詞語")
    new_content = content.replace("蒼老師", "***").replace("東京熱", "***")
    print(new_content)
else:
    print(content)


#25、製作表格  
#    循環提示用戶輸入:用戶名、密碼、郵箱  (要求用戶輸入的長度不超過 20 個字符,如果超過則只有前 20 個字符有效)
#    如果用戶輸入  q 或 Q  表示不再繼續輸入,將用戶輸入的內容以表格形式打印
print("25、")
s = ""
while True:
    name = input("請輸入用戶名:")
    if name == "q" or name == "Q":
        break
    if len(name) >= 20:
        name = name[0:20]
    pwd = input("請輸入密碼:")
    if len(pwd) >= 20:
        pwd = pwd[0:20]
    email = input("請輸入郵箱:")
    if len(email) >= 20:
        email = email[0:20]
    template = "{0}\t{1}\t{2}\n"
    v = template.format(name, pwd, email)
    s += v
print(s.expandtabs(20))

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章