天天看點

python之基礎練習30題

學而時習之,不亦說乎!

python是一門語言,要經常練習,希望我整理出來的這些題目對初學者或者經常不用python的你有所幫助。

題目:

1,九九乘法表

2,手動輸入一個字元串,打散放進一個清單,小寫字母從大到小排列序,大寫字母保持不變

3,li=[1,2,3,4,5,6,7,8,8]組成多少個互不相同且不重複的兩位數

4,計算1+2+3...+98+99+100,并列印出計算公式 

5.清單['alex','egon','yuan','wusir','666']

1.把666替換成999

# 2.擷取"yuan"索引

# 3.假設不知道前面有幾個元素,分片得到最後的三個元素

6.切割字元串"luffycity"為"luffy","city"

7.求1~100間所有偶數的和(亦可奇數和,分别使用for,while循環寫)

8.從鍵盤接收一百分制成績(0~100),要求輸出其對應的成績等級A~E。

# 其中,90分以上為'A',80~89分為'B',70~79分為'C',60~69分為'D',60分以下為'E'。

9.輸入一年份,判斷該年份是否是閏年并輸出結果。(該程式可以重複使用 使用while True)

# 注:凡符合下面兩個條件之一的年份是閏年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。

10.将清單['alex', 'steven', 'egon'] 中的每一個元素使用 ‘\_’ 連接配接為一個字元串

11.求100以内不能被3整除的所有數,并把這些數字放在清單sum3=[]裡,并求出這些數字的總和和平均數。

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

13.猜數遊戲。預設一個0~9之間的整數,讓使用者猜一猜并輸入所猜的數,如果大于預設的數,顯示“太大”;

小于預設的數,顯示“太小”,如此循環,直至猜中該數,顯示“恭喜!你猜中了!

14、實作一個整數加法電腦

15.實作使用者輸入使用者名和密碼,當使用者名為 seven 或 alex 且 密碼為 123 時,顯示登陸成功,否則登陸失敗,

失敗時允許重複輸入三次 ###

16.使用while循環輸出2-3+4-5+6...+100的和:

17.使用 for 循環和 range 實作輸出1-2+3-4+5..+99的和

18.使用 while 循環實作輸出 1,2,3,4,5, 7,8,9, 11,12

19.使用 while 循環實作輸出 1-100 内的所有奇數

20.擺放家具

需求:

1).房子有戶型,總面積和家具名稱清單

新房子沒有任何的家具

2).家具有名字和占地面積,其中

床:占4平米

衣櫃:占2平面

餐桌:占1.5平米

3).将以上三件家具添加到房子中

4).列印房子時,要求輸出:戶型,總面積,剩餘面積,家具名稱清單

21、M與N的數學運算:使用者輸入兩個數 M 和 N,其中 N 是整數,計算M 和 N 的5種數學運算結果,

并依次輸出,結果間用空格分隔。5種數學運算分别是:M 與 N 的和、M 與 N 的乘積、

M 的 N 次幂、M除 N 的餘數、M 和 N 中較大的值。

22、将輸入的字元串垂直輸出

23、計算2的n次方,n由使用者輸入

24、成績轉換:編寫一個學生成績轉換程式,使用者輸入百分制的學生成績,成績大于或等于

60的輸出“pass”,否則輸出“fail”,成績不四舍五入。

25、完美立方:找到大于1的4個整數滿足完美立方等式:a3=b3+c3+d3(例如123=63+83+103)。

編寫一個程式,對于任意給定的正整數N(N ≤100),尋找所有的四元組(a,b,c,d),

滿足a3=b3+c3+d3,其中1<a,b,c,d≤N。

26、貨币轉換:寫一個程式進行貨币間币值轉換,其中:人民币和美元間匯率固定為:1美元 = 6.78人民币。

程式可以接受人民币或美元輸入,轉換為美元或人民币輸出。人民币采用RMB表示,美元USD表示,

符号和數值之間沒有空格。

27、月份縮寫:如果有 months = "Jan.Feb.Mar.Apr.May.Jun.Jul.Aug.Sep.Oct.Nov.Dec.",編寫一個程式,

使用者輸入一個月份的數字,輸出月份的縮寫。

28、恺撒密碼:凱撒密碼是古羅馬凱撒大帝用來對軍事情報進行加解密的算法,它采用了替換方法對資訊中

的每一個英文字元循環替換為字母表序列中該字元後面的第三個字元,假設使用者可能使用的輸入僅包含

小寫字母a~z和空格,請編寫一個程式,對輸入字元串進行凱撒密碼加密,直接輸出結果,其中空格不用進行加密處理。

29、3位水仙花數計算:“3位水仙花數”是指一個三位整數,其各位數字的3次方和等于該數本身。

例如:ABC是一個“3位水仙花數”,則:A的3次方+B的3次方+C的3次方 = ABC。

請按照從小到大的順序輸出所有的3位水仙花數,并輸出結果。

30、購物車 功能要求:

  要求使用者輸入總資産,例如:2000 顯示商品清單,讓使用者根據序号選擇商品,加入購物車 購買,如果商品總額大于總資産,提示賬戶餘額不足,否則,購買成功。

  goods = [

        {"name": "電腦", "price": 1999},

        {"name": "滑鼠", "price": 10},

        {"name": "遊艇", "price": 20},

        {"name": "美女", "price": 998},

 代碼:

1,九九乘法表:

for循環:

for i in range(1,10):
    for j in range(1,i+1):
        print(f"{j}*{i}={j*i}\t",end="")
    print()      

while循環:

i =1
while i < 10:
    j=1
    while j < i+1:
        print(f"{j}*{i}={j * i}\t", end="")
        j+=1
    print()
    i+=1      
str = input("請輸入一個字元串:")
str_list = list(str)
list =[]
dict={}
for i in range(len(str_list)):
    if "a"<=str_list[i]<="z":
        list.append(str_list[i])
    else:
        dict[i]=str_list[i]
list.sort()
list.reverse()
for i in dict:
    list.insert(i,dict[i])
new_str = "".join(list)
print(new_str)      
li=[1,2,3,4,5,6,7,8,8]
li2=[]
for i in range(len(li)):
    for j in range(len(li)):
        if i != j :
            str = 10*li[i]+li[j]
            li2.append(str)
li2_set = set(li2)
li3=list(li2_set)
print(li3)      
sum = 0
list=[]
for i in range(1,101):
    list.append(i)
    sum+=i

list1 =[str(i) for i in list]
# 把清單中的數字以字元串的方式存放在新清單中
str_list = "+".join(list1)
print(f"{str_list}={sum}")      

5.清單['alex','egon','yuan','wusir','666'](程式設計)

   1.把666替換成999

   2.擷取"yuan"索引

   3.假設不知道前面有幾個元素,分片得到最後的三個元素

list = ['alex','egon','yuan','wusir','666']
# 1,
list[-1]="999"
# 2,
print(list.index("yuan"))
# 3,
list1=[]
for i in range(-3,0):
    list1.append(list[i])
print(list1)      
str ="luffycity"
str1=str[:5]
str2=str[5:]
print(f"{str1},{str2}")      
# 偶數 和
sum = 0
for i in range(1,101):
    if i%2 == 0:
        sum +=i
print(sum)
# 列印出偶數公式及和
list =[]
sum =0
for i in range(1,101):
    if i%2 ==0:
        list.append(i)
        sum +=i
list1 = [str(i) for i in list]
str_list = "+".join(list1)
print(f"{str_list}={sum}")

i= 1
list=[]
sum =0
while i <101:
    if i%2 ==0:
        list.append(i)
        sum +=i
    i +=1
list1 = [str(i) for i in list]
str_list = "+".join(list1)
print(f"{str_list}={sum}")      

  其中,90分以上為'A',80~89分為'B',70~79分為'C',60~69分為'D',60分以下為'E'。

while True:
    str = input("請輸入分數:")
    if str.isdigit():
        int_str = int(str)
        if 100>=int_str >=90:
            print("A")
            # break
        elif 80<=int_str<=89:
            print("B")
            # break
        elif 70<=int_str<=79:
            print("c")
            # break
        elif int_str<60:
            print("E")
            # break
        else:
            print("輸入分數數值不對,請檢查")
    else:
        print("輸入非數值類型,請輸入數字類型:")      

 注:凡符合下面兩個條件之一的年份是閏年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。

while True:
    str=input("請輸入年份:")
    if str.isdigit():
        int_str = int(str)
        if int_str%400 ==0:
            print("閏年")
        elif int_str%4 ==0:
            if int_str%100 ==0:
                print("不是閏年")
            else:
                print("閏年")
    else:
        print("請輸入正确的年份")      
list = ['alex', 'steven', 'egon']
str = "\_".join(list)
print(str)      

11.求100以内不能被3整除的所有數,并把這些數字放在清單sum3=[]裡,并求出這些數字的總和和平均數

sum3 =[]
sum1=0
for i in range(1,101):
    if i%3 ==0:
        sum3.append(i)
        sum1 +=i
sum2 = sum1/len(sum3)
print(sum3)
print(sum1)
print(sum2)      
money = 10000
tr =True
i=0
while tr:
    money = money*1.0325
    i+=1
    if money//10000 >=2:
        tr = False
print(money)
print(i)      
#随機設定一個數,比如7
number = 7
i=True
while i:
    num = input("請輸入你要猜的數字:")
    if num.isdigit():
        num = int(num)
        if num < number:
            print("太小了")
        elif num > number:
            print("太大了")
        elif num == number:
            print("恭喜!你猜中了!")
            i = False
    else:
        print("輸入錯誤,請重新輸入")      
while True:
    num = input("請輸入要計算的整數算式:")
    sum1 = 0
    sum2 =0
    num_list = num.split("+")
    len_nlist = len(num_list)
    for i in num_list:
        if i.isdigit():
            i = int(i)
            sum1 += i
            sum2 += 1

        else:
            print("請輸入正确的整數加法運算算式")
            break
    if sum2 == len_nlist:
        print(sum1)      
tr = True
i = 0
while tr:
    user = input("請輸入使用者名:")
    passwed = input("請輸入密碼:")
    if user == "seven":
        if passwed.isdigit():
            passwed = int(passwed)
            if passwed == "123":
                print("登入成功")
            else:
                print("請重新登入,密碼錯誤")
        else:
            print("請重新登入,密碼非數字類型")
    elif user == "alex":
        if passwed.isdigit():
            passwed = int(passwed)
            if passwed == "123":
                print("登入成功")
            else:
                print("請重新登入,密碼錯誤")
        else:
            print("請重新登入,密碼密碼非數字類型")
    else:
        print("使用者名錯誤,請重新輸入")
    i +=1
    if i == 3:
        print("失敗已達三次,請明天重試")
        tr = False      
sum= 2
i=2

tr =True
while tr:
    if i ==101:
        tr = False
    if i%2==0:
        sum = sum -(i+1)
        i+=1

    elif i%2==1:
        sum += (i+1)
        i+=1
print(sum)      
sum=1
for i in range(1,99):
    if i%2==1:
       sum = sum -(i+1)
       print(sum)

    elif i % 2 ==0:
        sum = sum +(i+1)
        print(sum)

print(sum)      
tr = True
i = 1
while tr:
    if i <6:
        print(i)

    elif 6<i<10:
        print(i)
    elif 10<i<13:
        print(i)
        if i ==12:
            tr =False

    i+=1

      
i = 1
tr=True
i_list =[]
while tr:
    if i%2 ==1:
        i_list.append(i)
    elif i ==100:
        tr =False
    i+=1

print(i_list)      
host_dict ={"1室戶":"50","2室戶":"85","3室戶":"110"}
host_jiajv = {"床":"4","衣櫃":"2","餐桌":"1"}
i = input("請輸入房型:")
j = input("請輸入家具:")
j_list = j.split(",")
m_sum =0
for l in j_list:
    m = int(host_jiajv[l])
    m_sum +=m

n = int(host_dict[i])


k = n-m_sum


print(f"戶型:{i},總面積:{host_dict[i]}平米,剩餘面積{k}平米,家具清單:{j}")      

M 的 N 次幂、M除 N 的餘數、M 和 N 中較大的值

tr = True
while tr:
    m = input("請輸入M的數值:")
    if m.isdigit():
        m = int(m)
    else:
        print("輸入的數值不對!")
        break
    n = input("請輸入N的數值:")
    if n.isdigit():
        n=int(n)
        tr =False5

    else:
        print("輸入的數值不對!")
        break
    if m > n:
        j = m
    else:
        j = n
    print(f"{m+n} {m*n} {m**n} {m%n} {j}")      
str1 = input("請輸入你要輸入的内容:")
str_list = list(str1)
for i in str_list:
    print(i)      
tr = True
while tr:
    n = input("請輸入2的幾次方:")
    if n.isdigit():
        n=int(n)
        tr =False
    else:
        print("輸入的數值有誤,請檢查!")
print(f"2的{n}次方的值是{2**n}")      
tr = True
while tr:
    num = input("請輸入學生的成績:")
    num = float(num)
    if num >= 60:
        print("pass")
    else:
        print("fail")      
list1 =[]
list2 = []
for a in range(2,101):
    for b in range(2,101):
        for c  in range(2,101):
            for d in  range(2,101):
                if a**3 == b**3 + c**3 + d**3:
                    list1.append(a)
                    list1.append(b)
                    list1.append(c)
                    list1.append(d)
                    tuple1 =tuple(list1)
                    list2.append(tuple1)
                    list1 = []
print(list2)      
tr = True
while tr:
    bizhong = input("請輸入币種:")
    num = input("請輸入金額:")
    if bizhong == "RMB":
        num = float(num)
        jiner = num / 6.78
        print(f"兌換後的金額為{jiner}")
    elif bizhong =="USD":
        num = float(num)
        jiner = num *6.78
        print(f"兌換後的金額為{jiner}")
    else:
        print("輸入币種有誤,請檢查")      
months = "Jan.Feb.Mar.Apr.May.Jun.Jul.Aug.Sep.Oct.Nov.Dec."
months_list = months.split(".")
num = input("請輸入月份:")
if num.isdigit():
    num = int(num)
    if 0<num <13:
        print(months_list[num-1])
    else:
        print("輸入有誤")
else:
    print("輸入有誤哦")      
list1 =["d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","w","v","u","x","y","z","a","b","c"]
str1 = input("請輸入資訊:")
list2 = list(str1)
len_list2 = len(list2)
list3=[]
for i in range(len_list2):
    if "a"<= list2[i] <="z":
        list3.append(list1[i])
    elif list2[i] ==" ":
        list3.append(" ")
str2 = "".join(list3)
# print(str2)      
list1=[]
for a in range(1,10):
    for b in range(1,10):
        for c in range(1,10):
            if 100*a + 10 * b +c == a**3 + b**3 + c**3 :
                m = 100* a + 10*b + c
                list1.append(m)
# print(list1)      

        {"name": "美女", "price": 998}】

goods = [{"name": "電腦", "price": 1999},{"name": "滑鼠", "price": 10},
{"name": "遊艇", "price": 20},{"name": "美女", "price": 998}]
while True:
    price1 =input("請輸入總資産:")

    if price1.isdigit():
        price1 = int(price1)
        break
    else:
        print("總資産請輸入整數")
num = input("請輸入商品序号,多個商品用“,”隔開:")
list1 = num.split(",")
sum = 0
for i in list1:
    i = int(i)
    a = goods[i-1]["price"]

    sum += a
if sum <= price1:
    print("購買成功")
else:
    print("賬戶餘額不足")
for i in range(1,10):
    for j in range(1,i+1):
        print(f"{j}*{i}={j*i}\t",end="")
    print()
i =1
while i < 10:
    j=1
    while j < i+1:
        print(f"{j}*{i}={j * i}\t", end="")
        j+=1
    print()
    i+=1      

希望這些對您有幫助,有問題可留言