【⼩⽩Python学习作业⼆】运算
1.恺撒密码 B
恺撒密码是古罗马凯撒⼤帝⽤来对军事情报进⾏加解密的算法,它采⽤了替换⽅法对信息中的每⼀个英⽂字符循环替换为字母表序列中该字符后⾯的第三个字符,即,字母表的对应关系如下:
原⽂:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密⽂:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
对于原⽂字符P,其密⽂字符C满⾜如下条件:C = (P+3) mod 26
上述是凯撒密码的加密⽅法,解密⽅法反之,即:P = (C-3) mod 26
假设⽤户可能使⽤的输⼊仅包含西⽂字母,即英⽂⼤⼩写字母a~zA~Z和特殊字符,请编写⼀个程序,对输⼊字符串进⾏凯撒密码加密,直接输出结果,其中特殊字符不进⾏加密处理。
1 original = input()
2 password = ''
3for item in original:
4if item.isalpha():
5if item in ['x', 'y', 'z', 'X', 'Y', 'Z']:
6 password = password + chr(ord(item) - 23)
7else:
8 password = password + chr(ord(item) + 3)
9else:
10 password = password + item
11print(password)
2.括号配对检测 A
⽤户输⼊⼀⾏字符串,其中可能包括⼩括号 (),请检查⼩括号是否配对正确,配对成功与否分别输出:
配对成功,配对不成功
其中,⼩括号配对要考虑配对顺序,即()表⽰配对,)(不是配对,只考虑⼩括号配对。
1 Str = input("")
2 Left_bracket = 0
3for i in Str:
4if i== '(':
5 Left_bracket+=1
6elif i== ')':
7if Left_bracket>0:
8 Left_bracket-=1系统架构师是做什么
9else:
10print("配对不成功")
11break
12else:
13if Left_bracket!=0:
14print("配对不成功")
15else:
16print("配对成功")
3.天天向上的⼒量 B
⼀年365天,以第1天的能⼒值为基数,记为1.0。当好好学习时,能⼒值相⽐前⼀天提⾼N‰;当没有学习时,由于遗忘等原因能⼒值相⽐前⼀天下降N‰。每天努⼒或放任,⼀年下来的能⼒值相差多少呢?其中,N的取值范围是1到10,N可以是⼩数。
获得⽤户输⼊N,计算每天努⼒和每天放任365天后的能⼒值及能⼒间⽐值,其中,能⼒值保留⼩数点
后2位,能⼒间⽐值输出整数,输出结果间采⽤“逗号+空格”格式。
1 N = eval(input(""))
2 DayUp = pow((1.0+0.001*N),364)
3 DayDown = pow((1.0-0.001*N),364)
4 Ratio = int(DayUp//DayDown)
5print("{:.2f}, {:.2f}, {}".format(DayUp,DayDown,Ratio))
4.同符号数学运算
保安英语security读⼊⼀个整数N,分别计算如下内容:
1. N的绝对值;
2. N与10进⾏同符号加法、减法和乘法运算,同符号运算指使⽤N的绝对值与另⼀个数进⾏运算,运算结果的绝对值被赋予N相同的符号,
小白学python买什么书其中,0的符号是正号。
将上述4项结果在⼀⾏输出,采⽤空格分隔,输出结果均为整数。
1 n = eval(input())
2 N = abs(n)
3if n < 0:
4 a = -abs(N + 10)
5 b = -abs(N - 10)
6 c = -abs(N * 10)
7else:
8 a = abs(N + 10)
9 b = abs(N - 10)
substrate 中文翻译10 c = abs(N * 10)
11print(N, a , b, c)
5.快乐的数字
编写⼀个算法来确定⼀个数字是否“快乐”。快乐的数字按照如下⽅式确定:从⼀个正整数开始,⽤其每位数的平⽅之和取代该数,并重复这个过程,直到最后数字要么收敛等于1且⼀直等于1,要么将⽆休⽌地循环下去且最终不会收敛等于1。能够最终收敛等于1的数就是快乐的数字。
例如: 19 就是⼀个快乐的数字,计算过程如下:
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1
当输⼊时快乐的数字时,输出True,否则输出False。
1 a = input()
2while (a != 1 and a != 4):
3 num = list(str(a))
4 a = 0
5for i in num:imgplay专业版怎么下
6 a = a + int(i)**2
7if(a == 1):
8print('True')
9else:
10print('False')
6.字符串反码 A
字符串反码的定义为:字符串所包含字符的反码组成的字符串。
字符反码的定义为:
(1) 对于⼩写英⽂字符,它的反码也是⼀个⼩写英⽂字符,且该字符与'a'的距离等于其反码与'z'的距离;
(2) 对于⼤写英⽂字符,它的反码也是⼀个⼤写英⽂字符,且该字符与'A'的距离等于其反码与'Z'的距离;
两个字符距离指其对应unicode编码之差。
1 str = input()
2for i in str:
3if i.islower()==True:
4print("{}".format(chr(ord('z')+ord('a')-ord(i))),end="")
5elif i.isupper()==True:
6print("{}".format(chr(ord('Z')+ord('A')-ord(i))),end="")
7else:
8print(i,end="")
7.计算矩形⾯积
⽤户输⼊矩形的长和宽,计算其⾯积并输出,结果四舍五⼊,保留2位⼩数。
1 a = input()
2 b = input()
3print("{:.2f}".format(eval(a)*eval(b)))
8.格式化输出
⽤户输⼊⼀个⼩数,⽤format格式化输出,保留3位⼩数。
1print("{:.3f}".format(eval(input ())))
9.字符串逆序输出
⽤户输⼊⼀个字符串,倒序输出。
1 input_str = input()
2print(input_str[::-1])
10.照猫画虎求阶乘
⼀个正整数的阶乘(factorial)是所有⼩于及等于该数的正整数的积,并且0的阶乘为1。⾃然数n的阶乘写作n!。任何⼤于等于1 的⾃然数n 阶乘表⽰⽅法:
propertygrid1参考⽰例代码,编程求任意⼤于0的整数的阶乘。
1 n = int(input())
2 sum = 1
3for i in range(1,n+1):
4 sum *= i
5print(sum)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论