Python简单试题3
生活随笔
收集整理的這篇文章主要介紹了
Python简单试题3
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1,水仙花數(shù)
水仙花數(shù)是指一個(gè) 3 位數(shù),它的每個(gè)位上的數(shù)字的 3次冪之和等于它本身
(例如:1^3 + 5^3+ 3^3 = 153)??代碼如下:
方法一: for i in range(100,1000): # 進(jìn)行for循環(huán)num = ia = num % 10 # 取出個(gè)位數(shù)num = num // 10 # 向下整除b = num % 10 # 取出十位數(shù)num = num // 10c = num % 10num = num // 10if a ** 3 + b ** 3 + c ** 3 == i: # 根據(jù)條件進(jìn)行判斷print(i) 方法二: def flower_number1(num):length = len(str(num)) # 求出參數(shù)共有幾位count = lengthsum = 0while count: # 進(jìn)行循環(huán)sum += (num // 10 ** (count - 1) % 10) ** length # 運(yùn)算符冪的優(yōu)先級(jí)比乘除高,下邊式子與上邊式子相同# sum += (num // (10 ** (count - 1))% 10) ** lengthcount -= 1if sum == num:return Trueelse:return False 方法三: def flower_number2(num):str1 = str(num) # 賦值生成一個(gè)新的字符串count = len(str1) # 計(jì)算出字符串的長度length = countsum = 0while count:sum += int(str1[count-1]) ** length# 取出字符串的第幾位數(shù),相當(dāng)于num 的個(gè)位,十位,,在進(jìn)行乘方運(yùn)算count -= 1if sum == num:return Trueelse:return False2,完美數(shù)
找出1~9999之間的所有完美數(shù)完美數(shù)是除自身外其他所有因子的和正好等于這個(gè)數(shù)本身的數(shù)
例如: 6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 + 14 import math # 導(dǎo)入數(shù)學(xué)模塊 for i in range(1,10000): # 循環(huán)sum = 0for j in range(1,int(math.sqrt(i)) + 1): # math.sqrt()為開平方。# print(j)if i % j == 0: # 判斷是否為因數(shù)sum = sum + jif j != 1 and i / j != j: # 因數(shù)為自身時(shí)不能加,因數(shù)兩個(gè)相同時(shí)只能加一個(gè)sum += i / jif 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 # 算出小雞的數(shù)量if cock * 5 + hen * 3 + chick / 3 == 100: # 買雞共花費(fèi)多少錢print("公雞:%d,母雞:%d,小雞:%d"%(cock,hen,chick))
4,斐波那鍥數(shù)列
輸出斐波那鍥數(shù)列的前一百個(gè)數(shù)0,1,1,2,3,f(n) = f(n-1) + f(n-2) a = 1 b = 0 print(b) #輸出第一個(gè)數(shù) for _ in range(99): # 進(jìn)行九十九次循環(huán)b,a = a,a+b # 交換兩數(shù)的順序print(a)
5,回文數(shù)
判斷輸入的正整數(shù)是不是回文數(shù)
回文數(shù)是指將一個(gè)正整數(shù)從左往右排列和從右往左排列值一樣的數(shù)
num = input("請(qǐng)輸入一個(gè)數(shù)字:") # 輸入一個(gè)數(shù)字 str1 = num # num為字符串形式 length = len(str1) # 求出字符串的長度 count = length // 2 # 向下整除法 flag = True # 設(shè)置一個(gè)標(biāo)志位 for i in range(count):if str1[i] != str1[length-i-1]: # 進(jìn)行判斷是否相同flag = Falsebreak if flag:print("%d 是回文數(shù)"%num) else:print("%d 不是回文數(shù)" % num)6,Craps賭博游戲
玩家搖兩顆色子 如果第一次搖出7點(diǎn)或11點(diǎn) 玩家勝如果搖出2點(diǎn) 3點(diǎn) 12點(diǎn) 莊家勝 其他情況游戲繼續(xù)
玩家再次要色子 如果搖出7點(diǎn) 莊家勝
如果搖出第一次搖的點(diǎn)數(shù) 玩家勝
否則游戲繼續(xù) 玩家繼續(xù)搖色子
玩家進(jìn)入游戲時(shí)有1000元的賭注 全部輸光游戲結(jié)束 from random import randint # 導(dǎo)入隨機(jī)數(shù)模塊 money = 1000 # 你一共有1000元錢 while money > 0: # 若有錢則可以繼續(xù)玩while True:stake = int(input("請(qǐng)下注:"))if stake > 0 and stake <= money: # 若輸入不正確重新輸入,直到正確為止breakflag = False # 設(shè)置標(biāo)志位,進(jìn)行判斷dice1 = randint(1,6) + randint(1,6) # 進(jìn)行搖骰子print("玩家第一次搖出的點(diǎn)數(shù)是:%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 # 游戲繼續(xù),平局while flag:print("玩家再次搖色子")dice2 = randint(1,6) + randint(1,6) # 再次搖色子print("玩家第二次搖出的點(diǎn)數(shù)是:%d"%dice2)if dice2 == dice1:print("玩家勝")money += stakeflag = Falseprint("余額為:%d" % money)else:print("游戲繼續(xù)")flag = Falseprint("余額為:%d" % money) print("你可以走了")
?
?轉(zhuǎn)載于:https://www.cnblogs.com/cong12586/p/10907690.html
總結(jié)
以上是生活随笔為你收集整理的Python简单试题3的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DirectX修复工具增强版
- 下一篇: 计算机网络技术论文致谢,路由器论文致谢