Python第三周学习
字符串循环左移
给定一个字符串S,要求把S的前k个字符移动到S的尾部,如把字符串“abcdef”前面的2个字符‘a’、‘b’移动到字符串的尾部,得到新字符串“cdefab”,称作字符串循环左移k位。
输入格式:输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。
输出格式:在一行中输出循环左移N次后的字符串。
示例输入 1
abcd
2
示例输出 1
cdab
s=input()
number =int(input())
print(s[number:len(s)]+s[0:number])
计算字符个数
通过输入,在一行内接收一个仅由字母和数字组成的字符串,还有一个单一字符,然后输出“输入的字符串”中含有该字符的个数。不区分大小写。输入格式:输入一个由字母和数字组成的字符串,和一个字符,以空格隔开。输出格式:输出“输入的字符串”中含有该字符的个数。
【提示】:1、必须使用字符串处理方法str.lower()或str.upper()。2、输入数据仅占一行,获取输入的字符串和字符必须使用str.split()分别获取。
示例输入 1
a1234bAcdeAf a
示例输出 1
3
s=input()
sz=s.split(" ")
print(sz[0].upper().count(sz[1].upper()))
温度转换【part two】
温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fahrenheit)。请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。转换算法如下:(C表示摄氏度、F表示华氏度)C = ( F – 32 ) / 1.8;F = C * 1.8 + 32。
要求如下:
(1) 输入输出的摄氏度可采用大小写字母C结尾,温度可以是整数或小数,如:12.34C指摄氏度12.34度;
(2)输入输出的华氏度可采用大小写字母F结尾,温度可以是整数或小数,如:87.65F指华氏度87.65度;
(3)输出保留小数点后两位,输入格式错误时,输出提示:输入格式错误;
(4) 使用input()获得测试用例输入时,不要增加提示字符串。
示例输入 1
12.34C
示例输出 1
54.21F
示例输入 2
12.34
示例输出 2
输入格式错误!
示例输入 3
12.34c
示例输出 3
54.21f
s=input()
if s[-1] in ["f","c"]:
if s.endswith("f"):
print(("%.2f" % ((eval(s[0:len(s) - 1]) - 32) / 1.8)) + "c")
elif s.endswith("c"):
print(("%.2f" % ((eval(s[0:len(s) - 1]) * 1.8) + 32)) + "f")
elif s[-1] in ["F","C"]:
if s.endswith("F"):
print(("%.2f" % ((eval(s[0:len(s) - 1]) - 32) / 1.8)) + "C")
elif s.endswith("C"):
print(("%.2f" % ((eval(s[0:len(s) - 1]) * 1.8) + 32)) + "F")
else:
print("输入格式错误!")
单词统计【part one】
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:输入给出一行字符。
输出格式:在一行中输出单词个数。
示例输入 1
Let's go to room 209.
示例输出 1
5
s=input()
print(len(s.split()))
字符串替换
将给定字符串中的大写字母和小写英文字母都按以下对应规则替换:
输入格式:输入在一行中给出一个不超过80个字符、并以回车结束的字符串。
输出格式:输出在一行中给出替换完成后的字符串。
示例输入 1
CAPItaL LeTtERS
示例输出 1
Only this part “XZKRgzO OvGgVIH” are replaced.
str = input()
newStr = ''
for i in str:
num = ord(i)
if (65 <= num <= 90):
i = i.replace(i, chr(155 - num))
if (97 <= num <= 122):
i = i.replace(i, chr(219 - num))
newStr += i
print(f"Only this part “{newStr}” are replaced.")
查找指定字符
用键盘输入两行,第一行是一个字符,第二行是一个字符串,查找并返回第一行中字符在第二行字符串中是否出现,若出现返回该字母在字符串中的最大下标,若不出现,返回“Not Found”。
输入格式:输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过20个字符,超出则报错)。
输出格式:如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出”Not Found”(不区分大小写)。
示例输入 1
M
programming
示例输出 1
index = 7
示例输入 2
a
1234
示例输出 2
Not Found
示例输入 3
d
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
示例输出 3
输入错误!
str1 = input().lower()
str2 = input().lower()
num = -1
if len(str2)>20:
print("输入错误!")
elif str1 not in str2:
print("Not Found")
for i in range(0,len(str2)):
if str1 == str2[num]:
print("index = "+str(len(str2)+num))
break
num -= 1
字母反转
对一个以“$”结束的字符串,将其小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出。
输入格式:输入为一个以“$”结束的字符串(输入允许换行)。
输出格式:在一行中输出循环左移N次后的字符串。
示例输入 1
Hello World! 123$
示例输出 1
hELLO wORLD! 123
示例输入 2
Good GOOD study
dAY dAY uP!
$
示例输出 2
gOOD good STUDY
Day Day Up!
s=input()
while(not (s.endswith("$"))):
s=s+"\n"+input()
s=s.replace("$","")
t=""
for n in s:
if(n.islower()):
t=t+n.upper()
elif(n.isupper()):
t=t+n.lower()
else:
t=t+n
print(t)
划分分数等级
编写程序实现以下功能:判断成绩的等级,90100输出“A”,8089输出“B”,7079输出“C”,6069输出“D”,0~59输出“E”,其他输出“invalid”。
输入格式:输入格式:一个数值。
输出格式:A、B、C、D、E或invalid
示例输入 1
100
示例输出 1
A
示例输入 2
101
示例输出 2
Invalid
sc = int(input())
if sc<=100:
if sc>=90:
print("A")
elif sc >= 80:
print("B")
elif sc >= 70:
print("C")
elif sc >= 60:
print("D")
else:
print("E")
else:
print("Invalid")
计算年薪
编写程序,要求输入一个人的姓名和目前的年薪,然后计算这个人下一年的薪水。如果年薪小于40000元,则下一年的年薪将增长5%。如果年薪大于等于40000元收入,下一年的年薪除增加2000元外,还会增加超过40000元部分的2%。
输入格式:共输入两行信息,第一行为姓名(字符串),第二行为目前年薪(数字)。
请输入姓名:
请输入目前的年薪:****元
输出格式:输出新一年的年薪是:元 。不要增加额外的提示信息。
**新一年的年薪是:元
示例输入 1
Linda
10000
示例输出 1
Linda新一年的年薪是:10500.0元
示例输入 1
Bob
78946
示例输出 1
Bob新一年的年薪是:81724.9元
name = input()
money = int(input())
if money<40000:
money*=1.05
else:
money+=(2000+(money-40000)*0.02)
print(name,"新一年的年薪是:","%.1f"%money,"元",sep="")
克莱姆法则求解方程
请用克莱姆法则解下面的线性方程2×2系统:
编写程序,用户输入数字a、b、c、d、e和f,然后显示x和y的结果。如果ad-bc为零,呈现“The equation has no solution”。
输入格式:a,b,c,d,e和f的值(逗号分隔)
输出格式:x和y的值(空格分隔,小数点后保留1位)
示例输入 1
1.0,2.0,2.0,4.0,4.0,5.0
示例输出 1
The equation hasno solution
示例输入 2
2,4,1,8,3,2
示例输出 2
x=1.3,y=0.1
s = (input()).split(',')
a = eval(s[0])
b = eval(s[1])
c = eval(s[2])
d = eval(s[3])
e = eval(s[4])
f = eval(s[5])
if((float(a)*float(d)-float(b)*float(c)) == 0):
print("The equation has no solution")
else:
x = (float(e)*float(d)-float(b)*float(f))/(float(a)*float(d)-float(b)*float(c))
y = (float(a)*float(f)-float(e)*float(c))/(float(a)*float(d)-float(b)*float(c))
print("x={1:.1f},y={0:.1f}".format(y,x))