Python簡單試題3

1,水仙花數dom

水仙花數是指一個 3 位數,它的每一個位上的數字的 3次冪之和等於它自己spa

(例如:1^3 + 5^3+ 3^3 = 153)  代碼以下:code

方法一:
for i in range(100,1000): # 進行for循環
    num = i
    a = num % 10 # 取出個位數
    num = num // 10 # 向下整除
    b = num % 10 # 取出十位數
    num = num // 10
    c = num % 10
    num = num // 10
    if a ** 3 + b ** 3 + c ** 3 == i: # 根據條件進行判斷
        print(i)
方法二:
def flower_number1(num):
    length = len(str(num)) # 求出參數共有幾位
    count = length
    sum = 0
    while count: # 進行循環
        sum += (num // 10 ** (count - 1) % 10) ** length  
    # 運算符冪的優先級比乘除高,下邊式子與上邊式子相同
        # sum += (num // (10 ** (count - 1))% 10) ** length
        count -= 1
    if sum == num:
        return True
    else:
        return False
方法三:
def flower_number2(num):
    str1 = str(num) # 賦值生成一個新的字符串
    count = len(str1) # 計算出字符串的長度
    length = count
    sum = 0
    while count:
        sum += int(str1[count-1]) ** length
  # 取出字符串的第幾位數,至關於num 的個位,十位,,在進行乘方運算
        count -= 1
    if sum == num:
        return True
    else:
        return False

2,完美數blog

找出1~9999之間的全部完美數
完美數是除自身外其餘全部因子的和正好等於這個數自己的數
例如: 6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 + 14
import math # 導入數學模塊
for i in range(1,10000): # 循環
    sum = 0
    for j in range(1,int(math.sqrt(i)) + 1): # math.sqrt()爲開平方。
        # print(j)
        if i % j == 0: # 判斷是否爲因數
            sum = sum + j
            if  j != 1 and i / j != j: # 因數爲自身時不能加,因數兩個相同時只能加一個
                sum += i / j
    if sum == i:
        print(i)

3,百雞百錢遊戲

1只公雞5元 1只母雞3元 3只小雞1元 用100元買100只雞
問公雞 母雞 小雞各有多少隻
for cock in range(21): # 公雞最多有二十隻
    for hen in range(34): # 母雞最多有三十三隻
        chick = 100 - cock - hen # 算出小雞的數量
        if cock * 5 + hen * 3 + chick / 3 == 100: # 買雞共花費多少錢
            print("公雞:%d,母雞:%d,小雞:%d"%(cock,hen,chick))

4,斐波那鍥數列字符串

輸出斐波那鍥數列的前一百個數
0,1,1,2,3,f(n) = f(n-1) + f(n-2)
a = 1
b = 0
print(b) #輸出第一個數
for _ in range(99): # 進行九十九次循環
    b,a = a,a+b  # 交換兩數的順序
    print(a)

5,迴文數input

判斷輸入的正整數是否是迴文數數學

迴文數是指將一個正整數從左往右排列和從右往左排列值同樣的數for循環

num = input("請輸入一個數字:") # 輸入一個數字
str1 = num # num爲字符串形式
length = len(str1) # 求出字符串的長度
count = length // 2 # 向下整除法
flag = True  # 設置一個標誌位
for i in range(count):
    if str1[i] != str1[length-i-1]: # 進行判斷是否相同
        flag = False
        break
if flag:
    print("%d 是迴文數"%num)
else:
    print("%d 不是迴文數" % num)

6,Craps賭博遊戲class

玩家搖兩顆色子 若是第一次搖出7點或11點 玩家勝
若是搖出2點 3點 12點 莊家勝 其餘狀況遊戲繼續
玩家再次要色子 若是搖出7點 莊家勝
若是搖出第一次搖的點數 玩家勝
不然遊戲繼續 玩家繼續搖色子
玩家進入遊戲時有1000元的賭注 所有輸光遊戲結束
from random import randint # 導入隨機數模塊
money = 1000 # 你一共有1000元錢
while money > 0: # 如有錢則能夠繼續玩
    while True:
        stake = int(input("請下注:"))
        if stake > 0 and stake <= money: # 若輸入不正確從新輸入,直到正確爲止
            break
    flag = False # 設置標誌位,進行判斷
    dice1 = randint(1,6) + randint(1,6) # 進行搖骰子
    print("玩家第一次搖出的點數是:%d"%dice1)
    if dice1 == 2 or dice1 == 3 or dice1 == 12 :
        print("莊家勝")
        money -= stake # 莊家勝,玩家輸錢
        print("餘額爲:%d"%money)
    elif dice1 == 7 or dice1 == 11:
        print("玩家勝")
        money += stake # 玩家勝,莊家賠錢
        print("餘額爲:%d" % money)
    else:
        flag = True # 遊戲繼續,平局
    while flag:
        print("玩家再次搖色子")
        dice2 = randint(1,6) + randint(1,6) # 再次搖色子
        print("玩家第二次搖出的點數是:%d"%dice2)
        if dice2 == dice1:
            print("玩家勝")
            money += stake
            flag = False
            print("餘額爲:%d" % money)
        else:
            print("遊戲繼續")
            flag = False
            print("餘額爲:%d" % money)
print("你能夠走了")
相關文章
相關標籤/搜索