1. 程式人生 > 實用技巧 >直播1-含7的數

直播1-含7的數

# 練習題1 將字串反轉(使用至少兩種方法)
a = 'dgwqfa'
print(a[::-1])  # 轉成列表reverse再轉回去不行
# 其他思路:轉成列表倒序遍歷
n = len(list(a)) - 1
while n >= 0:
    print(list(a)[n], end='')
    n -= 1

# 練習題2 一個列表中記錄了某個手機號的全部數字, 另一個列表中則記錄了手機號的下標, 還原這個手機號碼。
list1 = [8, 3, 0, 9, 1, 4, 2, 6]
list2 = [4, 1, 6, 1, 7, 3, 5, 2, 6, 0, 1]
for i in
list2: print(list1[i]) # 練習題3 要求從鍵盤輸入一段字串,校驗格式是否符合識別符號命名規則,如果不符合,打印出不符合的原因。 s = input("請輸入字串:") if s[0].isdigit(): print("數字不能開頭") else: for i in s: if i.upper() not in "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789_": print("只能是數字字幕下劃線,不能其他符號") break else:
print("校驗成功") # 只要是語言isalpha都能通過,所以不好 # 練習題1:n的階乘。同for num = int(input("請輸入數字:")) res = 1 i = 1 while i <= num: res *= i i += 1 print("%d的階乘是:%d" % (num, res)) # 練習題2:打印出1-100之間除了含7和7的倍數之外的所有數字。 i = 0 while i < 100: i += 1 if i % 7 == 0 or i % 10 == 7 or i // 10 == 7: continue else
: print(i) # 練習題3:找出0到1000內的三個數a、b、c,其中a+b+c=1000且 a的平方+b的平方=c的平方。 # 不要用,費很長時間 for a in range(1001): for b in range(1001): for c in range(1001): if (a + b + c == 1000) and (a ** 2 + b ** 2 == c ** 2): print(a, b, c) # 優化1 for a in range(1001): for b in range(1001): if a ** 2 + b ** 2 == (1000 - a - b) ** 2: print(a, b, 1000 - a - b) # 優化2 for a in range(501): for b in range(501): if a ** 2 + b ** 2 == (1000 - a - b) ** 2: print(a, b, 1000 - a - b) # 優化3 0.25s for a in range(501): for b in range(501): if a + b + (a ** 2 + b ** 2) ** (1 / 2) == 1000: print(a, b, 1000 - a - b) # 優化5 0.07s for a in range(501): for b in range(501): if b == 1000 * (500 - a) / (1000 - a): print(a, b, 1000 - a - b)