中国石油大学(华东)数据分析(Python)
字符串作业
1.大写字母转小写
【问题描述】从键盘输入一个大写字母,要求输出其对应的小写字母。
【输入形式】输入大写字母,不考虑不合法输入。
【输出形式】输出对应的小写字母。
【样例输入】
A
【样例输出】
a
str = input()
sta = str.lower()
print(sta)
2.字符串排序
【问题描述】输入字符串,按字典顺序从小到大排序,而后输出。
【输入形式】五个字符串,彼此之间用空格间隔。
【输出形式】将五个字符串排序输出
【样例输入】abcde C++ fghijkl Pascal Fortran
【样例输出】C++ Fortran Pascal abcde fghijkl
str=input().split(' ', 4)
str.sort()
sta= ''
for i in str:
sta+=i
sta+= ' '
print(sta)
3.小写字母变大写
【问题描述】
从键盘输入一串字母,要求全部变换成大写后输出。
【输入形式】
一个字符串
【输出形式】
字母变成大写后的字符串。
【样例输入】
it’s me.
【样例输出】
IT’S ME.
【样例说明】
非字母的字符不用转换。
str1 = input()
list1 = []
for i in str1:
list1.append(i.upper())
print(''.join(list1))
4.首字母大写
【问题描述】
输入一串字符,变成首字母大写后输出。
【输入形式】
一串字符,可能包含非字母字符。
【输出形式】
首字母大写后的字符串。
【样例输入】
Glad to meet you.
【样例输出】
Glad To Meet You.
【提示】
输入字符串,不要提供输入提示。下面是示例:
s = input()
输入的字符串存入变量s。
s = input()
print(s.title())
5.找对称数
【问题描述】已知10个四位数输出所有对称数及个数 n,例如1221、2332都是对称数
【输入形式】10个四位数,以空格分隔开
【输出形式】输入的四位数中的所有对称数,对称数个数
【样例输入】1221 2243 2332 1435 1236 5623 4321 4356 6754 3234
【样例输出】1221 2332 2
【样例说明】为测试程序健壮性,输入数中可能包括3位数、5位数等
str = input().split()
sta = []
for i in str:
if len(i) != 4:
continue
elif i[0] == i[3] and i[1] == i[2]:
sta.append(i)
for i in sta:
print(i, end=" ")
print(len(sta))
6.删除子串
【问题描述】编写程序实现在字符串s中删除子字符串c的功能。
说明:不考虑去掉子字符串c后形成的新的子字符串c。
例如:字符串s为abcabcd,子串c为bc,则调用该函数后,结果字符串s为aad。
【输入形式】输入的第一行表示字符串s,第二行表示子串c。
【输出形式】输出的一行表示处理后的结果。
【样例输入】
abcabcd
bc
【样例输出】
aad
str=input()
sta=input()
print(str.replace(sta,''))
7.统计大小写字母个数和数字个数
【问题描述】统计一行字符的大写字母,小写字母和数字的个数。先输出大写字母个数,在输出小写字母个数,最后输出数字个数。
【输入形式】ljaij1A
【输出形式】1
5
1
【提示】用字符串的方法isupper, islower来判别大小写。isdigit来判断是否是数字。
str = input()
A = 0
B = 0
C = 0
for i in str:
if i.isupper():
A += 1
elif i.islower():
B += 1
elif i.isdigit():
C += 1
print(A,end='\n')
print(B,end='\n')
print(C)
8.3个字符串排序
【问题描述】
编写完成三个字符串排序的程序。
【输入形式】
输入三个字符串,每个一行,共三行。字符串不包括空格,每个字符串的长度不超过100个字节。
【输出形式】
按照字符串从大到小的顺序,一个字符串一行输出。
【样例输入】
abc
Adcs
dsAd12
【样例输出】
dsAd12
abc
Adcs
str = []
for i in range(0,3):
str.append(input())
str.sort(reverse=True)
for i in str:
print(i)
9.输出特定的图形
【问题描述】输出特定的图形
【输入形式】无
【输出形式】
/
/
\ /
/
print(" /\\")
print("/ \\")
print("\\ /")
print(" \\/")
10.找数字
【问题描述】编写程序实现:对于一个输入的整数n,判断n的各位数中是否包含数字3或4。若包含,则打印true,否则,打印false。
【输入形式】标准输入的一行表示一个整型数值
【输出形式】标准输出的一行表示判断结果;若输入的数值不合法(如:小数等),输出"illegal input"
【样例输入】132
【样例输出】true
【样例说明】132中有数字3,故输出true
str=input()
if str.isdigit() or (str[0] == '-' and str.lstrip('-').isdigit()):
if '3' in str or '4' in str:
print('true')
else:
print('false')
else:
print('illegal input')
11.DNA匹配A
【问题描述】编写与字符串对象的find方法功能相似的函数find(srcString, substring, start, end),作用是在srcString串的下标start到下标end之间的片段中寻找subString串的第一次出现的位置,返回该位置值;如果没找到,返回-1。
编写程序,输入源串和子串,检验find(someString, substring,start,end)是否正确。
【输入形式】按照somestrig,substring,start,end的顺序输入,各成分之间由空格隔开。Somestring和substring均由A/T/C/G四个字母组成。start和end由自然数构成。
【输出形式】当匹配成功时,输出子串在DNA字符串的位置,以子串第一个字母在DNA字符串中匹配位置的下标;当匹配失败时,输出-1。
【样例输入】ATCGGCGCGGCGT CGG 0 10
【样例输出】2
【样例说明】下标从0开始计数。
somestring,substring,start,end = input().split()
start = int(start)
end = int(end)
if somestring.find(substring,start,end) != -1:
print(somestring.find(substring,start,end))
else:
print(-1)
12.DNA匹配B
【问题描述】
编写与字符串对象的find方法功能相似的函数find(srcString, substring, start, end),作用是在srcString串的下标start到下标end之间的片段中寻找subString串的所有出现。如果有多处出现,各下标位置用西文逗号’,'隔开。如果一次都没有出现,则输出"none"。
【输入形式】
按照somestrig,substring,start,end的顺序输入,之间由空格隔开。somestring和substring均由A/T/C/G四个字母组成。start和end由自然数构成。
【输出形式】当匹配成功时,输出子串在DNA字符串的所有位置,以子串第一个字母在DNA字符串中匹配位置的下标(从0开始),中间用西文逗号",“隔开;当匹配失败时,输出"none”。
【样例输入】ATGGCTGATGGC TGG 0 11
【样例输出】1,8
【样例输入】ATGGCTGATGGC TTT 0 11
【样例输出】none
somestring,substring,start,end = input().split()
start = int(start)
end = int(end)
list = []
m = 0
n = somestring.find(substring,start,end)
if n == -1:
print('none')
else:
while start < end:
n = somestring.find(substring,start,end)
if n == -1:
start = end
else:
start = n+1
list.append(n)
m = 1
if m == 1:
for i in list:
if i == list[len(list) - 1]:
print(i)
else:
print(i,end=',')