python7(字符串)

实验07(字符串)
一、课内实验题(共10小题,84分)
题型得分 84
【描述】
脱氧核糖核酸(DNA)由两条互补的碱基链以双螺旋的方式结合而成。而构成DNA的碱基共有4种,分别为腺瞟呤(A)、鸟嘌呤(G)、胸腺嘧啶(T)和胞嘧啶(C)。在两条互补碱基链的对应位置上,腺瞟呤总是和胸腺嘧啶配对,鸟嘌呤总是和胞嘧啶配对。你的任务就是根据一条单链上的碱基序列,给出对应的互补链上的碱基序列。
【输入】
第一行是一个正整数n,表明共有n条要求解的碱基链。
以下共有n行,每行用一个字符串表示一条碱基链。这个字符串只含有大写字母A、T、G、C,分别表示腺瞟呤、胸腺嘧啶、鸟嘌呤和胞嘧啶。每条碱基链的长度都不超过255。
【输出】
共有n行,每行为一个只含有大写字母A、T、G、C的字符串。分别为与输入的各碱基链互补的碱基链。
【输入示例】
5
ATATGGATGGTGTTTGGCTCTG
TCTCCGGTTGATT
ATATCTTGCGCTCTTGATTCGCATATTCT
GCGTTTCGTTGCAA
TTAACGCACAACCTAGACTT
【输出示例】
TATACCTACCACAAACCGAGAC
AGAGGCCAACTAA
TATAGAACGCGAGAACTAAGCGTATAAGA
CGCAAAGCAACGTT
AATTGCGTGTTGGATCTGAA
【来源】
《Python程序设计基础》第5章编程题1。
(10分)
我的答案:

n=int(input())
for i in range(n):
    s=input()
    for ch in s:
        if ch=='A':
            print('T',end='')
        if ch=='T':
            print('A',end='')
        if ch=='C':
            print('G',end='')
        if ch=='G':
            print('C',end='')
    print('\n')

题目得分 10
【描述】
输入一个字符串,统计并输出该字符串中26个英文字母(不区分大小写)出现的次数。
【输入】
输入一个字符串。
【输出】
分行输出26个英文字母(不区分大小写)出现的次数。
【输入示例】
I am a student.
【输出示例】
a:2
d:1
e:1
i:1
m:1
n:1
s:1
t:2
u:1
【来源】
《Python程序设计基础》第5章编程题2。(10分)
我的答案:

s=input()

s=s.lower(s)

dic=dict()
d={}
s=set()
s=input()
s=s.lower()
s=s.replace(' ','')
s=s.replace('.','')
s2=sorted(s)
d=dict()
for x in s2:
  if x not in d.keys():
    d[x]=1
  else:
    d[x]=d[x]+1

for i in d:
    print(i+':'+str(d[i]))

题目得分 10
【描述】
编写程序,统计并输出某给定字符在给定字符串中出现的次数。
【输入】
第一行给出一个以回车结束的字符串;第二行输入一个字符。
【输出】
在一行中输出给定字符在给定字符串中出现的次数。
【输入示例】

programming is More fun!
m
【输出示例】
2
(2分)
我的答案:

s=input()
p=input()
print(s.count(p))

题目得分 2
【描述】
编写程序,从给定字符串中查找某指定的字符。
【输入】
第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串。
【输出】
如果找到,在一行内按照格式"index = 下标"输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。
【输入示例】

m
programming
【输出示例】
index = 7
(2分)
我的答案:

p=input()
s=input()
r=s.rfind(p)
if r>0:
    print("index = " + str(s.rfind(p)))
else:
    print("Not Found")

题目得分 2
【描述】
输入5个字符串,输出其中最大的字符串。
【输入】
输入5个字符串。
【输出】
输出5个字符串中最大的字符串。
【输入示例】

red
blue
yellow
green
purple
【输出示例】
yellow
【来源】
《Python程序设计基础》第5章编程题3。
(10分)
我的答案:

s1=input()
s2=input()
s3=input()
s4=input()
s5=input()
max=s1
if s2>max:
    max=s2
if s3>max:
    max=s3
if s4>max:
    max=s4
if s5 > max:
    max=s5
print(max)

题目得分 10
【描述】
两个单词如果包含相同的字母,次序不同,则称为字母易位词(anagram)。例如,"silent"和"listen"是字母易位词。
定义函数:def is_anagram(s1, s2),检查两个单词是否是字母易位词,如果是,返回True;否则返回False。
【输入】
有两行,分别对应两个单词。
【输出】
若两个单词是字母易位词,输出True,否则输出False。
【输入示例】

silent
listen
【输出示例】
True
【来源】
《Python程序设计基础》第5章编程题4。(10分)
我的答案:

def is_anagram(s1, s2):
    if len(s1)!=len(s2):
        return False
    l1=list(s1)
    l2=list(s2)

    l1.sort()
    l2.sort()
    s=0
    f=True
    while s<len(s1) and f:
        if l1[s]==l2[s]:
            s=s+1
        else:
            f=False
            break
    return f

题目得分 10
【描述】
编写程序,要求提取一个字符串中的所有数字字符(‘0’……‘9’),将其转换为一个整数输出。
【输入】
在一行中给出一个以回车结束的字符串。
【输出】
在一行中输出转换后的整数。
【输入示例】

free82jeep5
【输出示例】
825
(10分)
我的答案:

import re
s=input()
m=re.findall('\d',s)

print(int(''.join(m)))

题目得分 10
【描述】
首字母缩略词是由一个短语中每个单词的第一个字母组成,均为大写。例如,CPU是短语"central processing unit"的缩写。
定义函数:def is_acronym(s),s是短语,返回短语的首字母缩略词。
【输入】
一行中输入一个短语,短语中每个单词以空格间隔。
【输出】
该短语的首字母缩略词。
【输入示例】

central processing unit
【输出示例】
CPU
(10分)
我的答案:

def is_acronym(s):
    s=s.split(' ')
    cap=[]
    for i in s:
        s2=i[:1]
        cap.append(s2)
    res=''.join(cap)
    res=res.upper()
    return res

def main():
    phrase=input()
    print(is_acronym(phrase))

main()

题目得分 10
【描述】
依次计算一系列给定字符串的字母值,字母值为字符串中每个字母对应的编号值(A对应1,B对应2,以此类推,不区分大小写字母,非字母字符对应的值为0)的总和。例如,Colin的字母值为3+15+12+9+14=53
【输入】多行字符串,每个字符串占一行。
【输出】
计算并输出每行字符串的字母值。
【输入示例】

Colin
ABC
【输出示例】
53
6
(10分)
我的答案:

s = input()
while(s != ''):
    num = 0
    s = s.lower()
    for c in s:
        i = ord(c) - 96
        if i < 1 or i > 26:
            i = 0
        num += i
    print(num)
    s = input()

题目得分 10
【描述】
“distance"和"disinfection"的共有前缀是"dis”。
定义函数:def prefix(s1, s2),检查两个字符串是否有共有前缀,如果有,返回该共有前缀;否则返回None。
编写一个main函数,输入两个字符串,调用prefix函数,显示共有前缀或"No common prefix"。
【输入】
有两行,分别对应两个字符串。
【输出】
若两个字符串有共有前缀,输出该共有前缀,否则输出"No common prefix"。
【输入示例】

distance
disinfection
【输出示例】
dis
(10分)
我的答案:

def prefix(s1,  s2):
    s=''
    x=-1
    f=0
    for i in s1:
        x+=1
        if s2[x]==i:
            s+=i
            f=1
        else:
            break
    if f==1:
        return s
    else:return 'No common prefix'
s1=input()
s2=input()
print(prefix(s1,s2))

题目得分 10

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值