Python十题(第2课)
一、天天向上的力量 C
一年365天,以第1天的能力值为基数,记为1.0。当好好学习时,能力值相比前一天提高N‰;当没有学习时,由于遗忘等原因能力值相比前一天下降N‰。每天努力或放任,一年下来的能力值相差多少呢?其中,N的取值范围是1到10,N可以是小数。
获得用户输入N,计算每天努力和每天放任365天后的能力值及能力间比值,其中,能力值保留小数点后2位,能力间比值输出整数,输出结果间采用英文逗号分隔。
代码如下:
percent=eval(input())
hard=sunning=1
for i in range(2,366):
hard*=(1+percent/1000)
sunning*=(1-percent/1000)
print('%.2f,%.2f,%d' %(hard,sunning,hard/sunning))
二、快乐的数字
编写一个算法来确定一个数字是否“快乐”。 快乐的数字按照如下方式确定:从一个正整数开始,用其每位数的平方之和取代该数,并重复这个过程,直到最后数字要么收敛等于1且一直等于1,要么将无休止地循环下去且最终不会收敛等于1。能够最终收敛等于1的数就是快乐的数字。
例如: 19 就是一个快乐的数字,计算过程如下:
- 12 + 92 = 82
- 82 + 22 = 68
- 62 + 82 = 100
- 12 + 02 + 02 = 1
当输入时快乐的数字时,输出True,否则输出False。
代码如下:
num=eval(input())
list1=[]
while (num not in list1) and (num!=1):
list1.append(num)
a=num%10
b=num//10%10
c=num//100
num=a**2+b**2+c**2 if num==1:
print('True')
else:
print('False')
三、跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级。请问该青蛙跳上一个n级的台阶总共有多少种跳法。
输入台阶数,输出一共有多少种跳法。
注意:如果运算超时,请思考有什么办法降低时间复杂度。
代码如下:(递归,可能会超出时间上限)
def wawa(step):
if step==1:
way=1
elif step==2:
way=2
else:
way=wawa(step-1)+wawa(step-2)
return way step=eval(input())
print(wawa(step))
(循环,思路简单而且高速)
def wawa(step):
if step==1 or step==2:
return step
a=1
b=2
c=0
for i in range(3,step+1):
c=a+b
a=b
b=c
return c step=eval(input())
print(wawa(step))
四、百分制成绩转换五分制(循环)
编写一个学生成绩转换程序,用户输入百分制的学生成绩,成绩大于或等于90且小于或等于100的输出为“A”,成绩大于或等于80且小于90的输出为“B”,成绩大于或等于70且小于80的输出为“C”,成绩大于或等于60且小于70的输出为“D”,成绩小于60的输出为“E”。输入数据不合法时输出“data error!”用户可反复输入成绩进行转换,输入负数时输出“end”并结束程序。
代码如下:
flag=1
while flag:
grade=input()
try:
grade=eval(grade)
if 100>=grade>=90:
print('A')
elif 90>grade>=80:
print('B')
elif 80>grade>=70:
print('C')
elif 70>grade>=60:
print('D')
elif 60>grade>=0:
print('E')
elif grade<0:
print('end')
flag=0
else:
print('data error!')
except:
print('data error!')
五、质数判断
质数(Prime Number)又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。
本题要求实现一个函数,判断参数是否是质数,是的话返回True,否则返回False。
代码如下:
def isPrime(num):
import math
for i in range(2,int(math.sqrt(num))+1):
if num%i==0:
return 0
return 1 num=int(input())
if isPrime(num):
print('yes')
else:
print('no')
六、月份缩写
编写一个程序,用户输入一个月份的数字,输出月份的缩写。
代码如下:
months={1: 'Jan.',2:'Feb.',3:'Mar.',4:'Apr.',5:'May.',6:'Jun.',7:'Jul.',8:'Aug.',9:'Sep.',10:'Oct.',11:'Nov.',12:'Dec.'}
str1=int(input())
print(months[str1])
七、分段函数描述
输入x,按上述分段函数求解。如果输入超出范围的x则输出“ERROR” 。
代码如下:
x=eval(input())
if -1<x<=0:
print('f(x)=-10')
elif 0<x<=1:
print('f(x)=5')
elif 1<x<=2:
print('f(x)=9.6')
else:
print('ERROR')
八、今年多少天?
闰年366天,其他年份365天。普通年(不能被100整除的年份)能被4整除的为闰年。(如2004年就是闰年,1999年不是闰年);
世纪年(能被100整除的年份)能被400整除的是闰年。(如2000年是闰年,1900年不是闰年);
用户输入一个正整数,代表年份,输出该年有多少天?
代码如下:
year=int(input())
if year%100==0:#世纪年
if year%400==0:
print('')
else:
print('')
else:
if year%4==0:
print('')
else:
print('')
九、验证码较验
用户登录网站经常需要输入验证码,验证码包含大小写字母和数字,随机出现。用户输入验证码时不区分大小写,只要各字符出现顺序正确即可通过验证。
请写一个程序完成验证码的匹配验证,假设当前显示的验证码是'Qs2X'。
如果用户输入验证码正确,输出“验证码正确”,输入错误时输出“验证码错误,请重新输入”。
代码如下:
str1='Qs2X'
str2=input()
if str1.lower()==str2.lower():
print('验证码正确')
else:
print('验证码错误,请重新输入')
十、奇数数列求和
求1+3+5+……+(2n-1)前n项和。
代码如下:(这个真的是简单到不想发上来、、、、、)
i=int(input())
s=0
for i in range(1,i*2,2):
s=s+i
print(s)
Python十题(第2课)的更多相关文章
- Python小白的数学建模课-A1.2021年数维杯C题(运动会优化比赛模式探索)探讨
Python小白的数学建模课 A1-2021年数维杯C题(运动会优化比赛模式探索)探讨. 运动会优化比赛模式问题,是公平分配问题 『Python小白的数学建模课 @ Youcans』带你从数模小白成为 ...
- Python小白的数学建模课-A1.国赛赛题类型分析
分析赛题类型,才能有的放矢. 评论区留下邮箱地址,送你国奖论文分析 『Python小白的数学建模课 @ Youcans』 带你从数模小白成为国赛达人. 1. 数模竞赛国赛 A题类型分析 年份 题目 要 ...
- Python小白的数学建模课-A3.12 个新冠疫情数模竞赛赛题与点评
新冠疫情深刻和全面地影响着社会和生活,已经成为数学建模竞赛的背景帝. 本文收集了与新冠疫情相关的的数学建模竞赛赛题,供大家参考,欢迎收藏关注. 『Python小白的数学建模课 @ Youcans』带你 ...
- C语言考试解答十题
学院比较奇葩,大一下期让学的VB,这学期就要学C++了,然后在开学的前三个周没有课,就由老师讲三个周的C语言,每天9:30~11:30听课,除去放假和双休日,实际听课时间一共是12天*2小时,下午是1 ...
- [持久更新] 剑指offer题目Python做题记录
第一题 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路:先快速定位到 ...
- Python小白的数学建模课-03.线性规划
线性规划是很多数模培训讲的第一个算法,算法很简单,思想很深刻. 要通过线性规划问题,理解如何学习数学建模.如何选择编程算法. 『Python小白的数学建模课 @ Youcans』带你从数模小白成为国赛 ...
- Python小白的数学建模课-04.整数规划
整数规划与线性规划的差别只是变量的整数约束. 问题区别一点点,难度相差千万里. 选择简单通用的编程方案,让求解器去处理吧. 『Python小白的数学建模课 @ Youcans』带你从数模小白成为国赛达 ...
- Python小白的数学建模课-05.0-1规划
0-1 规划不仅是数模竞赛中的常见题型,也具有重要的现实意义. 双十一促销中网购平台要求二选一,就是互斥的决策问题,可以用 0-1规划建模. 小白学习 0-1 规划,首先要学会识别 0-1规划,学习将 ...
- Python小白的数学建模课-06 固定费用问题
Python 实例介绍固定费用问题的建模与求解. 学习 PuLP工具包中处理复杂问题的快捷使用方式. 『Python小白的数学建模课 @ Youcans』带你从数模小白成为国赛达人. 前文讲到几种典型 ...
随机推荐
- TCP协议—三次握手四次挥手的原理<转>
三次握手四次挥手的原理 TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接.在TCP/IP协议中,TCP 协议提供可靠的连接服务,连接是通过三次握手进行初始化的.三 ...
- MS SQL xp_instance_regwrite设置注册表疑惑
以前写过一篇博文"MS SQL 日志记录管理",里面介绍了如何设置SQL Server的错误日志的最大归档数量,如果在SSMS的UI界面设置,可以从"Manageme ...
- Jlink 烧写Uboot
第一章 Hi3531_SDK_Vx.x.x.x版本升级操作说明 如果您是首次安装本SDK,请直接参看第2章. 第二章首次安装SDK 1.Hi3531 SDK包位置 在"Hi3531_V100 ...
- Android WebView的缓存方式分析
WebView的缓存可以分为(1)页面缓存和(2)数据缓存. 页面缓存是指当WebView加载一个网页时的html.JS.CSS等页面或者资源数据.这些缓存资源是由于浏览器的行为而产生,开发者只能通过 ...
- windows2003服务器系统日志:查看电脑远程登录记录
控制面板>>管理工具>>事件查看器>>选择安全性再点工具栏目中查看>>筛选>>事件ID填528进行过滤,时间你看是多久,双击查看之后就可以找 ...
- R语言︱文本挖掘之中文分词包——Rwordseg包(原理、功能、详解)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:与前面的RsowballC分词不同的 ...
- Windows7 64位安装最新版本MySQL服务器
Windows7 64位安装最新版本MySQL服务器 近期,一直在研究MySQL数据库,经常修改配置文件,导致MySQL数据库无法使用,不得不反复重装MySQL数据库.以下是在Windows7 64位 ...
- freemarker之数组
freemarker之数组 1.设计思路 (1)声明一个数组 (2)打印数组中的元素 2.设计源码 <#--freemarker数组--> <#assign nums=[12,34, ...
- C# 利用Newtonsoft.Json进行Json序列化与反序列化
我们可以通过DataContractJsonSerializer类来序列化一个对象为json字符串. public class JsonConvert<T> { public static ...
- C#连接oracle数据库步骤
1. 确认操作系统类型,操作系统是64位还是32位: 2. 按对应版本安装oralce客户端版本(64位还是32位): 3. 安装oralce管理员模块,同时赋予安装目录权限 4. 注册old ...