Python习题八

7-1 产生每位数字相同的n位数

读入2个正整数A和B,1<=A<=9, 1<=B<=10,产生数字AA…A,一共B个A

输入格式:

在一行中输入A和B。

输出格式:

在一行中输出整数AA…A,一共B个A

输入样例1:

在这里给出一组输入。例如:

  1,  5

输出样例1:

在这里给出相应的输出。例如:

11111

输入样例2:

在这里给出一组输入。例如:

        3  ,4

输出样例2:

在这里给出相应的输出。例如:

3333

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

参考答案

#方法一
a,b=input().split(',')
a=a.strip()
b=b.strip()
b=int(b)
c=a
for i in range(b-1):
    c+=a
print(c)
#方法二
a,b=input().split(",")
a=str(eval(a))
b=eval(b)
print(a*b)

7-2 输出10个不重复的英文字母

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

输入格式:

在一行中输入字符串

输出格式:

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

输入样例1:

在这里给出一组输入。例如:

poemp134567

输出样例1:

在这里给出相应的输出。例如:

not found

输入样例2

在这里给出一组输入。例如:

This 156is a test example

输出样例2:

在这里给出相应的输出。例如:

Thisaexmpl

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

参考答案

#方法一
a=input()
b=''
for i in a:
    if (i.isalpha() == True) and (i.lower() not in b) and (i.upper() not in b):
        b+=i
if len(b)<10:
    print('not found')
else:
    print(b[:10])
#方法二
x=input()
s=""

for i in x:
    if i.isalpha() and i.upper() not in s and i.lower() not in s and len(s)<10:
        s+=i
        
if len(s)>=10:
    print(s[:10])
else:
    print("not found")

7-3 转换函数使用

输入一个整数和进制,转换成十进制输出

输入格式:

在一行输入整数和进制

输出格式:

在一行十进制输出结果

输入样例:

在这里给出一组输入。例如:

45,8

输出样例:

在这里给出相应的输出。例如:

37

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

参考答案

#方法一
a,b = map(int, input().split(","))
c = a % 10
a = a // 10
while a:
    c += a % 10 * b
    a = a // 10
print(c)
#方法二
a,b=input().split(",")
b=eval(b)
c=int(a,b)
print(c)

7-4 重要的事情说N遍

对重要的事情,阿福老师会反复说N多遍。
提示:用字符串 * 和 +

输入格式:

输入包含2行,第一行是阿福要重复说多遍的一句话,也就是阿福想强调的重要事情;第2行为一个整数N(0<N<10)

输出格式:

将阿福要强调的重要事情,反复输出N遍,具体格式参见样例。

输入样例:

Go
3

输出样例:

Go!Go!Go!

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

参考答案

#方法一
a=input()
b=int(input())
c=a
for i in range(b):
    if b>0 and b<10:
        print(c,end='!')
#方法二
n=input()
m=int(input())
for i in range(m):
    print(n,end="!")
#方法三
a=input()
b=eval(input())
print((a+"!")*b)

7-5 计算M和N的多个结果

用户输入两个数M和N(用两个input语句输入),其中N是整数,计算M和N的5种数学运算结果,并依次输出,结果间用空格分隔。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

5种数学运算分别是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

M与N的和、M与N的乘积、M的N次幂、M除N的余数、M和N中较大的值

输入格式:

输入M和N的值

输出格式:

M与N的和 M与N的乘积 M的N次幂 M除N的余数 M和N中较大的值

输入样例:

在这里给出一组输入。例如:

10
2

输出样例:

在这里给出相应的输出。例如:

12 20 100 0 10

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

参考答案

#方法一
M=eval(input())
N=eval(input())
print(M+N,M*N,M**N,M%N,max(M,N))
#方法二
M = eval(input())
N = eval(input())
print("%s %s %s %s %s"%((M+N),(M*N),(M**N),(M%N),max(M,N)))
#方法三
a=eval(input())
b=eval(input())
print("{} {} {} {} {}".format(a+b,a*b,pow(a,b),a%b,max(a,b)))

7-6 计算 11+12+13+…+m

输入一个正整数m(20<=m<=100),计算 11+12+13+…+m 的值。

输入格式:

在一行输入一个正整数m。

输出格式:

在一行中按照格式“sum = S”输出对应的和S.

输入样例:

在这里给出一组输入。例如:

90 

输出样例:

在这里给出相应的输出。例如:

sum = 4040

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

参考答案

#方法一
m=int(input())
S=0
if m>=20 and m <=100:
    for i in range(11,m+1):
        S+=i
print('sum = %d'%S)
#方法二
n = int(input())
sum = 0
for i in range(11,n+1):
    sum += i
print("sum = {}".format(sum))

7-7 找出最大值和最小值

输入若干个(至少一个)正整数,输出它们的最大值和最小值。

输入格式:

在一行中输入若干个数,以空格分隔。

输出格式:

按以下形式输出最大值和最小值:
Max=?
Min=?

输入样例:

在这里给出一组输入。例如:

4 5 67 3 99 2 7

输出样例:

在这里给出相应的输出。例如:

Max=99
Min=2

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

参考答案

#方法一
a=input().split()
b=tuple(a)
print('Max=%s'%max(b))
print('Min=%s'%min(b))
#方法二
x=list(map(int,input().split()))
print("Max={}".format(max(x)))
print("Min={}".format(min(x)))

7-8 空行间隔

输入2个整数A和B,然后输出它们的和。要求每两组测试数据之间留一个空行。

输入格式:

测试数据有多组,处理到文件尾。每组测试输入2个整数A和B。

输出格式:

对于每组测试数据,在一行中输出A+B的值。每两组测试数据之间留一个空行。

输入样例:

1 2
3 4
5 6

输出样例:

3

7

11

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

参考答案

#方法一
c=[]
try:
    while True:
        A,B=map(int,input().split(" "))
        c.append((A+B))
except:
    pass
for i in range(len(c)):
    if i == len(c)-1:
        print(c[i])
    else:
        print("%s\n"%c[i])
#方法二
lst=[]
while True:
    try:
        a,b= map(int,input().split())
        lst.append(a+b)
    except:
        break
print("\n\n".join(map(str,lst)))

7-9 签到 找出重复签到的同学

找出签到数据中重复签到的同学

输入格式:

[1, 2, 2, 3, 4, 5, 4],数字表示收集的签到的学生的学号

输出格式:

2 4
输出重复签到的学生学号,从小到大输出,数字后面有一个空格符

输入样例:

在这里给出一组输入。例如:

[1, 2, 2, 3, 4, 5, 4]

输出样例:

在这里给出相应的输出。例如:

2 4 

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

参考答案

#方法一
nums = input()
nums = nums.strip('[')
nums = nums.strip(']')
nums = list(map(int,nums.split(',')))
b=[]
c=[]
for i in range(len(nums)):
    if nums[i] in b:
        c.append(nums[i])
    elif nums[i] not in b:
        b.append(nums[i])
for i in c:
    print(i,end=" ")
#方法二
lst = eval(input())
b = set(lst)
for i in b:
    count = 0
    for j in lst:
        if i==j:
            count = count+1
    if count>1:
        print(i,end=" ")
#方法三
a=eval(input())
m=[]
for i in a:
    if a.count(i)>1 and i not in m:
        m.append(i)
m.sort()        
for i in m:
    print(i,end=' ')

7-10 输出队形

输出一个m行n列的队形,每个位置的数字为e。

输入格式:

m
n
e

输出格式:

输出队形数字,每个数字后面有一个空格

输入样例:

在这里给出一组输入。例如:

3
4
5

输出样例:

在这里给出相应的输出。例如:

5 5 5 5 
5 5 5 5 
5 5 5 5 

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

参考答案

a=input()
b=input()
c=input()
for i in range(int(a)):
    for j in range(int(b)):
        print(c,end=" ")
    print()

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值