Python习题(第2课)

一、天天向上的力量 C

  一年365天,以第1天的能力值为基数,记为1.0。当好好学习时,能力值相比前一天提高N‰;当没有学习时,由于遗忘等原因能力值相比前一天下降N‰。每天努力或放任,一年下来的能力值相差多少呢?其中,N的取值范围是1到10,N可以是小数。

  获得用户输入N,计算每天努力和每天放任365天后的能力值及能力间比值,其中,能力值保留小数点后2位,能力间比值输出整数,输出结果间采用英文逗号分隔。

  

  代码如下:

1 percent=eval(input())
2 hard=sunning=1
3 for i in range(2,366):
4   hard*=(1+percent/1000)
5   sunning*=(1-percent/1000)
6 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。 

 

  代码如下:

 1 num=eval(input())
 2 list1=[]
 3 while (num not in list1) and (num!=1):
 4   list1.append(num)
 5   a=num%10
 6   b=num//10%10
 7   c=num//100
 8   num=a**2+b**2+c**2 9 if num==1:
10   print('True')
11 else:
12   print('False')

三、跳台阶

  一只青蛙一次可以跳上1级台阶,也可以跳上2级。请问该青蛙跳上一个n级的台阶总共有多少种跳法。

  输入台阶数,输出一共有多少种跳法。

  注意:如果运算超时,请思考有什么办法降低时间复杂度。

 

  代码如下:(递归,可能会超出时间上限)

 1 def wawa(step):
 2   if step==1:
 3     way=1
 4   elif step==2:
 5     way=2
 6   else:
 7     way=wawa(step-1)+wawa(step-2)
 8   return way
 9 
10 step=eval(input())
11 print(wawa(step))

    (循环,思路简单而且高速)

 1 def wawa(step):
 2   if step==1 or step==2:
 3     return step
 4   a=1
 5   b=2
 6   c=0
 7   for i in range(3,step+1):
 8     c=a+b
 9     a=b
10     b=c
11   return c
12 
13 step=eval(input())
14 print(wawa(step))

四、百分制成绩转换五分制(循环)

  编写一个学生成绩转换程序,用户输入百分制的学生成绩,成绩大于或等于90且小于或等于100的输出为“A”,成绩大于或等于80且小于90的输出为“B”,成绩大于或等于70且小于80的输出为“C”,成绩大于或等于60且小于70的输出为“D”,成绩小于60的输出为“E”。输入数据不合法时输出“data error!”用户可反复输入成绩进行转换,输入负数时输出“end”并结束程序。

  代码如下:

 1 flag=1
 2 while flag:
 3   grade=input()
 4   try:
 5       grade=eval(grade)
 6       if 100>=grade>=90:
 7         print('A')
 8       elif 90>grade>=80:
 9         print('B')
10       elif 80>grade>=70:
11         print('C')
12       elif 70>grade>=60:
13         print('D')
14       elif 60>grade>=0:
15         print('E')
16       elif grade<0:
17         print('end')
18         flag=0
19       else:
20         print('data error!')
21   except:
22     print('data error!')

五、质数判断

  质数(Prime Number)又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数

  本题要求实现一个函数,判断参数是否是质数,是的话返回True,否则返回False。

  代码如下:

 1 def isPrime(num):
 2   import math
 3   for i in range(2,int(math.sqrt(num))+1):
 4     if num%i==0:
 5       return 0
 6   return 1
 7 
 8 num=int(input())
 9 if isPrime(num):
10     print('yes')
11 else:
12     print('no')

六、月份缩写

  编写一个程序,用户输入一个月份的数字,输出月份的缩写。

  代码如下:

1 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.'}
2 str1=int(input())
3 print(months[str1])

七、分段函数描述

  

  输入x,按上述分段函数求解。如果输入超出范围的x则输出“ERROR” 。

  代码如下:

1 x=eval(input())
2 if -1<x<=0:
3   print('f(x)=-10')
4 elif 0<x<=1:
5   print('f(x)=5')
6 elif 1<x<=2:
7   print('f(x)=9.6')
8 else:
9   print('ERROR')

八、今年多少天?

  闰年366天,其他年份365天。普通年(不能被100整除的年份)能被4整除的为闰年。(如2004年就是闰年,1999年不是闰年);

  世纪年(能被100整除的年份)能被400整除的是闰年。(如2000年是闰年,1900年不是闰年);

  用户输入一个正整数,代表年份,输出该年有多少天? 

  代码如下:

 1 year=int(input())
 2 if year%100==0:#世纪年
 3   if year%400==0:
 4     print('366')
 5   else:
 6     print('365')
 7 else:
 8   if year%4==0:
 9     print('366')
10   else:
11     print('365')

九、验证码较验

  用户登录网站经常需要输入验证码,验证码包含大小写字母和数字,随机出现。用户输入验证码时不区分大小写,只要各字符出现顺序正确即可通过验证。
  请写一个程序完成验证码的匹配验证,假设当前显示的验证码是'Qs2X'。
  如果用户输入验证码正确,输出“验证码正确”,输入错误时输出“验证码错误,请重新输入”。

  代码如下:

1 str1='Qs2X'
2 str2=input()
3 if str1.lower()==str2.lower():
4   print('验证码正确')
5 else:
6   print('验证码错误,请重新输入')

十、奇数数列求和

  求1+3+5+……+(2n-1)前n项和。

  代码如下:(这个真的是简单到不想发上来、、、、、)

1 i=int(input())
2 s=0
3 for i in range(1,i*2,2):
4   s=s+i
5 print(s)
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python习题中级中,我们可以通过编写代码实现以下任务: 首先,我们创建两个列表q和p,并对p进行排序。代码如下: q = [3, 5, 4] p = [5, 4, 3, 2, 1] sorted_p = sorted(p) 接下来,我们创建一个空的列表result,并将q中的数字依次放入result。然后,遍历排好序的p(即sorted_p),将不在q中的元素依次放入result。最后,输出结果result。下面是完整的代码: result = [] for ele in q: result.append(ele) for num in sorted_p: if num not in q: result.append(num) print(result) 根据引用的代码,我们可以看到在排序后的列表p中,数字2和1会重复两次,所以程序会在重复第二次结束循环,并打印整数为16的输出列表。 请注意,我无法提供完整的输出列表,因为它取决于排序后的p列表和q列表的具体内容。但是,当整数为16,输出列表应该包含q中的数并按顺序排列以及不在q中的p中的数字。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python 模块的使用 python基础训练题,模块的使用规则例程,提供python2代码例程](https://download.csdn.net/download/li171049/88226348)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [大数据开发中级练习题目(python超详细)](https://blog.csdn.net/Jmayday/article/details/128456658)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WoLykos

若对你有所帮助,请鼓励我一下~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值