【Python 程序设计】实验07(字符串)

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

programming is More fun!

m

【输出示例】

2

 代码示例:

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

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

m

programming

【输出示例】

index = 7

 代码示例:

ch = input()
s = input()
r = s.rfind(ch)
print(("index = %d" % (r)) if r != -1 else "Not Found")

  python字符串rfind()方法:  Python 字符串 rfind() 方法-CJavaPy

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

free82jeep5

【输出示例】

825

代码示例:

s = input()
i = 0
t = "0123456789"
for i in range(len(s)):
    if s[i] in t:
        print(s[i], end='')
        i = i + 1

由此可见,python字符串也可以完成下标索引

4.【描述】
脱氧核糖核酸(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

代码示例:

n = int(input())
for i in range(n+1):
    s = input()
    for i in range(len(s)):
        if s[i] == 'A':
            print('T', end='')
            i += 1
        elif s[i] == 'G':
            print('C', end='')
            i += 1
        elif s[i] == 'C':
            print('G', end='')
            i += 1
        elif s[i] == 'T':
            print('A', end='')
            i += 1


 5.【描述】
输入一个字符串,统计并输出该字符串中26个英文字母(不区分大小写)出现的次数。
【输入】
输入一个字符串。
【输出】
分行输出26个英文字母(不区分大小写)出现的次数。
【输入示例】

I am a student.

【输出示例】

a:2

d:1

e:1

i:1

m:1

n:1

s:1

t:2

u:1

代码示例:

line = input()
counts = [0 for i in range(26)]
for ch in line:
    if ch.isalpha():  # isalpha() 可以判断「字符串」是否只包含「字母」,字符串的所有字符都是字母返回True
        if ch.isupper():  # 判断字母是否为大写
            ch = ch.lower()  # 若是,则转换为小写
        counts[ord(ch) - ord('a')] += 1
for i in range(26):
    if counts[i] != 0:
        print("%c:%d" % (chr(ord('a') + i), counts[i]))

 

6.【描述】
输入5个字符串,输出其中最大的字符串。
【输入】
输入5个字符串。
【输出】
输出5个字符串中最大的字符串。
【输入示例】

red

blue

yellow

green

purple

【输出示例】

yellow

代码示例:

s1 = input()
s2 = input()
s3 = input()
s4 = input()
s5 = input()
print(max(s1,s2,s3,s4,s5))

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

silent

listen

【输出示例】

True

代码示例:

def is_anagram(s1, s2):
    m = sorted(s1)
    n = sorted(s2)
    return m == n

def main():
    str1 = input()
    str2 = input()
    print(is_anagram(str1, str2))

main()

 

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

central processing unit

【输出示例】

CPU

代码示例:

def is_acronym(s):
    s1 = ""
    if 'a' <= s[0] <= 'z' or 'A' <= s[0] <= 'Z':
        s1 = s[0].upper()
    for i in range(len(s)):
        if s[i - 1] == ' ':
            s1 = s1 + s[i].upper()
    return s1

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

main()

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

Colin

ABC

【输出示例】

53

6

 代码示例:

stop = '' 
for s in iter(input, stop): 
    total = 0
    for i in range(len(s)):
        if s[i].isalpha():
            total += (ord(s[i].upper()) - ord('A') + 1)
    print(total)

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

distance

disinfection

【输出示例】

dis

 代码示例:

def prefix(s1, s2):
    str = ''
    i = 0
    while i < len(s1) and i < len(s2):
        if s1[i] == s2[i]:
            str += s1[i]
        else:
            break
        i += 1
    if len(str) == 0:
        return None
    else:
        return str

def main():
    str1 = input()
    str2 = input()
    str = prefix(str1, str2)
    print(str if str != None else "No common prefix")

main()

  • 28
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验三:Python程序设计基础 实验目的: 1.掌握Python程序的基本结构。 2.理解Python程序的执行过程。 3.学会使用Python基本的数据类型和控制结构。 4.学会定义和调用函数。 实验环境: Python 3.7以上版本,Jupyter Notebook 实验任务: 任务一:Python程序基本结构 1. Python程序的基本结构是什么? 2. 请用Python代码输出“Hello World!”。 任务二:Python程序的执行过程 1. Python程序的执行过程是什么? 2. Python程序中的语句是按照什么顺序执行的? 任务三:Python基本数据类型和控制结构 1. Python中基本的数据类型有哪些? 2. Python中的控制结构有哪些? 3. 请用Python代码实现以下功能: (1)定义一个列表,包含数字1到10。 (2)输出列表中的所有元素。 (3)输出列表中的第一个和最后一个元素。 (4)输出列表中的第2到第5个元素。 (5)将列表中的元素按照从大到小的顺序排列并输出。 任务四:Python函数的定义和调用 1. Python中如何定义函数? 2. Python中如何调用函数? 3. 请用Python代码实现以下功能: (1)定义一个函数,计算任意两个数的和。 (2)调用该函数,计算2和3的和并输出结果。 (3)定义一个函数,计算任意两个数的积。 (4)调用该函数,计算4和5的积并输出结果。 (5)定义一个函数,将任意一个字符串反转并输出。 (6)调用该函数,将字符串“abcdefg”反转并输出结果。 实验报告: 请按照实验任务提交实验报告,将代码和运行结果截图并附在报告中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值