7-1 找最后的字符 (30 分)
输入一个字符串,输出最后一个字符
输入格式:
输入1个字符串
输出格式:
最后一个字符
输入样例:
12345678
输出样例:
8
lostr = str(input())
print(lostr[-1])
7-2 重要的事情说N遍 (20 分)
对重要的事情,阿福老师会反复说N多遍。 提示:用字符串 * 和 +
输入格式:
输入包含2行,第一行是阿福要重复说多遍的一句话,也就是阿福想强调的重要事情;第2行为一个整数N(0<N<10)
输出格式:
将阿福要强调的重要事情,反复输出N遍,具体格式参见样例。
输入样例:
Go
3
输出样例:
Go!Go!Go!
def prime(st,n):
for i in range(n):
print(st+"!",end="")
st = str(input())
n = int(input())
prime(st,n)
7-3 号码牌的制作 (10 分)
7-3 号码牌的制作 (10 分)
打印一个号码牌。号码牌由边框和号码构成,组成边框的字符分为角落字符,水平字符和垂直字符。
输入格式:
输入一个字符(如:±|2008161876)串,字符串的前三个字符分别代表组成边框的角落字符,水平字符和垂直字符,从第四个字符开始到最后表示号码数字。
输出格式:
打印出由边框包围的号码。如:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210425224735865.PNG#pic_center)
输入样例:
在这里给出一组输入。例如:
#=$2020
输出样例:
在这里给出相应的输出。例如:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210425224745625.PNG#pic_center)
输入样例:
在这里给出一组输入。例如:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210425224754251.PNG#pic_center)
输出样例:
在这里给出相应的输出。例如:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210425224800529.PNG#pic_center)
lonst = str(input())
j1 = lonst[0]
j2 = lonst[1]
j3 = lonst[2]
print(j1+(len(lonst)-3) * j2+j1)
print(j3+lonst[3:]+j3)
print(j1+(len(lonst)-3) * j2+j1)
7-4 统计字符串中指定字符的个数 (30 分)
输入一个字符串和一个字符,统计这个字符在字符串中出现的次数
输入格式:
输入2行。第1行是字符串,第2行是要查找的字符。
输出格式:
字符出现的次数
输入样例:
abcdefgabcdefg
a
输出样例:
2
lonst = str(input())
data = str(input())
print(lonst.count(data))
7-5 字符串消除空格 (30 分)
输入一个字符串,将这个字符串中所有的空格删除
输入格式:
输入一个字符串
输出格式:
输出删除空格后的字符串
输入样例:
i am a boy! you are a girl!
输出样例:
iamaboy!youareagirl!
lonst = str(input())
print(lonst.replace(" ",""))
7-6 统计指定数字和 (30 分)
输入一个数字的字符串和一个数字字符(1到9),统计这个数字在字符串中出现的次数,并累加。例如有个字符串是1234321,查找2这个数字,在字符串中出现了2次,所以累计和就是2+2=4
输入格式:
输入2行。第1行是字符串,第2行是要查找的数字。
输出格式:
指定数字出现的累加和
输入样例:
1234321
2
输出样例:
4
data = int(input())
so = int(input())
n = 0
while data:
a = data % 10
if a == so:
n =n +1
data = data // 10
print(n * so)
7-7 计算有n个字符串中最长的字符串长度 (40 分)
编写程序,用于计算有n(1<n<10)个字符串中最长的字符串的长度。前导空格不要计算在内!
输入格式:
在第一行中输入n,接下的每行输入一个字符串
输出格式:
在一行中输出最长的字符串的长度
输入样例:
在这里给出一组输入。例如:
4
blue
yellow
red
green
输出样例:
在这里给出相应的输出。例如:
length=6
n = 0
shu = int(input())
for i in range(shu):
lostr = str(input())
lostr = lostr.strip()
if n < len(lostr):
n = len(lostr)
print("length={}".format(n))
7-8 判断两个字符串是否为变位词 (40 分)
7-8 判断两个字符串是否为变位词 (40 分)
如果一个字符串是 另一个字符串的重新排列组合,那么这两个字符串互为变位词。比如,”heart”与”earth”互为变位 词,”Mary”与”arMy”也互为变位词。
输入格式:
第一行输入第一个字符串,第二行输入第二个字符串。
输出格式:
输出“yes”,表示是互换词,输出“no”,表示不是互换词。
输入样例1:
在这里给出一组输入。例如:
Mary
arMy
输出样例1
在这里给出相应的输出。例如:
yes
输入样例2:
在这里给出一组输入。例如:
hello 114
114 hello
输出样例2:
在这里给出相应的输出。例如:
yes
输入样例3:
在这里给出一组输入。例如:
Wellcom
mocllew
输出样例3:
在这里给出相应的输出。例如:
no
lostr = str(input())
lonst = str(input())
flag = 0
if len(lonst) != len(lostr):
print("no")
else:
for i in range(len(lonst)):
if lonst[i] in lostr:
flag = 1
else:
flag = 0
break
if flag == 0:
print("no")
else:
print("yes")
7-9 判断字符串结尾方式 (40 分)
输入2个字符串,判断其中一个字符串是否是以另一个字符串结尾
输入格式:
输入2行,每行一个字符串数据
输出格式:
如果第1个字符串以第2个字符串结尾,输出第2个字符串 如果第2个字符串以第1个字符串结尾,输出第1个字符串 如果两个字符串互为对方的结尾字符,输出’all’ 如果都不满足,输出’no’
输入样例:
abc123
123
输出样例:
123
lonst = str(input())
lostr = str(input())
flag = 0
if lonst == lostr:
print("all")
elif len(lonst) == len(lostr):
lonst[-1] != lostr[-1]
print("no")
else:
if len(lonst) > len(lostr):
for i in range(1,len(lostr)+1):
if lonst[-i] == lostr[-i]:
flag = 1
else:
flag = 0
if flag == 1:
print(lostr)
else:
print("no")
elif len(lonst) < len(lostr):
for i in range(1,len(lonst)+1):
if lonst[-i] == lostr[-i]:
flag = 1
else:
flag = 0
if flag == 0:
print("no")
else:
print(lonst)
7-10 纵向输出字符串 (5 分)
本题目要求读入一个宽度小于20的字符串,然后将输入按照一个字符占一行的格式输出。
输入格式:
输入一个宽度小于20的字符串。
输出格式:
对每一组输入,将输入按照一个字符占一行的格式输出。
输入样例:
在这里给出一组输入。例如:
Good!
输出样例:
在这里给出相应的输出。例如:
G
o
o
d
!
lonst = str(input())
for i in range(len(lonst)):
print(lonst[i])
7-11 判断字符串头尾结构 (30 分)
输入一个字符串,判断是否头尾对应的。比如字符串’abcba’就是头尾对应的。比如字符串’±**-+’,也是头尾对应的。比如字符串’abcbb’就不是头尾对应的。
输入格式:
输入一个字符串
输出格式:
如果头尾对应,输出’yes’ 否则输出’no’
输入样例:
abcba
输出样例:
yes
lonst = str(input())
flag = 0
if len(lonst) == 0 or len(lonst) == 1:
print("no")
else:
for i in range(int(len(lonst) / 2)):
if lonst[i] == lonst[-(i + 1)]:
flag = 1
else:
flag = 0
break
if flag == 0:
print("no")
else:
print("yes")
7-12 jmu-python-输入输出-计算字符串中的数 (10 分)
将字符串中的每个数都抽取出来,然后统计所有数的个数并求和。
输入格式:
一行字符串,字符串中的数之间用1个空格或者多个空格分隔。
输出格式:
第1行:输出数的个数。
第2行:求和的结果,保留3位小数。
输入样例:
2.1234 2.1 3 4 5 6
输出样例:
6
22.223
lonst = str(input())
lostr = lonst.split()
n = 0
sum = 0
for i in range(len(lostr)):
n = n + 1
sum = sum + float(lostr[i])
print(n)
print("{:.3f}".format(sum))
7-13 截取字符串 (10 分)
用户在三行中分别输入一个字符串s和两个整数m,n,输出字符串s中位于m和n(包括m但不包括n,m<n)之间的子字符串。
输入格式:
例如,输入’Python programming‘,2,5。
输出格式:
例如,输出为’tho‘。
输入样例:
Python programming
2
5
输出样例:
在这里给出相应的输出。例如:
tho
lonst = str(input())
m = int(input())
n = int(input())
print(lonst[m:n])
7-14 字符串判等 (100 分)
判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等。
输入格式:
两行,每行包含一个字符串。若两个字符串相等,输出YES,否则输出NO。
输出格式:
请在这里描述输出格式。例如:对每一组输入,在一行中输出A+B的值。
输入样例:
样例1
a A bb BB ccc CCC
Aa BBbb CCCccc
样例2
a A bb BB ccc CCCa
Aa BBbb CCCccc
输出样例:
样例1
YES
样例2
NO
lonst = str(input())
lostr = str(input())
lonst = lonst.replace(" ","")
lostr = lostr.replace(" ","")
lonst=lonst.upper()
lostr=lostr.upper()
'''
lonst = lonst.split()//split方法会把str转化为list
lostr = lostr.split()
'''
if lonst == lostr:
print("YES")
else:
print("NO")
7-15 小写到大写的转换 (高教社,《Python编程基础及应用》习题2-8) (2 分)
从键盘读取一个英文字符串,将其转换为大写,然后输出。
输入格式:
英文字符串,可以包括英文字符,数字及符号。
输出格式:
转换为大写后的英文字符串。
输入样例:
cvoid2020
输出样例:
CVOID2020
lonst = str(input())
lonst = lonst.upper()
print(lonst)
7-16 统计满足特定条件的字符数 (30 分)
输入字符串A(没有重复字符),输入字符串B,求在字符串A中字符的个数,这些字符必须同时又在字符串B中。提示:用in运算符。
输入格式:
一行输入字符串A。 一行输入字符串B。
输出格式:
一行输出字符数。
输入样例:
在这里给出一组输入。例如:
AEIOU
HELLO World!
输出样例:
在这里给出相应的输出。例如:
2
lonst = str(input())
lostr = str(input())
n = 0
for i in lonst:
if i in lostr:
n = n + 1
print(n)
7-17 字符串A-B (100 分)
本题要求你计算A-B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A-B。
输入格式:
输入在2行中先后给出字符串A和B。每个字符串都是由可见的ASCII码组成,最后以换行符结束。
输出格式:
在一行中打印出A-B的结果字符串。
输入样例:
I love Python! It’s a fun game!
aeiou
输出样例:
I lv Pythn! It’s fn gm!
lonst = str(input())
lostr = str(input())
for i in lostr:
if i in lonst:
lonst = lonst.replace(i,"")
print(lonst)
7-18 单词倒排 (40 分)
编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔。
输入格式:
输入为一行字符串。
输出格式:
输出为按要求倒序后的字符串。
输入样例:
I am a student
输出样例:
student a am I
alist = list(input().split())
for i in range(len(alist)):
print(alist[-(i+1)],end="")
if -(i+1) != -len(alist):
print(" ",end="")
#print(alist[::-1])//这样会输出一个列表,/(ㄒoㄒ)/~~
7-19 密码强度 (10 分)
本题目要求根据输入密码字符串(字符串长度大于6),输出密码强度。规则:密码要求只能包含大写字母、小写字母、数字及下划线,如果只包含其中的一种,则密码强度为1;若包含其中的两种,则密码强度为2;若包含其中的三种,则密码强度为3;若包含其中的四种,则密码强度为4。
输入格式:
输入长度大于6的字符串。
输出格式:
输出密码强度。
输入样例1:
在这里给出一组输入。例如:
123456789
输出样例1:
在这里给出相应的输出。例如:
1
输入样例2:
在这里给出一组输入。例如:
abcd666
输出样例2:
在这里给出相应的输出。例如:
2
输入样例3:
在这里给出一组输入。例如:
aBCD666
输出样例3:
在这里给出相应的输出。例如:
3
输入样例4:
在这里给出一组输入。例如:
aBCD_666
输出样例4:
在这里给出相应的输出。例如:
4
alist = list(input())
num = 0
xiao = 0
da = 0
xia = 0
for i in alist:
if '9' >= i >= '0':
num = 1
elif 'z' >= i >= 'a':
xiao = 1
elif 'Z' >= i >= 'A':
da = 1
elif i == '_':
xia = 1
print(num + xiao + da + xia)
7-20 统计字符串中不同种类的字符个数 (10 分)
本题目要求读入一个字符串,统计字符串中字母、数字、空格、其它字符的个数。
输入格式:
输入一行由任意字符组成的字符串。
输出格式:
统计字符串中字母、数字、空格、其它字符的个数。
输入样例:
在这里给出一组输入。例如:
2a and Am3,MNak888!..
输出样例:
在这里给出相应的输出。例如:
letters=10,digits=5,spaces=2,others=4
alist = list(input())
letters = 0
digits = 0
spaces = 0
other = 0
for i in alist:
if '9' >= i >= '0':
digits = digits + 1
elif i.isalpha():
letters = letters + 1
elif i == ' ':
spaces = spaces + 1
else:
other = other + 1
print("letters={},digits={},spaces={},others={}".format(letters,digits,spaces,other))
7-21 查找字符串中最长的数字子串 (100 分)
查找一个字符串中最长的数字子串。
输入格式:
输入一个字符串。
输出格式:
输出最长的数字子串;如果字符串中没有数字,则输出’No’。
输入样例:
Enter 789 the final 8764end
输出样例:
在这里给出相应的输出。例如:
8764
输入样例:
Enter the final
输出样例:
在这里给出相应的输出。例如:
No
begin = 0
end = 0
n = 0
flag = 0
lonst = str(input())
for j in lonst:
if j.isdigit():
flag = 1
break
if flag == 0:
print("No")
else:
for i in range(len(lonst)):
if '9' >= lonst[i] >= '0':
n = n + 1
if n:
begin = n
end = i
else:
n = 0
print(lonst[end - begin + 1:end + 1])
7-22 jmu-python-统计字符个数 (10 分)
输入一个字符串,统计其中数字字符及小写字符的个数
输入格式:
输入一行字符串
输出格式:
共有?个数字,?个小写字符,?填入对应数量
输入样例:
helo134ss12
输出样例:
共有5个数字,6个小写字符
digit = 0
low = 0
lonst = str(input())
for i in lonst:
if i.isdigit():
digit = digit + 1
elif 'a' <= i <= 'z':
low = low + 1
print("共有{}个数字,{}个小写字符".format(digit,low))
7-23 输入字符串,排序后输出最大字符及该字符在原字符串中的索引 (30 分)
输入字符串,排序后输出最大字符及该字符在原字符串中的索引。相同字符的索引取最大值。提示:用元组实现。
输入格式:
在一行输入字符串。
输出格式:
在一行输出字符和索引。
输入样例:
在这里给出一组输入。例如:
Hello Python
输出样例:
在这里给出相应的输出。字符和数字间空3格。例如:
y 7
tuplon = tuple(input())
n = 0
ement = tuplon[0]#原先想着小写大,只考虑字母,写成了ement = 'A',错的
for index,user in enumerate(tuplon):
if ement <= user:#相同索引取最大值
ement = user
n = index
print("{} {}".format(ement,n))
7-24 统计字符在字符串中第n次出现的位置 (30 分)
输入一个字符串s,一个数字n和一个字符c,统计这个字符c在字符串s中第n次出现的位置
输入格式:
输入3行。第1行是字符串s,第2行是数字n,第3行是被查找的字符c。
输出格式:
第n个字符在字符串中的位置值。如果字符串中不存在第n个字符c,打印出’no’
输入样例:
abcabcabc
2
a
输出样例:
4
index = 0
begin = 0
lonst = str(input())
num = int(input())
ement = str(input())
for i in range(len(lonst)):
if lonst[i] == ement:
begin = begin + 1
if begin == num:
print(i+1)
if begin < num:
print("no")
7-25 最长数字子串 (10 分)
本题目要求读入任意字符串,输出字符串的最长数字子串。若无数字字符,则输出“No digits”;若有多个最长数字子串,则输出第一个。
输入格式:
输入任意字符串。
输出格式:
输出字符串的最长数字子串。若无数字字符,则输出“No digits”;若有多个最长数字子串,则输出第一个。
输入样例:
12345
输出样例:
12345
输入样例:
abc12de33445fg6
输出样例:
33445
输入样例:
abcde
输出样例:
No digits
s = input()
Len_num = []#用于记录整个字符串中的各个数字串长度
S = [] # 用于记录整个字符串中各个数字串
cur_len = 0# 用于记录当前数字串长度
cur_num =""#用于记录当前数字字符
for i in range(len(s)-1,-1,-1):#倒
temp = ord(s[i]) # 求ASCII
if temp in range(48, 58): # 0-9
cur_len += 1 #当前数字串长度 + 1
cur_num += s[i] # 当前数字串增加一个数字
elif temp not in range(48,58) and cur_len != 0:#下一个字符不是数字Len_num. append(cur_len)
Len_num.append(cur_len)
S.append(cur_num)
cur_len = 0 # 初始化
cur_num = "" # 初始化
if cur_len != 0: #以数字字符串结尾
Len_num.append(cur_len)
S.append(cur_num)
if len(Len_num) == 0: # 没有数字,输出空字符串
print("No digits")
else:
max_x = max(Len_num)
max_index = Len_num.index(max_x)
print(S[max_index][::-1])#reverse Xin40122035
7-26 身份证号判断性别与出生日期 (15 分)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210428172119135.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjQ4NzMwNA==,size_16,color_FFFFFF,t_70#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210428172127317.PNG#pic_center)
str =input()
l = len(str)
def xingbie(str):
if l == 15:
str = int(str[-1])
if l == 18:
str = int(str[-2])
if str in [1,3,5,7,9]:
sex = '男'
else:
sex = '女'
return sex
def riqi(n,y,r):
month = [0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if(y<=0 or y>12 or r<=0 or r>31):
return 0
elif(n%4 == 0 and n%100 != 0 or n%400==0):
month[2] += 1
return r <= month[y]
def tiqu(str,l):
global tem,n,y,r
if l == 15:
str = str[6:12]
n = "19"+str[0:2]
y = str[2:4]
r = str[4:6]
tem = "{0}年{1}月{2}日".format(n, y, r)
n = int(n);y = int(y);r = int(r)
if l == 18:
str = str[6:14]
n = str[0:4]
y = str[4:6]
r = str[6:8]
tem = "{0}年{1}月{2}日".format(n, y, r)
n = int(n);y = int(y);r = int(r)
def shenefen(str,l):
tiqu(str, l)
if riqi(n,y,r):
print(xingbie(str),tem,sep=',')
else:
print("Error,日期不合法")
shenefen(str,l)
#又改了
7-27 求解字符串数字组合 (15 分)
Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数,其中combinations, permutations是用求解组合和排列的函数。 请输入一个有由数字大小写字母组成的字符串 与 一个整数 n,去掉字符串中大小字母仅保留数字的字符串,输出去重后数字符串的n位全组合。
输入格式:
例如:
第一行输入至少含一个数字字符的一串字符串,例如:ABC12DE3De125DE4(去重后数字字符串:12354);
第二行输入一整数n:( 保证n小于等于 去重后数字字符串的长度)。
输出格式:
去重后数字字符串按从大到小的全组合。每种组合占一行,字符间无空格。排列的输出顺序为字典顺序。
输入样例:
在这里给出一组输入。例如:
ABC12DE3De125DE4
3
输出样例:
在这里给出相应的输出。例如:
543
542
541
532
531
521
432
431
421
321
from itertools import combinations
a=input()
b=[]
e=[]
c=set()
d=""
t=0
for i in a:
if i.isdigit():
b.append(eval(i))
for i in b:
c.add(i)
n=eval(input())
if n<=len(c):
for i in combinations(c,n):
i=list(i)
i.sort(reverse=True)
while t<len(i):
d+=str(i[t])
t+=1
e.append(eval(d))
t=0
d=""
e.sort(reverse=True)
for i in e:
print(i)
'''
'''
7-28 利用正则表达式得到一段HTML文本中所有超链接对应的网址 (20 分)
编写程序实现以下功能:利用正则表达式得到一段HTML文本中所有超链接对应的网址,并将网址输出到屏幕上(每行输出一个网址)。
输入格式:
从键盘输入 一段HTML文本,多行输入,空行输入 结束。
输出格式:
输出从HTML文本中提取到的超链接所对应的网址,一行一个网址。
输入样例:
在这里给出一组输入。例如:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210428170240153.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjQ4NzMwNA==,size_16,color_FFFFFF,t_70#pic_center)
输出样例:
在这里给出相应的输出。例如:
https://baijiahao.baidu.com/s?id=1633289774665320636&wfr=spider&for=pc
https://baijiahao.baidu.com/s?id=1632116753423885280&wfr=spider&for=pc
import re
import sys
try:
mx = []
while True:
m = sys.stdin.readline().strip()
if m == '':
break
m = list(m.split())
mx.append(m)
except:
pass
def get_links(html):
webpage_regex = re.compile('<a[^>]+href=["\'](.*?)["\']', re.IGNORECASE)
lonst = []
lonst = webpage_regex.findall(html)
for i in lonst:
print(i)
get_links(str(mx))