Python练习题(二)
密码正确吗
【问题描述】试编写一个程序判断6位密码是否正确,若密码正确输出right,密码不正确输出wrong,如果输入的密码有非数字字符则输出wrong。密码规则是: 第i位数字是第i-1位数字加1后的3次方的个位数( 2<=i<=6)。
【输入形式】一个六位密码
【输出形式】”right” 或者”wrong”
【样例输入】272727
【样例输出】right
【样例说明】密码272727中第2位的7是第1位的2加1后的3次方的个位数。又,(7+1)的3次方为512,其个位数为2),以此类推。
1 | a = input() |
字符串大小写互换
字符串中字母大小写互换
【问题描述】编写程序,功能是把输入的字符串的大写字母变成小写字母,小写字母变成大写字母,非字母的字符不作变换。输出变换后的结果。
【输入形式】字符串,包含字母和非字母字符。
【输出形式】字符串,字母的大小写已经发生变换。
【样例输入】abcABC
【样例输出】ABCabc
1 | a = input() |
求绝对值最小者
【问题描述】编写程序实现:计算并输出标准输入的三个数中绝对值最小的数。
【输入形式】标准输入的每一行表示参与计算的一个数。
【输出形式】标准输出的一行表示输入的三个数中绝对值最小的数, 如果有多个, 以一个空格作为间隔.
【样例输入】
-1
3
1
【样例输出】
-1.0
1.0
【样例说明】
【评分标准】
1 | a1 = float(input()) |
月份天数
【问题描述】
编写一个函数 day_of_month(year, month)
编写程序输入年(year)、月(month),调用该函数,返回该年份该月的天数,输出返回的天数。
公历闰年的计算方法为:
年份能被4整除且不能被100整除的为闰年
或者,年份能被400整除的是闰年。
【输入描述】
共一行。有两个整数,第一个是年份,第二个是月份。年份和月份之间以一个空格隔开。
【输出描述】
输出该年该月的天数。
【输入示例】
2017 11
【输出示例】
30
1 | import calendar |
凯撒加密
【问题描述】
凯撒密码是古罗马凯撒大帝用来保护重要军情的加密系统。这套密码系统在现在看来很低级,但是在古罗马时期还是发挥了重要作用的。
凯撒密码的根本思想是按照字母表排列顺序将明文中每个字母变换成其后第n个字母。这里,n(n=1~25)被称作秘钥。
请编写程序,针对不同的输入字符串和移动位数,输出经过凯撒加密之后的字符串。
【输入形式】
第一个输入参数是移动的位数n,中间间隔一个空格之后,第二个输入参数是待加密的原文字符串
【输出形式】
加密后的密文字符串。注意,只加密字母,且不改变字母大小写。待加密的字符串可能存在比如”hello world”的形式,若与第一个参数一起以input的方式输入,在调用split()的时候要注意,会将待加密字符串也一并分割了。split()方法有参数指定分割多少项,建议采用,请上网搜索说明文档。
【样例输入】
5 NUDT
【样例输出】
SZIY
【样例说明】
输入参数中第一个参数’5’表示移动位数n=5,然后将第二个输入参数中每个字母都向后移动5位,得到输出字符串。
1 | s = input() |
统计字符串中非英文字母个数
【问题描述】统计字符串s中非英文字母的个数并输出。
【输入形式】字符串s
【输出形式】非英文字母的个数
【输入示例】a1b2
【输出示例】2
1 | print(sum(not i.isalpha() for i in input())) |
统计正负数个数
【问题描述】从键盘输入非0整数,以输入0为输入结束标志,求平均值,统计正数负数个数
【输入形式】
每个整数一行。最后一行是0,表示输入结束。
【输出形式】
输出三行。
第一行是平均值。第二行是正数个数。第三行是负数个数。
【样例输入】
1
1
1
0
【样例输出】
1
3
0
1 | a = [] |
换散币
【问题描述】
将n元(n是100的倍数)换成用10元、5
元、2
元的组合(其中每一面值都可取0)
【输入形式】
输入钱币总额n
【输出形式】
输出组合数
【样例输入】
100
【样例输出】
66
1 | n = int(input()) |
积最大的分解
【问题描述】从键盘输入一个正整数n(n>1),该正整数可以分解成两个正整数k1和k2之和(允许k1和k2相等)。请编写一个函数求使两个正整数的乘积最大的分解方案,并返回乘积max。
【输入形式】标准输入的一行表示正整数n
【输出形式】标准输出的一行表示最大乘积max,若输入的数据不合法(如:负整数、0或1),输出”illegal input”。
【样例输入】20
【样例输出】100
【样例说明】20=10 + 10,此时积最大,为100。
1 | a = int(input()) |
判及格与否
【问题描述】
编写程序,功能是输入一个百分制分数,输出及格与否的结论。不考虑非法输入的情形。
【输入形式】
输入一个0-100(包括0和100)之间的整数。
【输出形式】
如果及格(分数大于等于60),则输出“pass”,否则输出“fail”(大小写必须一致)。
【样例输入】
80
【样例输出】
pass
1 | a = int(input()) |
找对称数
【问题描述】已知10个四位数输出所有对称数及个数 n,例如1221、2332都是对称数
【输入形式】10个四位数,以空格分隔开
【输出形式】输入的四位数中的所有对称数,对称数个数
【样例输入】1221 2243 2332 1435 1236 5623 4321 4356 6754 3234
【样例输出】1221 2332 2
【样例说明】为测试程序健壮性,输入数中可能包括3位数、5位数等
【评分标准】
1 | # a = input() |
猜数游戏
【问题描述】
编写“猜数游戏”程序,功能是:如果用户输入的数等于程序选定的数(该数设定为10),则输出“you win”,否则如果大于选定的数,则输出“too big”,反之输出“too small”。
【输入形式】
输入一个整数。
【输出形式】
根据与选定值的大小关系,做相应的输出(大小写一致)。
【样例输入】
9
【样例输出】
too small
1 | a = input() |
求一元二次方程的解
【问题描述】一元二次方程:ax2+bx+c=0 (a ╪ 0)
【输入形式】输入a、b和c的值(有理数)
【输出形式】输出x的两个值,或者No(即没有有理数的解)
【样例输入】
1 2.5 3
【样例输出】
No 【样例输入】
1 -2 1
【样例输出】
1.00 1.00
【样例输出说明】输出的两个解保留两位小数,大的在前。
1 | import math |