05python的相關練習
1.把A列表的第三到第六位之間的元素刪除。
# 把A列列表的第三到第六位之間的元素刪除。
A = [i for i in range(1,20)] #產生一個列表
print("刪除前:",A)
for i in range(2): #思路:刪除當前下標的元素後,後一個元素的下標變為當前下標,再次刪除就行了
del A[3]
print("被刪除的元素:",A[3])
print("刪除後:",A)
執行結果:
刪除前: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
被刪除的元素: 5
被刪除的元素: 6
刪除後: [1, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
2.已知A列列表,B列列表,定義⼀一個列列表C,要求C包含A,B陣列中的資料(無重複值)。
# 已知A列列表,B列列表,定義⼀一個列列表C,要求C包含A,B陣列中的資料(無重複值)。
A = [i for i in range(1,20)]
B = [i for i in range(10,30)]
C = A+B # 先把兩個列表合併在一起 然後再去去除重複的元素
# 去除重複的元素
i = 0 # i表示從左邊取出元素的下標
while i <len(C):
for x in range(len(C)-1,i,-1): # x 表示從列表右邊取出元素的下標,從右邊一直取到下標(i-1)
if C[i] == C[x]: # 兩個元素相同 刪除右邊的元素,保留左邊的元素。
del C[x]
i += 1
print("去除重複元素後的C列表:",C)
執行結果:
去除重複後的C列表: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
3.求s=a+aa+aaa+aaaa+aa...a的值,其中a是⼀一個數字。例例如2+22+222+2222+22222(此時共有5個數相 加),⼏幾個數相加有鍵盤控制。
# 求s=a+aa+aaa+aaaa+aa...a的值,其中a是⼀一個數字。例例如2+22+222+2222+22222(此時共有5個數相 加),⼏幾個數相加有鍵盤控制。
while True:
n = int(input("請輸入N的值:"))
a = int(input("請輸入a的值:"))
if 0 <= a <= 9: # a的值不能超過9
a = str(a)
s = 0
for i in range(1, n+1):
number = a * i
print(number)
s += int(number)
print("他們的和是:", s)
break
else:
print("輸入的a值有問題 請重新輸入:")
執行結果:
請輸入N的值:9
請輸入a的值:12
輸入的a值有問題 請重新輸入:
請輸入N的值:6
請輸入a的值:1
1
11
111
1111
11111
111111
他們的和是: 123456
3. 列印圖形1
n = 4
@
@@
@@@
@@@@
n = int(input("請輸入N的值:"))
for i in range(n):
for x in range(i+1):
print("@",end = "")
print("")
執行結果:
請輸入N的值:6
@
@@
@@@
@@@@
@@@@@
@@@@@@
4.列印圖形2
n = int(input("請輸入N的值:"))
# 列印正三角
for i in range(1,n+1): # i 控制列印的行數
for x in range(n-i): #第一(i)排列印n-1(n-i)個空格i,第二行列印
print(" ",end="") #控制列印空格
for y in range(i):
print("@ ",end="")
print("") #列印完一行就換行
print("正三角列印完畢!")
#列印倒三角:
for i in range(n): # i 控制列印的行數
for y in range(n-i):
print("@ ",end="")
print("") #列印完一行就換行
print("倒三角列印完畢!")
執行結果:
請輸入N的值:5
@
@ @
@ @ @
@ @ @ @
@ @ @ @ @
正三角列印完畢!
@ @ @ @ @
@ @ @ @
@ @ @
@ @
@
倒三角列印完畢
5. 輸入兩個正整數m和n,求其最大公約數和最小公倍數。
# 輸⼊入兩個正整數m和n,求其最⼤大公約數和最⼩小公倍數
m = int(input("請輸入m的值:"))
n = int(input("請輸入n的值:"))
if m<n:
temp = m
m = n #交換兩數的值 #交換兩個數的值,是為了固定大的數字在前,小的數字在後,方便後面寫程式碼
n = temp
for i in range(n,0,-1): #思路:約數從最大的開始找起
if m % i == 0 and n % i == 0:
print("%d與%d的最大公約數是:%d"%(m,n,i))
print("%d與%d的最小公倍數是:%d" % (m, n, m*n/i))
break #找到的第一個就是最大公約數,後面的不用再繼續。
執行結果:
請輸入m的值:36
請輸入n的值:96
96與36的最大公約數是:12
96與36的最小公倍數是:288
6. ⼀個數如果恰好等於它的因子之和,這個數就稱為 "完數 "。例如6=1+2+3.程式設計 找出1000以內的所有 完數
# ⼀一個數如果恰好等於它的因⼦子之和,這個數就稱為 "完數 "。例例如6=1+2+3.程式設計 找出1000以內的所有 完數
number = []
for i in range(1,1001):
for x in range(1,i): # x 表示i這個數的一個因子
if i % x == 0:
number.append(x) #把x加入到一個列表中,方便後面求和。
s = 0 # s 用於儲存因子的和
for y in range(len(number)): # 把因子依次取出來並且相加
s += number[y]
if s == i:
print("找到了一個完數:",i,end=" = ")
for n in range(len(number)): # 為了列印時好看設定的程式碼 可以刪除
if n==len(number)-1:
print(number[n])
else:
print(number[n],end="+")
print ("")
number = [] #每一個主迴圈末尾 儲存因子的列表要清空 否則不能正確儲存下一個數的因子
執行結果:
找到了一個完數: 6 = 1+2+3
找到了一個完數: 28 = 1+2+4+7+14
找到了一個完數: 496 = 1+2+4+8+16+31+62+124+248
7. 輸出9*9口訣
# 列印九九乘法表
for i in range(1,10):
for x in range(1,i+1): # 太簡單 就不解釋了
print("%s×%s=%s\t"%(x,i,x*i),end="")
print("")
執行結果:
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
1×4=4 2×4=8 3×4=12 4×4=16
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81
8.一個5位數,判斷它是不是迴文數。即12321是回⽂文數,個位與萬位相同,十位與千位相同。
while True:
n = input("請輸入一位五位整數:")
if len(n) == 5 : #太簡單 就不解釋了
if n[0]==n[-1] and n[1]==n[-2]:
print("%s是一個迴文數" % (n))
break
else:
print("%s不是一個迴文數"%(n))
break
else:
print("輸入的數不是五位數,請重新輸入")
執行結果:
請輸入一位五位整數:1235
輸入的數不是五位數,請重新輸入
請輸入一位五位整數:12345
12345不是一個迴文數
9.列印圖形(菱形)
# 列印圖形(菱形)
n = int(input("請輸入N的值:")) #整體思路:將上面列印正三角的程式碼,後面加上列印倒的正三角的程式碼就行了
for i in range(1,n+1): # i 控制列印的行數
for x in range(n-i): #第一(i)排列印n-1(n-i)個空格i,第二行列印
print(" ",end="") #控制列印空格
for y in range(i):
print("@ ",end="")
print("")
for i in range(1, n): # i 控制列印的行數for x in range(i): # 第一(i)排列印n-1(n-i)個空格i,第二行列印
for x in range(i):
print(" ", end="") # 控制列印空格
for y in range(n-i):
print("@ ", end="")
print("") #列印完一行就換行
print("列印完畢!")
執行結果:
請輸入N的值:7
@
@ @
@ @ @
@ @ @ @
@ @ @ @ @
@ @ @ @ @ @
@ @ @ @ @ @ @
@ @ @ @ @ @
@ @ @ @ @
@ @ @ @
@ @ @
@ @
@
列印完畢!
10.輸入⼀行字元,分別統計出其中英文字母、空格、數字和其它字元的個數。
str1 = input("請隨便輸入一些字元吧:")
chinese = 0
english = 0 # 整體思路:用unicode編碼來判斷取出的字元是什麼屬性。
space = 0
other =0
number = 0
for i in str1:
if 0x4e00 <= ord(i) <= 0x9fbf: #中文的編碼在這個區間
chinese += 1
elif 0x0041 <= ord(i) <= 0x005a or 0x0061 <= ord(i) <= 0x007a: #英文字母的編碼在這個區間
english += 1
elif 0x0030 <= ord(i) <= 0x0039: # 數字的編碼在這個區間
number += 1
elif ord(i) == 0x00a0 or ord(i) == 0x0020: #空格的編碼是這個
space += 1
else: #剩下的就是其他的字元了
other += 1
print("您輸入的字串中:漢字有%d個,數字有%d個,字母有%d個,空格有%d個,其他字元有%d個"%(chinese,number,english,space,other))
執行結果:
請隨便輸入一些字元吧:123 一二三,。ACD、、】abc
您輸入的字串中:漢字有3個,數字有3個,字母有6個,空格有3個,其他字元有5個
相關文章
- python相關練習題Python
- 資料庫 (相關練習)資料庫
- 數字影像處理相關練習
- 六,陣列筆記及相關練習題大全陣列筆記
- JavaSE基礎知識分享(二)相關練習題Java
- arm相關學習
- 關於程式設計的基本練習程式設計
- 關於重構的一點練習
- 資料庫——一些復健(主要是約束和索引相關練習)資料庫索引
- 深度學習相關理論深度學習
- 深度學習相關論文深度學習
- three.js學習3_相機相關JS
- JavaScript 複習之 Object物件的相關方法JavaScriptObject物件
- Machine Learning (11) - 關於 Decision Tree 的小練習Mac
- View工作流程-相關學習View
- 強化學習相關資料強化學習
- 執行緒池相關複習執行緒
- 最近學習了限流相關的演算法演算法
- 學習PHP中的URL相關操作函式PHP函式
- 異常執行緒的相關複習(前)執行緒
- mysql練習 —— 關於一些函式的使用MySql函式
- Machine Learning(16) - 關於 K Means Clustering 的練習題Mac
- mysql三表關聯查詢練習MySql
- 自學linux第一關練習題Linux
- Android效能優化相關的學習記錄(1)Android優化
- 圖學習相關論文快訊
- JVM相關知識整理和學習JVM
- 網路、HTTP相關學習總結HTTP
- GC相關知識簡單學習GC
- tensorflow相關函式學習總結函式
- markdown 使用練習練習
- Array的練習
- 練習的力量
- Machine Learning (6) - 關於 Logistic Regression (Multiclass Classification) 的小練習Mac
- Machine Learning (7) - 關於 Logistic Regression (Binary Classification) 的小練習Mac
- Machine Learning (9) - 關於 Logistic Regression (Multiclass Classification) 的小練習Mac
- 如何系統的學習伺服器相關知識?伺服器
- Python學習系列之一: python相關環境的搭建Python