当前位置:
首页 > Python基础教程 >
-
python基础教程之Python简单试题3
1,水仙花数
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身
(例如:1^3 + 5^3+ 3^3 = 153) 代码如下:
方法一: 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,完美数
找出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,回文数
判断输入的正整数是不是回文数
回文数是指将一个正整数从左往右排列和从右往左排列值一样的数
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赌博游戏
玩家摇两颗色子 如果第一次摇出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("你可以走了")
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式