python练习题2

练习2

1.将输入的字符串垂直输出

string = input()
for i in string:
    print(i)

2.用户输入一个字符串,判断该字符串是否为回文,如是回文输出“是回文”,否则输出“不是回文”。

a = input("")
b = a[::-1]
if a == b:
    print("是回文")
else:
    print("不是回文")

3.用户输入一个字符串,倒序输出。

a=input("")
b=a[::-1]
print(b)

4.用户输入一个小数,用format格式化输出,保留3位小数。

a=eval(input(""))
print("{:.3f}".format(a))

5.用户在三行中分别输入一个字符串s和两个整数m,n,输出字符串s中位于m和n(包括m但不包括n)之间的子字符串。

s=input("")
m=int(input(""))
n=int(input(""))
print(s[m:n])

6.输入一元二次方程三个系数,输出方程的解。

from math import *

coef = input()
# 处理coef字符串,获得一元二次方程的系数
coef = coef.split(" ")
a = eval(coef[0])
b = eval(coef[1])
c = eval(coef[2])
d = b ** 2 - 4 * a * c
if d < 0:
    # 如果方程无解
    print("方程无解")
elif d == 0:
    # 如果方程有一个解
    x = -b / (2 * a)
    print("方程有一个解:{:.2}".format(x))
elif d > 0:
    # 如果方程有两个解
    x1 = (-b - sqrt(d)) / (2 * a)
    x2 = (-b + sqrt(d)) / (2 * a)
    print("方程有两个解:{:.2},{:.2}".format(x1, x2))

7.请按照从小到大的顺序输出所有的3位水仙花数

joinstr = ""
for a in range(1,10):
    for b in range(10):
        for c in range(10):
            num = a*100 + b*10 + c
            if a**3 + b**3 + c**3 == num:
                print(joinstr,end='')
                print(num,end='')
                joinstr=", "

8.编写程序,输入三角形三条边,先判断是否可以构成三角形,如果可以,则进一步求三角形的周长C和面积S,否则输出“无法构成三角形!”

a = eval(input())
b = eval(input())
c = eval(input())
if a > 0 and b > 0 and 0 < c < a + b and a + c > b and b + c > 0:
    y = 0.5 * (a + b + c)
    z = (y * (y - a) * (y - b) * (y - c))**0.5
    print("C={}".format(2*y))
    print("S={}".format(z))
else:
    print("无法构成三角形")

9.编写程序,实现月份数字向英文缩写的转换。

moths="JanFebMarAprMayJunJulAugSepOctNovDec"
n=input()
pos=(int(n)-1)*3
mothAbbrev=moths[pos:pos+3]
print(mothAbbrev)

10.编写程序,自动生成宿舍的组合名。从键盘上依次输入自己和室友的中文名,把所有名字的最后一个字取出来并拼到一起,作为宿舍的组合名,然后输出。

a = input()
b = input()
c = input()
d = input()
print("我们宿舍的组合是:"+a[-1]+b[-1]+c[-1]+d[-1])

11.输入一个18位身份证号,用8个‘*‘替换其中代表出生年月的字符后输出‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

如果输入不足18位,输出’error‘

s=input() 
if len(s) != 18:
    print("error")
else:
    s = s[0:6] + "********" + s[14:18]
    print(s)

12.假设我们学校有许多同样结构的宿舍楼,已知宿舍楼名称、楼层数、房间数,编写程序:按照宿舍楼"名称+楼层+房间号",顺序为这些楼中的房间编号。

x = input()
a = eval(input())
b = eval(input())
x = x.split(" ")
for i in x:
    j = 1
    while j <= a:
        k = 1
        while k <= b:
            print(i + str(j) + "0" + str(k), end=" ")
            k += 1
        j += 1
        print()
    print()

13.在此处提供一个符合格式描述的例子, 对于自动评阅题, 您也可以选择直接在测试用例中提供‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

例如:我们输入一个句子“I love yanan”,并让它先复读每个单词3遍,再复读整句3遍。

num = eval(input())
str1 = input()
str2 = str1.split(" ")
m = 0
for i in str2:
    k = 0
    while k < num:
        print(i)
        k = k + 1
while m < num:
    print(str1)
    m += 1

14.假设用户可能使用的输入仅包含西文字母,即英文大小写字母azAZ和特殊字符,请编写一个程序,对输入字符串进行凯撒密码加密,直接输出结果,其中特殊字符不进行加密处理。

PassInit = input()
for ind in PassInit:
    if (ord('a') <= ord(ind) <= ord('z')):
        PassKaisa = chr(ord('a')+(ord(ind)-ord('a')+3)%26)
        print(PassKaisa,end='')
    elif  (ord('A') <= ord(ind) <= ord('Z')):
        PassKaisa = chr(ord('A')+(ord(ind)-ord('A')+3)%26)
        print(PassKaisa,end='')
    else:
        PassKaisa = ind
        print(PassKaisa,end='')
        continue

你可能感兴趣的:(python基础,python,python)