文章目录
前言
实例001:三角形求面积
实例002:圆求周长
实例003:奇偶个数
实例004:素数和
实例005:分解质因数
实例006:单词长度
实例007:最简分式
实例008:成绩排名
实例009:D进制的A+B
实例010:到底买不买
实例011:数字特征值
实例012:组个最小数
实例013:害死人不偿命的(3n+1)猜想
实例014:数组元素循环右移问题
实例014:分蛋糕
实例015:职工查询
实例016:打酱油
实例017:最大公约数
实例018:判断字符串的子串
实例019:“最小”和“最大”单词
实例020:检查数中重复的数字
实例021:分解ISBN信息
实例022:凯撒加密
实例023:跟奥巴马一起编程
实例024:统计同成绩学生
实例025:出现次数最多的数
总结
前言
随着社会的不断发展,Python这门语言也越来越重要,因此本文介绍了一些基础Python练习题。
提示:以下是本篇文章正文内容,下面案例可供参考
实例001:三角形求面积
题目 已知一个三角形的底边为4,高需要从键盘输入,请编写程序计算并输出指定高度的三角形面积。
输入 输入的三角形的高为浮点类型(float)。
输出 输出三角形面积,保留小数点后2位。
Sample Input
2
Sample Output
4.00
h=float(input())
s=4*h/2
print("%.2f"%(s))
实例002:圆求周长
题目 请编写程序计算输出任意半径的圆周长。要求半径从键盘输入,计算时以3.14159作为圆周率的值。
输入 输入半径为浮点型(float)。
输出 输出周长,保留小数点后5位。
Sample Input
0.5
Sample Output
3.14159
pi=3.14159
r=float(input())
c=2*pi*r
print("%.5f"%(c))
实例003:奇偶个数
题目 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。
输入 一系列正整数,整数的范围是(0,100000)。如果输入-1则表示输入结束。
输出 两个整数,第一个整数表示读入数据中的奇数的个数,第二个整数表示读入数据中的偶数的个数。两个整数之间以空格分隔。
Sample Input
9 3 4 2 5 7 -1
Sample Output
4 2
n=input()
n=n.split()
for i in range(len(n)):
n[i]=int(n[i])
sum1=0
sum2=0
for x in n[:len(n)-1]:
if x%2==0:
sum2+=1
else:
sum1+=1
print("%d %d"%(sum1,sum2))
实例004:素数和
题目
我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。
现在,给定两个整数n和m,0 输入 两个整数,第一个表示n,第二个表示m。 输出 一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。 Sample Input Sample Output 题目 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数。比如,6可以被分解为2*3,而24可以被分解为2*2*2*3。 现在,你的程序要读入一个[2,100000]范围内的整数,然后输出它的质因数分解式;当读到的就是素数时,输出它本身。 输入 一个整数,范围在[2,100000]内。。 输出 形如:n=a*b*c*d 或 n=n 所有的符号之间都没有空格。abcd这样的数字一定是从小到大排列的。 Sample Input Sample Output 题目 你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it's”算一个单词,长度为4。注意,行中可能出现连续的空格。 输入 输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内。 输出 在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。 Sample Input Sample Output 题目 分数可以表示为“分子/分母”的形式。编写一个程序,要求用户输入一个分数,然后将其约分为最简分式。最简分式是指分子和分母不具有可以约分的成分了。如6/12可以被约分为1/2。当分子大于分母时,不需要表达为整数又分数的形式,即11/8还是11/8;而当分子分母相等时,仍然表达为1/1的分数形式。 输入 输入在一行中给出一个分数,分子和分母中间以斜杠“/”分隔,如: 12/34 表示34分之12。分子和分母都是正整数(不包含0)。 输出 在一行中输出这个分数对应的最简分式,格式与输入的相同,即采用“分子/分母”的形式表示分数。如 5/6 表示 6分之5。 Sample Input Sample Output 题目 读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。 输入 每个测试输入包含1个测试用例,格式为 其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。 输出 对每个测试用例输出2行,第1行是成绩最高学生的姓名和学号,第2行是成绩最低学生的姓名和学号,字符串间有1空格。 Sample Input Sample Output 题目 输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。 输入 输入在一行中依次给出3个整数A、B和D。 输出 输出A+B的D进制数。 Sample Input Sample Output 题目 小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。 为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如在图1中,第3串是小红想做的珠串;那么第1串可以买,因为包含了全部她想要的珠子,还多了8颗不需要的珠子;第2串不能买,因为没有黑色珠子,并且少了一颗红色的珠子。 正在上传…重新上传取消正在上传…重新上传取消正在上传…重新上传取消正在上传…重新上传取消正在上传…重新上传取消正在上传…重新上传取消 输入 每个输入包含1个测试用例。每个测试用例分别在2行中先后给出摊主的珠串和小红想做的珠串,两串都不超过1000个珠子。 输出 如果可以买,则在一行中输出“Yes”以及有多少多余的珠子;如果不可以买,则在一行中输出“No”以及缺了多少珠子。其间以1个空格分隔。 Sample Input Sample Output 题目 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0。按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字。比如,对于342315,这个二进制数字就是001101。 这里的计算可以用下面的表格来表示: 数字 3 4 2 3 1 5 数位 6 5 4 3 2 1 数字奇偶 奇 偶 偶 奇 奇 奇 数位奇偶 偶 奇 偶 奇 偶 奇 奇偶一致 0 0 1 1 0 1 二进制位值 32 16 8 4 2 1 你的程序要读入一个非负整数,整数的范围是[0,1000000],然后按照上述算法计算出表示奇偶性的那个二进制数字,输出它对应的十进制值。 提示:将整数从右向左分解,数位每次加1,而二进制值每次乘2。 输入 一个非负整数,整数的范围是[0,1000000]。 输出 一个整数,表示计算结果。 Sample Input Sample Output 题目 给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。 现给定数字,请编写程序输出能够组成的最小的数。 输入 每个输入包含1个测试用例。每个测试用例在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1、……数字9的个数。整数间用一个空格分隔。10个数字的总个数不超过50,且至少拥有1个非0的数字。 输出 在一行中输出能够组成的最小的数。 Sample Input Sample Output 题目 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展…… 我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过1000的正整数n,简单地数一下,需要多少步(砍几下)才能得到n=1? 输入 每个测试输入包含1个测试用例,即给出自然数n的值。 输出 输出从n计算到1需要的步数。 Sample Input Sample Output 题目 一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0 A1……AN-1)变换为(AN-M …… AN-1 A0 A1……AN-M-1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法? 输入 每个输入包含一个测试用例,第1行输入N ( 1<=N<=100)、M(M>=0);第2行输入N个整数,之间用空格分隔。 输出 在一行中输出循环右移M位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。 Sample Input Sample Output 题目 小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a1, a2, …, an。小明想分给每个朋友至少重量为k的蛋糕。小明的朋友们已经排好队准备领蛋糕,对于每个朋友,小明总是先将自己手中编号最小的蛋糕分给他,当这个朋友所分得蛋糕的重量不到k时,再继续将剩下的蛋糕中编号最小的给他,直到小明的蛋糕分完或者这个朋友分到的蛋糕的总重量大于等于k。 输入 输入的第一行包含了两个整数n, k,意义如上所述。 输出 输出一个整数,表示有多少个朋友分到了蛋糕。 Sample Input Sample Output 题目 编写程序,输入十个职工的编号、姓名、基本工资、职务工资,求出“基本工资+职务工资”最少的职工,并输出该职工记录(结果保留两位小数)。 输入 输入见样例。 输出 输出所求的结果。 Sample Input Sample Output 题目 小明带着N元钱去买酱油。酱油10块钱一瓶,商家进行促销,每买3瓶送1瓶,或者每买5瓶送2瓶。请问小明最多可以得到多少瓶酱油。 输入 多组测试数据,每组一行。 每行包含一个整数N,表示小明可用于买酱油的钱数。N是10的整数倍,N不超过300。 输出 对每组测试数据,在一行中输出一个整数,表示小明最多可以得到多少瓶酱油。 Sample Input Sample Output 题目 以递归思想计算最大公约数gcd(m,n)。 tips:若m%n等于0,则gcd(m,n)等于n;否则gcd(m,n)=gcd(n,m%n) 输入 每一行输入两个数m,n(均为正整数),中间以空格隔开,可能会有多行输入 输出 输出最大公约数 Sample Input Sample Output 题目 判断一个字符串是否为另一个字符串的子串。若是,则输出第一次出现位置的下标;否则,输出-1 。 输入 在两行中输入两个字符串(包括空格)。 输出 输出所求的结果。 Sample Input Sample Output 题目 编写程序找出一组单词中“最小”单词和“最大”单词。输入单词后,程序根据字典顺序决定排在最前面和最后面的单词。当输入4个字母的单词时,程序停止读入(最后一个不参与计算)。 输入 每行输入一个单词。 输出 第一行输出“最小”单词。 Sample Input Sample Output 题目 输入一个正整数N,检查N中重复出现的数字,并打印出一份列表,显示每个数字在正整数N中出现的次数。 输入 在一行中输入一个正整数n(n<=10^18)。 输出 在第一行中输出0到9的数字,每个数字占3位。 Sample Input Sample Output 题目 图书用国际标准书号(ISBN)进行标识。2007年1月1日之后分配的ISBN包含13位数字,分为5组,如978-0-393-97950-3 。第一组(GSI前缀)目前为978或979 。第二组(组标识)指明语言或者原出版国(0)。第三组(出版商编号)表示出版商(393)。第四组(产品编号)是由出版商分配的用于识别具体哪一本书的(97950)。ISBN的末尾是一个校验数字,用于验证前面数字的准确性。编写一个程序来分解用户输入的ISBN信息。 输入 在一行中输入一个ISBN信息。 输出 在5行中按照样例格式,顺序地输出分解之后的信息。 Sample Input Sample Output 题目 已知的最古老的一种加密技术是凯撒加密。该方法把一条消息中的每个字母用字母表中固定距离之后的那个字母来替代。如果越过了字母Z,会绕回到字母表的起始位置。例如,如果每个字母都用字母表中两个位置之后的字母代替,那么Y就被替换为A,Z就被替换为B。 输入 第一行输入待加密的消息(不超过100个字符)。 输出 在一行中输出加密之后的消息。 Sample Input Sample Output 题目 美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧! 输入 输入在一行中给出正方形边长N(3<=N<=20)和组成正方形边的某种字符C,间隔一个空格。 输出 输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(取整)。 Sample Input Sample Output 题目 本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出。 输入 E输入在第1行给出不超过105的正整数N,即学生总人数。随后1行给出N名学生的百分制整数成绩,中间以空格分隔。最后1行给出要查询的分数个数K(不超过N的正整数),随后是K个分数,中间以空格分隔。 输出 在一行中按查询顺序给出得分等于指定分数的学生人数,中间以空格分隔,但行末不得有多余空格。 Sample Input Sample Output 题目 给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。 输出 输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。 Sample Input Sample Output 这里对文章进行总结:2 4
15
def isPrim(n):
if n==0 or n==1:
return False
else:
if 0 not in [n%d for d in range(2,n)]:
return True
else:
return False
s=input().split(' ')
n=int(s[0])
m=int(s[1])
sum=0
count=0;
i=2
while True:
if count>m:
break
if isPrim(i):
count+=1
if count>=n and count<=m:
sum+=i
i+=1
print(sum)
实例005:分解质因数
18
18=2*3*3
n=int(input())
print("{}=".format(n),end='')
while n>1:
for i in range(2,n+1):
if n%i==0:
n=int(n/i)
if n==1:
print(i)
else:
print("{}*".format(i),end='')
break
实例006:单词长度
It's great to see you here.
4 5 2 3 3 4
dan=input().split()
dan=list(dan)
l=len(dan)
i=0
while i
实例007:最简分式
60/120
1/2
def mxy(a,b):
if a实例008:成绩排名
第1行:正整数n, n<100
第2行:第1个学生的姓名 学号 成绩
第3行:第2个学生的姓名 学号 成绩
... ... ...
第n+1行:第n个学生的姓名 学号 成绩
3
Joe Math990112 89
Mike CS991301 100
Mary EE990830 95
Mike CS991301
Joe Math990112
n = input()
lst1=list()
lst1.append(n)
for i in range(eval(n)):
k = input()
for i in k.split():
lst1.append(i)
grade = list()
for i in range(len(lst1)):
if i % 3 == 0 and i != 0:
grade.append(eval(lst1[i]))
max = max(grade)
min = min(grade)
print(lst1[lst1.index(str(max))-2]+' '+lst1[lst1.index(str(max))-1])
print(lst1[lst1.index(str(min))-2]+' '+lst1[lst1.index(str(min))-1])
实例009:D进制的A+B
123 456 8
1103
n=[int(n) for n in input().split()]
s=n[0]+n[1]
q=n[2]
r=0
form=''
while s//q>0:
r=s%q
form = str(r) + form
s=s//q
form=str(s)+form
print(form)
实例010:到底买不买
ppRYYGrrYBR2258
YrR8RrY
ppRYYGrrYB225
YrR8RrY
Yes 8
No 2
#定义一个方法,完成各类珠子的计数
def getDicts(s):
d={}
for x in s:
if x in d:
d[x]+=1
else:
d[x]=1
return d
s1=input() # 商家拥有的珠子
s2=input() # 买家需要的珠子
while s1 and s2:
d1=getDicts(s1) # 计算商家的珠子数
d2=getDicts(s2) # 计算买家需要的珠子数
sum=0
for x in d2:# 如果商家有买家需要的珠子
if x in d1:
if d1[x]实例011:数字特征值
342315
13
#第一步 从键盘接收一个数字的输入,并分解个位数存入一个列表中
num=input()
num=list(num)
le=len(num)
for i in range(le):
num[i]=int(num[i])
#把位数做个列表,快速生成列表
b=[le-i for i in range(le)]
#求数位和序位的奇偶性结果,存入result列表
result=[]
for i in range(le):
if num[i]%2 == b[i]%2:
result.append(1)
else:
result.append(0)
#求各位数对应的二进制
sum=0
for i in range(le):
sum += result[i]*2**(le-i-1)
print(sum)
def trans(ls, leng):
sum = 0
t = leng-1
for i in ls:
sum += i*(2**t)
t -= 1
return sum
x = input()
lit=list(map(int, x))
le=len(lit)
t=le
ls=[]
for i in range(0, le):
if lit[i] % 2== t% 2:
ls.append(1)
else:
ls.append(0)
t -= 1
n=trans(ls,le)
print(n)
实例012:组个最小数
2 2 0 0 0 3 0 0 1 0
10015558
x = list(map(int, input().split(' ')))
sNum = []
for i in range(10):
for j in range(x[i]):
sNum.append(i)
# 在sNum中查找第一个非0元素,并与列表中第一个元素交换
i = 0
while i < len(sNum):
if sNum[i] != 0:
break
i += 1
# 交换下标为0和下标为i的元素数
sNum[0], sNum[i] = sNum[i], sNum[0]
for i in range(len(sNum)):
sNum[i] = str(sNum[i])
print("".join(sNum))
m = [int(x) for x in input().split()]
if m[0] != 0:
for i, j in enumerate(m):
if j != 0 and i != 0:
print(i, end='')
m[i] -= 1
break
for i, j in enumerate(m):
if j != 0:
print(str(i)*j, end='')
print()
实例013:害死人不偿命的(3n+1)猜想
3
5
m = int(input())
count = 0
while m != 1:
if m % 2 == 0:
m /= 2
else:
m = (3*m+1)/2
count += 1
print(count)
实例014:数组元素循环右移问题
6 2
1 2 3 4 5 6
5 6 1 2 3 4
n, m = map(int, input().split())
k = list(input().split())
print(' '.join(k[n-m:]+k[:n-m]))
#讲解
n,m=list(map(int,input().split(' ')))
#数组
arr=list(input().split())
if n==len(arr):
for i in range(m):
x=arr.pop(len(arr)-1) #把最后一个列表元素出槛给X
arr.insert(0,x) # 把弹出的元素插入在当前列表的最前面
#输出右移的列表
print(' '.join(arr))
实例014:分蛋糕
请问当小明的蛋糕分完时,总共有多少个朋友分到了蛋糕。
第二行包含n个正整数,依次表示a1, a2, …, an。6 9
2 6 5 6 3 5
3
num=0
n,j=map(int,input().split())
list=[i for i in list(map(int,input().split()))]
cur=0
for i in range(len(list)):
cur+=list[i]
if i==len(list)-1:
num+=1
break
if cur>=j:
num+=1
cur=0
print(num)
n,m=list(map(int,input().split(' ')))
arr=list(map(int,input().split(' ')))
count=0 #记录分配到的学生数
sum=0 #保存从列表中依次取出蛋糕的重量
if n == len(arr):
for i in range(n):
sum+=arr[i]
if sum>=m:
count +=1
sum = 0
if sum!=0: # 最后一个同学没有分配到满足要求的蛋糕
count +=1
print(count)
实例015:职工查询
001 abc 230.00 400.00
002 张三 240.00 500.00
003 李四 250.00 300.00
004 王五 250.00 400.00
005 赵六 260.00 300.00
006 李七 280.00 300.00
007 kmp 290.00 310.00
008 bfs 280.00 300.00
009 bcd 270.00 300.00
010 dhdjdshh 290.00 400.00
003 李四 250.00 300.00
#职工查询,可以用字典,
employees=[]
n=10
for i in range(10):
employee={}
em=list(input().split())
employee['no']=em[0]
employee['name']=em[1]
employee['s1']=float(em[2])
employee['s2']=float(em[3])
employees.append(employee)
em=min(employees,key=lambda x:x['s1']+x['s2'])
print("{no} {name} {s1:.2f} {s2:.2f}".format(no=em['no'],name=em['name'],s1=em['s1'],s2=em['s2']))
实例016:打酱油
001 abc 230.00 400.00
40
80
5
11
n=int(input())
while n:
total=n//10
sum=0
if total>=5:
m=total//5
sum+=m*7
total-=m*5
if total>=3:
total -=3
sum+=4
sum+=total
print(sum)
n=int(input())
实例017:最大公约数
12 16
9 7
2 10
4
1
2
def gcd(m, n):
if m < n:
m, n=n, m
if m % n == 0:
return n
else:
return gcd(n,m%n)
s =input()
while s:#当输入不为空时
m,n =list(map(int,s.split()))# 第一项赋值给m,第二项赋值给n
print(gcd(m,n))
s=input() #接收下一组输入
实例018:判断字符串的子串
How are you!
are
4
# 判断字符串的子串
# 先接收两个字符串
s1=input()
s2=input().strip() # 去掉子字符串两端的空格
i=s1.find(s2) # find 函数在s1中查找s2,如果存在返回s2在s1中首次出现的位置,否则返回-1
print(i)
实例019:“最小”和“最大”单词
假设所有的单词都不超过20个字母。
第二行输出“最大”单词。dog
zebra
rabbit
catfish
walrus
cat
fish
cat
zebra
# Problem D :"最大"和”最小“单词
# 给一个空的集合,先放个列表
words = []
word = input()
while len(word) != 4:
words.append(word) # 若不等于4,添加进集合
word = input()
# 下面进行排序,求最大最小
minWord = min(words)
maxWord = max(words)
print(minWord)
print(maxWord)
实例020:检查数中重复的数字
在第二行中输出对应数字出现的次数,每个占3位。41271092
0 1 2 3 4 5 6 7 8 9
1 2 2 0 1 0 0 1 0 1
n = list( input()) # 将键盘接收的数字字符串转换为整数列表
num={}
for x in n:
num[x]=n.count(x)
for i in range(10):
print(" %d"%(i), end="") # 注意end后面的引号不能打空格
print()
for i in range(10):
key=str(i)
if key in num:
print(" %d"%(num[key]), end="")
else:
print(" 0",end="")
实例021:分解ISBN信息
978-0-393-97950-3
GS1 prefix: 978
Group identifier: 0
Publisher code: 393
Item number: 97950
Check digit: 3
# 分解ISBN信息
isbn=input().split('-')
print("GS1 prefix: %s"%(isbn[0]))
print("Group identifier: %s"%(isbn[1]))
print("Publisher code: %s"%(isbn[2]))
print("Item number: %s"%(isbn[3]))
print("Check digit: %s"%(isbn[4]))
实例022:凯撒加密
编写程序用凯撒加密方法对消息进行加密。
注意:不是字母的字符不变,不改变字母的大小写。
第二行输入一个整数n(1<=n<=25)。表示每个字母都用字母表中 n 个位置之后的字母代替。Go ahead, make my day.
3
Jr dkhdg, pdnh pb gdb.
#凯撒加密(网上自找)
zf = list(input())
k = int(input())
k = k % 26
for i in range(len(zf)):
x = ord(zf[i])
if 97 <= x <= 122:
if x+k > 122:
zf[i] = chr(x+k-26)
else:
zf[i] = chr(x + k)
elif 65 <= x <= 90:
if x+k > 90:
zf[i] = chr(x+k-26)
else:
zf[i] = chr(x+k)
else:
pass
print(''.join(map(str, zf)))
#讲解
chsL = [chr(97+i) for i in range(26)]
chsU = [chr(65+i) for i in range(26)]
strs = input().split(' ')
d = int(input())
result = []
for s in strs:
s = list(s)
for i in range(len(s)):
if s[i] in chsL:
s[i] = chsL[(chsL.index(s[i]) + d) % 26]
elif s[i] in chsU:
s[i] = chsU[(chsU.index(s[i]) + d) % 26]
result.append("".join(s))
print(' '.join(result))
实例023:跟奥巴马一起编程
10 a
aaaaaaaaaa
a a
a a
a a
aaaaaaaaaa
# 跟奥巴马学编程
s=input().split(' ')
n=int(s[0])
ch=s[1]
for i in range(n//2):
if i == 0 or i == n//2-1:
print("%s"%(ch*n))
else:
print("%s%s%s" % (ch, ' '*(n-2), ch))
实例024:统计同成绩学生
10
60 75 90 55 75 99 82 90 75 50
3 75 90 88
3 2 0
# 网上找
n = input()
a = input().split()
b = input().split()
result = []
for i in b[1:]:
result.append(str(a.count(i)))
print(" ".join(result))
# 老师讲解
n = int(input())
scores=list(map(int,input().split()))
query=list(map(int,input().split()))
if n==len(scores):
first=1
for i in range(1,len(query)):
if first:
print("%d"%(scores.count(query[i])),end="")
first=0
else:
print(" %d" % (scores.count(query[i])), end="")
实例025:出现次数最多的数
输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。6
10 1 10 20 30 20
10
# 讲解
n=int(input())
num=list(map(int,input().split()))
if n == len(num):
v=max(num, key=lambda x:num.count(x))
vMin=v
for x in num:
if num.count(x) == num.count(v):
if vMin>x:
vMin=x
print(vMin)
#网上查找
num = int(input())
ns = [int(s) for s in input().split()] #列表推导式。把input().split()得到的列表中的数字字符串转换为整数,得到整数列表。
n_c = {} #存储各个数字的出现次数的字典
for n in ns:
if n in n_c: #该数已经在字典中吗
n_c[n] += 1
else:
n_c[n] = 1
n_c_list = list(n_c.items()) #字典转换为列表
n_c_list.sort() #本次排序的意图是做到“相同次数的,按数字从小到大排序”。
n_c_list.sort(key=lambda item: item[1], reverse=True) #列表元素按出现次数从大到小排序
#key=lambda item: item[1],这里使用了lambda表达式,作用是指定出现次数为排序关键字。item类似于函数形参。排序期间,列表元素作为实参传给item。
print(n_c_list[0][0]) #输出排序后的列表首元素中的第一项(即出现次数最多的数字)
总结
以上就是今天要讲的内容,本文仅仅简单介绍了相关题目进行练习,



