实验2 字符串
A. 个性化消息
题目描述
输入一个人的名字,假设li ming。输出个性化消息:Hello Li Ming, would you like to learn some Python today? 。
输入
一行,一个人的名字
输出
题目描述中的个性化消息,名字用具体输入替代。
输入样例1
zhao liang
输出样例1
Hello Zhao Liang, would you like to learn some Python today?
AC代码
s = input()
s = s.title()
print(f"Hello {s}, would you like to learn some Python today? ")
B. 第3章-4 查找指定字符
题目描述
编写程序,从给定字符串中查找某指定的字符。
输入
输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。
输出
假设字符串中肯定包含了需要查找的字符,请在在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始)。
输入样例1
m
programming
输出样例1
index = 7
AC代码
target = input()
word = input()
# 需要的是下标最大值所以从右往左找,用rindex
num = word.rindex(target)
print("index = %d" % (num))
C. 名字大小写
题目描述
输入一个人的名字,去除前后的空格,以小写、大写、首字母大写的方式显示它。
参考字符串函数strip、lower、upper、title
输入
一行,一个人的名字
输出
三行,分别是人名的小写、大写、首字母大写
输入样例1
wang Ming
输出样例1
wang ming
WANG MING
Wang Ming
AC代码
s = input()
s1 = s.strip() # 记得去空格
print(s1.lower())
print(s1.upper())
print(s1.title())
D. 合并字符串
题目描述
输入三个字符串,输入三个字符串的开始、结束位置,取三个子串,把它们合并成一个新字符串
输入
连续三行输入三个字符串
连续三行,每行输入数字a和b,表示每个子串的开始和结束位置。位置下标从1开始i。例如字符串abcdefg,开始位置是3,结束位置是5,那么子串就是cde
输出
输出合并后的字符串
输入样例1
abcdefghij
ABCDEFGHIJ
aabbccddee
3,5
2,6
8,10
输出样例1
cdeBCDEFdee
AC代码
s1 = input()
s2 = input()
s3 = input()
a, b = map(int, input().split(","))
c, d = map(int, input().split(","))
e, f = map(int, input().split(","))
s11, s12, s13 = s1[a - 1:b], s2[c - 1:d], s3[e - 1:f]
print(s11 + s12 + s13)
注意
切片操作含头不含尾,字符串下标从0而非1开始,所以切片为s[start-1:end]
E. 第2章-7 产生每位数字相同的n位数
题目描述
读入2个正整数A和B,1≤A≤9, 1≤B≤10, 产生数字AA…A,一共B个A
输入
在一行中输入A和B。
输出
在一行中输出整数AA…A,一共B个A
输入样例1
1, 5
输出样例1
11111
AC代码
num, times = input().split(',')
times = int(times)
res = num * times
print(res)
F. 求字符串的长度
题目描述
求一行字符串的长度。
输入
一行字符串
输出
该字符串的长度
输入样例1
hello world!
输出样例1
12
AC代码
s = input()
print(len(s))
G. 反转字符串
题目描述
输入一字符串,输出反序后的字符串。
输入
一行字符
输出
逆序后的字符串
输入样例1
123456abcdef
输出样例1
fedcba654321
AC代码
s = input()
print(s[::-1])
H. 字符衔接
题目描述
已知两个字符串,把第一个字符串的头3个字符和第二个字符串的末尾3个字符合并成一个新字符串
输入
第一行输入第1个字符串,设定字符串只包含字母或数字,长度大于3
第二行输入第2个字符串,设定字符串只包含字母或数字,长度大于3
输出
输出合并后新的字符串
输入样例1
china1949
szu1983
输出样例1
chi983
输入样例2
2012year
day14
输出样例2
201y14
AC代码
s1 = input()
s2 = input()
s11 = s1[:3]
s12 = s2[-3:]
print(s11 + s12)
I. 解释名字
题目描述
外国人的全名格式如 firstname. lastname,现在输入一个全名,请解释并分别输出他的firstname及lastname。
输入
以点(.)分割的全名
输出
last name
first name
输入样例1
Franklin.Roosevelt
输出样例1
Last name: Roosevelt
First name: Franklin
AC代码
name = input()
fn, ln = name.split(sep='.')
print(f"Last name: {ln}")
print(f"First name: {fn}")
J. 数制转换
题目描述
编程,输入一个10进制正整数,然后输出它所对应的八进制数。
输入
一个10进制正整数
输出
对应的八进制数
输入样例1
10
输出样例1
12
AC代码
num = int(input())
print(f'{num:o}') # 使用f-string格式控制更简便(o表示八进制)
K. 第3章-20 逆序的三位数
题目描述
程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。
输入
每个测试是一个3位的正整数。
输出
输出按位逆序的数。
输入样例1
123
输出样例1
321
AC代码
num = input()
res = int(num[::-1])
print(res)