> 文档中心 > Python练习题二

Python练习题二


1、计算有n个字符串中最长的字符串长度

编写程序,用于计算有n(1<n<10)个字符串中最长的字符串的长度。前导空格不要计算在内!

输入格式:

在第一行中输入n,接下的每行输入一个字符串

输出格式:

在一行中输出最长的字符串的长度

n = int(input())max = 0for i in range(n):    li = str(input())    li = li.strip()    if len(li) > max: max = len(li)print("length=%d" % max)

2、统计单词的个数

输入一行字符,以回车结束,统计其中单词的个数。单词是中间没有空格的字符序列,各单词之间用空格分隔,单词间空格数可以是多个。

输入格式:

在一行中输入字符

输出格式:

在一行中输出单词的数量

words=list(input().split())print("count =",len(words))

 3、输出10个不重复的英文字母

随机输入一个字符串,把最左边的10个不重复的英文字母(不区分大小写)挑选出来。
如没有10个英文字母,显示信息“not found”

输入格式:

在一行中输入字符串

输出格式:

在一行中输出最左边的10个不重复的英文字母或显示信息“not found"

alpha = input()str = []for i in alpha:    if i.isalpha() and (i.upper() not in str) and (i.lower() not in str): str.append(i)str2 = "".join(str)if len(str2)>=10:    print(str2[:10])else:    print("not found")

4、图的字典表示

图的字典表示。输入多行字符串,每行表示一个顶点和该顶点相连的边及长度,输出顶点数,边数,边的总长度。比如上图0点表示:
{'O':{'A':2,'B':5,'C':4}}。用eval函数处理输入,eval函数具体用法见第六章内置函数。

输入格式:

第一行表示输入的行数
下面每行输入表示一个顶点和该顶点相连的边及长度的字符串

输出格式:

在一行中输出顶点数,边数,边的总长度

n=int(input())num=0sum=0for i in range(n):    dic=eval(input())    for j in dic: temp=dic[j] for key in temp:     num+=1     sum+=temp[key]print("{:d} {:d} {:d}".format(n,num,sum))

5、字典合并

输入用字符串表示两个字典,输出合并后的字典。字典的键用一个字母或数字表示。注意:1和‘1’是不同的关键字!

输入格式:

在第一行中输入第一个字典字符串;

在第二行中输入第二个字典字符串。

输出格式:

在一行中输出合并的字典,输出按字典序。

"1" 的 ASCII 码为 49,大于 1,排序时 1 在前,"1" 在后。其它的字符同理。

dic1 = eval(input())dic2 = eval(input())for key in dic2.keys():    dic1[key] = dic1.get(key, 0) + dic2[key]t = list(dic1.items())t.sort(key=lambda x : ord(x[0]) if type(x[0]) == str else x[0])out = str(dict(t)).replace(' ', '').replace("'", '"')print(out)

 6、jmu-分段函数l

本题目要求计算以下分段函数的值(x为从键盘输入的一个任意实数):

如果输入非数字,则输出“Input Error!”

输入格式:

在一行中输入一个实数x。

输出格式:

在一行中按”y=result”的格式输出,其中result保留两位小数。

x = input()try:    x = eval(x)    if x > 1: y = 2*x +1    elif x <= -2: y = -2*x - 1    else: y = 3    print('y={:.2f}'.format(y))except:    print('Input Error!')

7、 jmu-python-简单计算器

输入一个表达式字符串,计算其结果

输入格式:

  • 行1:输入字符串数目
  • 下面分别输入要计算的表达式

输出格式:

输出计算结果,结果保留2位小数。对于异常数据能输出相应异常信息。

n = int(input())for i in range(n):    exp = input()    try: result = eval(exp)    except NameError: print("NameError")    except ZeroDivisionError: print("ZeroDivisionError")    except SyntaxError: print("SyntaxError")    else: print("%.2f"%result)

8、求矩阵鞍点的个数

一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。

本题要求编写程序,求一个给定的n阶方阵的鞍点。

输入格式:
输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。

输出格式:
鞍点的个数。

n=int(input())a=[]count=0count1=0cnt=0for i in range(n):    s=input()    a.append([int(n) for n in s.split()])for j in range(n):    if count1 == n and count == n: break    for k in range(n): for k1 in range(n):     if a[j][k]>=a[j][k1]:  count+=1 if count==n:     for j1 in range(n):  if a[j][k]<=a[j1][k]:      count1+=1     if count1==n:  cnt=cnt+1 count1=0 count=0print(cnt)

 

 9、两数之和

给定一组整数,还有一个目标数,在给定这组整数中找到两个数字,使其和为目标数,如找到,解是唯一的。找不到则显示 "no answer"。输出的下标按从小到大排序。用一重循环加字典实现。

输入格式:

在一行中给出这组数。
在下一行输入目标数

输出格式:

在一行中输出这两个数的下标,用一个空格分开。

s=list(eval(input()))n=eval(input())sp=0for i in s:    if n-i in s: print(s.index(i),s.index(n-i)) sp=1 breakif sp==0:    print("no answer")

 

 10、企业根据利润提成发放奖金问题

企业根据利润提成发放奖金问题。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%; 20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%; 60万到100万之间时,高于60万元的部分,可提成1.5%; 高于100万元时,超过100万元的部分按1%提成。从键盘输入当月利润,求应发放奖金总数?

输入格式:

输入一个利润整数。例如:输入120000。

输出格式:

输出一个实数。例如:11500.0。

profit = float(input()) if profit < 0:     reward = 0elif profit <= 100000:    reward = profit * 0.1elif 100000 < profit <= 200000:    extra = profit - 100000    reward = 10000 + extra * 0.075elif 200000 < profit  <= 400000:    extra = profit - 200000    reward = 17500 + extra * 0.05elif 400000 < profit  <= 600000:    extra = profit - 400000    reward = 27500 + extra * 0.03elif 600000 < profit  <= 1000000:    extra = profit - 600000    reward = 33500 + extra * 0.015else:    extra = profit - 1000000    reward = 39500 + extra * 0.01print(reward)

 

希望家人们支持,三连一波吧。 

B2C跨境电商