1 打印九九口诀表
下面是一个完整的下三角九九口诀表:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
输入格式:
输入在一行中给出一个正整数N
(1≤N
≤9)。
输出格式:
输出下三角N*N
部分口诀表,其中等号右边数字占4位、左对齐。(字符格式化)
输入样例:
4
输出样例:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
代码
n = int(input())
for i in range(1,n+1):
for j in range(1,i+1):
# print(f'{i}*{j}={(i*j):<4}',end='')
print("{}*{}={:<4}".format(j,i,(i*j)),end="") # 不管编译器 i写在j后面更好看 箭头反向为对齐方向
print()
2 输入列表,求列表元素和(eval输入应用)
在一行中输入列表,输出列表元素的和。
输入格式:
一行中输入列表。
输出格式:
在一行中输出列表元素的和。
输入样例:
[3,8,-5]
输出样例:
6
print(sum(list(eval(input()))), end='')
# eval的参数是字符串
从某种意义上说,eval就是实现list、dict、tuple和 str 之间的相互转换。
作用:
eval()函数又称为评估函数,作用是去掉参数中最外层引号并执行剩余语句
a=eval(input()) # 可以输入 2324 [2,3] (2,3) ‘dfsa2’ 不能直接输入字符串会报错 print(a,type(a))
3 验证“哥德巴赫猜想”
数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。
输入格式:
输入在一行中给出一个(2, 2 000 000 000]范围内的偶数N。
输出格式:
在一行中按照格式“N = p + q”输出N的素数分解,其中p ≤ q均为素数。又因为这样的分解不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的解。
输入样例:
24
输出样例:
24 = 5 + 19
代码
import math
def prime(p):
for i in range(2,int(math.sqrt(p))+1):
if p % i==0:
return False
else:
return True
n= int(input())
for i in range(2,int(n/2)+1):
if prime(i) and prime(n-i):
print(f"{n} = {i} + {n-i}")
break
4 求矩阵的局部极大值
给定M行N列的整数矩阵A,如果A的非边界元素A[i][j]大于相邻的上下左右4个元素,那么就称元素A[i][j]是矩阵的局部极大值。本题要求给定矩阵的全部局部极大值及其所在的位置。
输入格式:
输入在第一行中给出矩阵A的行数M和列数N(3≤M,N≤20);最后M行,每行给出A在该行的N个元素的值。数字间以空格分隔。
输出格式:
每行按照“元素值 行号 列号”的格式输出一个局部极大值,其中行、列编号从1开始。要求按照行号递增输出;若同行有超过1个局部极大值,则该行按列号递增输出。若没有局部极大值,则输出“None 总行数 总列数”。
输入样例1:
4 5
1 1 1 1 1
1 3 9 3 1
1 5 3 5 1
1 1 1 1 1
输出样例1:
9 2 3
5 3 2
5 3 4
输入样例2:
3 5
1 1 1 1 1
9 3 9 9 1
1 5 3 5 1
输出样例2:
None 3 5
代码
m,n=map(int,input().split())
a=[]
t=False
for i in range(m):
a.append(list(map(int,input().split())))
for i in range(1,m-1):
for j in range(1,n-1):
data=[]
data.append(a[i+1][j])
data.append(a[i][j+1])
data.append(a[i-1][j])
data.append(a[i][j-1])
if a[i][j]>max(data):
print(a[i][j],i+1,j+1) # 数组的下标是从零开始,取得范围是无边界元素
t=True
if t==False:
print("None",m,n)
5 列表或元组的数字元素求和
求列表中数字和,列表中嵌套层次不限2层
输入格式:
在一行中输入列表或元组
输出格式:
在一行中输出数字的和
输入样例:
在这里给出一组输入。例如:
[11,2,[3,7],(68,-1),"123",9]
输出样例:
在这里给出相应的输出。例如:
99
代码
li=[]
li=eval(input())
def Sum(li):
sums=0
for ch in li:
if isinstance(ch,int):
sums+=ch
if isinstance(ch,list):
sums+=Sum(ch)
if isinstance(ch,tuple):
sums+=Sum(ch)
return sums
print(Sum(li))