#-*- coding:utf-8 -*-
import sys,os
print("1.题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?")
digital=[1,2,3,4]
three_digital=[]
for i in digital:
for j in digital:
for k in digital:
if (i!=k and j!=k and i!=j):
three_digital.append(i*100+j*10+k)
print("三位数个数:",len(three_digital))
print("三位数分别是:",three_digital)
print("2.题目:企业发放的奖金根据利润提成。\n利润(I)低于或等于10万元时,奖金可提10%;\n利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;\n20万到40万之间时,高于20万元的部分,可提成5%;\n40万到60万之间时高于40万元的部分,可提成3%;\n60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?")
lr = int(input("利润金额:"))
lr_list =[1000000,600000,400000,200000,100000,0]
rate =[0.01,0.015,0.03,0.05,0.075,0.1]
#lr_list =[0,100000,200000,400000,600000,1000000]
#rate =[0.1,0.075,0.05,0.03,0.015,0.01]
r =0
for i in range(0,6):
if lr>lr_list[i]:
r+=(lr-lr_list[i])*rate[i]
print((lr-lr_list[i])*rate[i])
lr=lr_list[i]
print(r)
print ("3.题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?")
# 1、则:x + 100 = n2, x + 100 + 168 = m2
# 2、计算等式:m2 - n2 = (m + n)(m - n) = 168
# 3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数
# 4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶数,要么都是奇数。
# 5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。
# 6、由于 i * j = 168, j>=2,则 1 < i < 168 / 2 + 1。
for i in range(1,85):
if 168%i==0:
j=168/i
if i>j and (i+j)%2 ==0 and (i-j)%2==0:
m=(i+j)/2
n=(i-j)/2
x=n*n-100
print(x)
print("4.题目:输入某年某月某日,判断这一天是这一年的第几天")
#程序分析:以3月5日为例,应该先把前两个月的加起来,
#然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于2时需考虑多加一
year = int(input("年:"))
month = int (input("月:"))
day = int(input("日:"))
months =(0,31,59,90,120,151,181,212,243,273,304,334)
if 0<month<=12:
sum = months[month-1]
else:
print ("data erro")
sum +=day
leap =0
if (year%400 ==0) or (year%4==0) and (year%100!=0):
leap =1
if (leap==1) and (month>2):
sum+=1
print("一年中的第%s天"%sum)
print("5.题目:输入三个整数x,y,z,请把这三个数由小到大输出。")
#程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
#x,y,z=int(input('x:')),int(input('y:')),int(input('z:'))
#冒泡排序
#输入 三个数
digital_list=[]
k=int(input("输入需要排序的数字的总个数:"))
n=0
while len(digital_list)<k:
n+=1
digital = int(input("输第%s个数:"%n))
digital_list.append(digital)
#digital_list=[12,13,28,90,21,45,32]
for i in range(0,len(digital_list)-1):
for j in range(0,len(digital_list)-1):
if digital_list[j]<digital_list[j+1]:
tmp=digital_list[j]
digital_list[j]=digital_list[j+1]
digital_list[j+1]=tmp
print("降序排列结果:",digital_list)
for i in range(0,len(digital_list)-1):
for j in range(0,len(digital_list)-1):
if digital_list[j]>digital_list[j+1]:
tmp=digital_list[j]
digital_list[j]=digital_list[j+1]
digital_list[j+1]=tmp
print("升序排列结果:",digital_list)
print("6.题目:斐波那契数列。")
# 程序分析:斐波那契数列(Fibonacci sequence),
# 又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。
# 在数学上,费波那契数列是以递归的方法来定义:
def fib(n):
if n==1:
return [0]
if n==2:
return [0,1]
l=[0,1]
for i in range(2,n):
temp=l[i-1]+l[i-2]
l.append(temp)
i+=1
return l
if __name__=="__main__":
nx = int(input("输入需要列出的数列个数:"))
print(fib(nx))
# 使用递归
def fib(n):
if n==1 or n==2:
return 1
return fib(n-1)+fib(n-2)
# 输出了第10个斐波那契数列
print fib(10)
print("7.题目:将一个列表的数据复制到另一个列表中。")
#程序分析:使用列表[:]。
l1=[1,2,3]
l2=[4,5,6,7]
l3=[]
#将L1的数据追加到L2中
for i in range(3):
l2.append(l1[i])
print("L2:",l2)
#直接使用[:]将L1的数据复制到L3中
l3= l1[:]
print("L3:",l3)
print("8.题目:输出乘法口诀表。")
row=[1,2,3,4,5,6,7,8,9]
col=[1,2,3,4,5,6,7,8,9]
for i in range(0,9):
print("")
for j in range(0,i+1):
print ("%sx%s=%s"%(col[j],row[i],row[i]*col[j]),end='\t')
row=[1,2,3,4,5,6,7,8,9]
col=[1,2,3,4,5,6,7,8,9]
a4=9
while a4>0:
col1=col[a4-1]
print("")
for i in range(0,a4):
print ("%sx%s=%s"%(row[i],col1,row[i]*col1),end='\t')
a4=a4-1
print ("\n==================================================")
for i in range(1,10):
print(" ")
for j in range(1,i+1):
print("{}x{}={}".format(j,i,i*j),end='\t')
print("\n========================================")
s=1
while s<=9:
a = 1
while (a<=s):
a1=a
a2=s
print("%s*%s=%s"%(a1,a2,a1*a2),end='\t')
a += 1
print()
s+=1
print("\n========================================")
s = 9
while s>0:
a = 1
while (a<=s):
a1=a
a2=s
print("%s*%s=%s"%(a1,a2,a1*a2),end='\t')
a += 1
print()
s = s - 1
print("9.题目:暂停一秒输出")
import time
er={1:'a',2:'b',3:'c',4:'d',5:'e'}
for key,value in er.items():
print (key,value)
time.sleep(3)
print("10.题目:暂停一秒输出,并格式化当前时间。")
import time
import datetime
nowtime= time.time()
print(nowtime)
time.sleep(1)
print(datetime.datetime.fromtimestamp(nowtime))
time.sleep(1)
print(time.strftime("%Y/%m/%d %H:%M:%S",time.localtime()))
print("11.题目:古典问题:有一对兔子,\n从出生后第3个月起每个月都生一对兔子,\n小兔子长到第三个月后每个月又生一对兔子,\n假如兔子都不死,\n问每个月的兔子总数为多少?")
#程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....
# 1月-1对--1
# # 2月-(1)对--1
# # 3月-(1)+1对新1--2
# # 4月-(2)+1对新1--3
# # 5月-(3)+2对新2--5
# # 6月-(5)+3对新3--8
# # 7月-(8)+5对新4--13
#num=[1,1,2,3,5,8,13....]
m=int(input("输入月数:"))
num=[1,1]
for i in range(1,m+1):
if i <=2:
print(num[i-1],end='\t')
#if m == 1:
#print("第%s个月兔子对数为:%s" % (m, num[0]))
#else:
#print("第2个月兔子对数为:%s" % num[1])
else:
num3=(num[i-2]+num[i-3])
num.append(num3)
print(num[i-1], end='\t')
i+=1
print("\n第%s个月后兔子的对数为:%s"%(i-1,num[-1]),end='\t\n')
print("12.题目:判断101-200之间有多少个素数,并输出所有素数。")
#程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数
#什么是素数?就是质数,只能被1和本身整除的数
#按质数的定义实现
num=101
sushu=[]
while num<=200:
sum = []
i=1
while i<=num:
if num%i==0:
sum.append(i)#将能被整除的数加入到sum[]中
i+= 1
if len(sum)==2:#sum的长度为2说明该数字只能被两个数整除,这两个数即是1和他本身
sushu.append(num)
num+=1
print ("101-200之间的质数有%s个,他们分别为:%s"%(len(sushu),sushu))
print("""13.题目:打印出所有的"水仙花数",\n所谓"水仙花数"是指一个三位数,\n其各位数字立方和等于该数本身。\n例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。""")
#程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
shui=[]
for i in range(100,999):
m=i//100
n=(i-m*100)//10
k=i%10
if m*m*m+n*n*n+k*k*k==i:
shui.append(i)
print("水仙花数:",shui)
print("14.题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。")
def reduceNum(n):
print("{}=".format(n),end='\t')
if not isinstance(n,int) or n<=0:
print("请输入一个正确的数!")
exit(0)
elif n in [1]:
print("{}".format(n))
while n not in [1]:#保证循环递归
for index in range(2,n+1):#从2 开始穷举能被要分解质因数的数整除的数
#print(type(index))
if n%index==0:#如果能被整出
n=n/index#计算整除后的商,后续继续将该值进行质因数分解,进行循环操作直至n=1
n=int(n)
#print("n的值为:",n)
if n==1:
print('{}*1'.format(index))
else:#index一定是素数
print("{}*".format(index),end='\t')
break
if __name__=="__main__":
num=int(input("please input the number:"))
reduceNum(num)
print("15.题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,\n60-89分之间的用B表示,60分以下的用C表示。")
#程序分析:程序分析:(a>b)?a:b这是条件运算符的基本例子
scores ={'张三':56,'李四':78,'王五':90,'王二':65}
for key,values in scores.items():
if values>=90:
print('%s的成绩为:A'%key)
elif values>=60:
print('%s的成绩为:B'%key)
else:
print('%s的成绩为:C'%key)
score = int(input('输入分数:\n'))
if score >= 90:
grade = 'A'
elif score >= 60:
grade = 'B'
else:
grade = 'C'
print('%d 属于 %s' % (score, grade))
print("16.题目:输出指定格式的日期。")
#程序分析:使用 datetime 模块
import datetime
import time
now=time.localtime()
print(now)
now1=datetime.date.today().strftime('%Y-%m-%d')
print(now1)
now2=datetime.datetime.today().strftime('%m-%d-%Y %H:%M:%S')
print(now2)
#创建日期对象
now3=datetime.date(1989,12,19)
#日期算术运行
now5=now3+datetime.timedelta(days=365)
#日期替换
now6=now3.replace(year=now3.year+30)
print('now6:',now6)
print(now3.strftime('%Y-%m-%d'))
now4=time.localtime()
print(time.strftime('%Y/%m/%d',now))
print(now5)
print("17.题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。")
str1=input("输入一串字符:")
print(list(str1))
digitnum=0
alphanum=0
stnum=0
spacenum=0
for i in range(0,len(str1)):
if str1[i].isdigit():
digitnum+=1
elif str1[i].isspace():
spacenum+=1
elif str1[i].isalpha():
alphanum+=1
else:
stnum+=1
print("字母个数:%s\t数字个数:%s\t符号个数:%s\t空格个数:%s"%(alphanum,digitnum,stnum,spacenum))
from functools import reduce
print("18.题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。\n例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。")
#程序分析:关键是计算出每一项的值.
numbers=int(input('输入需要相加的数目个数:'))
a=int(input("输入需要进行该运算的数字:"))
sum1=[a]
s=a
print('{}'.format(a),end='\t')
for i in range(1,numbers):
s=s+a*(10**i)
sum1.append(s)
print('+',end='\t')
print('{}'.format(s),end='\t')
#print(sum)
allsum=0
for j in range(0,len(sum1)):
allsum+=sum1[j]
print('={}'.format(allsum),end='\t')
#直接使用已有函数进行求和计算
allsum2= reduce(lambda x,y:x+y,sum1)
allsum3= sum(sum1)
print ('\nreduce()求和为:',allsum2)
print ('\nsum()求和为:',allsum3)
print("19.题目:一个数如果恰好等于它的因子之和,\n这个数就称为'完数'。\n例如6=1+2+3.编程找出1000以内的所有完数。")
import copy
#程序分析,先将该数的所有约数找出,除去本身以外的约数进行求和计算。
def fenjie_sum(j):
fenjie_list=[1]
for i in range(2,j+1):
if j%i==0:#穷举该数整除的数
if j/i!=1:#排除该数本身的约数
fenjie_list.append(i)#将所有约数添加到list中
#print(fenjie_list)
return sum(fenjie_list)
if __name__=="__main__":
m=1
while m<=1000:
m+=1
n=fenjie_sum(m)
if n==m:
print(m)
print("========================")
for k in range(2,1000):
fenjie_list2=[1]
for l in range(2,k+1):
if k%l==0:
if k/l!=1:
fenjie_list2.append(l)
if sum(fenjie_list2)==k:
print(k)
print(fenjie_list2)
print("20.题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?")
# high1=100
# #每次弹起的高度即落下的高度减半
# # 1---50 第一次弹起的高度
# # 2---25 第一次的弹起的高度的基础上落下再进行弹起再次减半,也就是第一次弹起高度的基础上减半
# i=1
# while i<=10:
# high1=high1/2
# i+=1
# print("第10次弹起的高度为:%s"%(high1))
# #第十次落地时共走过的路程,从第一次落地开始算
# # 1---100
# # 2---100+50+50 第二次落地即使第一次弹起再落地,即使+上两倍第一次弹起的高度
# # 3---100+(50+50)+(25+25) 第二次落地的基础上弹起后再落地即第三次落地
high2=100
high3=100
j=1
while j<=10:
#print(high2,'----第%s次落地经过路程'%j)
high3=high3/2 #落地后弹起的高度
#print(high3,'----%s次弹起'%j)
if j==10:
print("第10次弹起的高度为:%s"%high3)
j+=1
high2 = high2 + 2 * high3 # 反弹的高度要乘以2,因为要弹起,然后再才会落下
if j==10:
print("第10次落地球共经过的路程为:%s"%high2)
print("21.题目:猴子吃桃问题:猴子第一天摘下若干个桃子,\n当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,\n又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。\n到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。")
#程序分析:采取逆向思维的方法,从后往前推断。
# 桃子 x 个
# 1---x/2-1
# 2---(x/2-1)/2-1
# 3---((x/2-1)/2-1)/2-1
# 8----- (m+1)*2 #
# 9---- (1+1)*2 =m
#10-----1
j=1 #第十天剩余的个数
i=1
while i <10:
j=(j+1)*2
i+=1
print("桃子总个数为:",j)
print("22.题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,\n乙队为x,y,z三人。已抽签决定比赛名单。\n有人向队员打听比赛的名单。\na说他不和x比,c说他不和x,z比,\n请编程序找出三队赛手的名单。")
#i,j,k i为a对手,j为b的对手,k为z的对手
for a in range(ord('x'),ord('z')+1):
for b in range(ord('x'),ord('y')+1):
if a!=b:
for c in range(ord('x'),ord('z')+1):
if b!=c and c!=a:
if a!=ord('x') and c!=ord('x') and c!=ord('z'):
print("a:%s \t b:%s \t c:%s"%(chr(a),chr(b),chr(c)))
print("23.题目:打印出如下图案(菱形)")
#
# *
# ***
# *****
# *******
# *****
# ***
# *
for i in range(0,7,2):
print(((i+1)*'*').center(10),end='\n')
for j in range(5,0,-2):
print((j*'*').center(10),end='\n')
print("24.题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。")
#程序分析:请抓住分子与分母的变化规律。
#a1=2/1 f1/m1
#a2=3/2 f2/m2
#a3=5/3 (m+n)+m/m+n
#a4=8/5
#a5=13/8
#a6=21/13
f =[2,3]
m =[1,2]
#所有分子或者分母的序列为斐波那契数列
for i in range(2,20):
fn=f[i-1]+f[i-2]
mn=m[i-1]+m[i-2]
f.append(fn)
m.append(mn)
#print("分子:",f)
#print('分母:',m)
s=0
for i in range(0,20):
s+=(f[i]/m[i])
print("前20项之和为:",s)
print("======================")
a=1
b=2
s1=2/1
for i in range(1,20):
a,b=b,b+a#赋值运算,先计算右边的值结果,再将右边的结果复制给左边的参数。
s1=s1+b/a
print("前20项之和为:",s1)
print("25.题目:求和1+2!+3!+4!+...+20!")
s=0
a=1
for i in range(1,21):
a = a * i
s=s+a
print("和为:",s)
print("26.题目:利用递归方法求5!。")
#程序分析:递归公式:fn=fn_1*4!"
print("普通方法====================")
s=1
n=1
while n<=5:
s=s*n
n+=1
print (s)
print("递归方法==========有啥区别??")
#递归函数比较耗费内存资源,因为递归时计算得到的值会先存放到堆栈中(即返回值压栈),递归完成退出后才会从堆栈中取出值进行最终的计算,相对来说没有循环来的快
#递归未必效率低;递归的问题是:每次递归函数参数压栈,递归太深,会使栈溢出
def fact(j):
if j==0:
sum=1
else:
sum=j*fact(j-1)
print(j)
return sum
print(fact(5))
print("27.题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。")
def printer(s):
if len(s) ==1:
print(s)
else:
print(s[-1])
x = s[:-1]
printer(x)
return
if __name__=="__main__":
s=input()
printer(s)
# ======================
def output(s,l):
if l==0:
return
print (s[l-1])
output(s,l-1)
s = input('Input a string:')
l = len(s)
output(s,l)
print("28.题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。\n问第4个人岁数,他说比第3个人大2岁。\n问第三个人,又说比第2人大两岁。问第2个人,\n说比第一个人大两岁。\n最后问第一个人,他说是10岁。请问第五个人多大?")
#程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
def old(t,i):
if i==1:
print(t)
else:
t=t+2
i-=1
old(t,i)
if __name__=="__main__":
x=old(10,5)
# ===========
def age(n):
if n == 1: c = 10
else: c = age(n - 1) + 2
return c
print( age(5))
print("29.题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。")
#12345
def numbers(s):
for i in range(1,6):
x=s//(10**i)#取整,整数商为0时判断数的位数
if x==0:
print ("这一个%s位数:"%(i),end='\t')
return i #return函数中断for循环,且返回i的值即输入的数的位数
s = int(input("输入一个不多于5位的正整数:"))
i=numbers(s)
x=str(s)#将输入的5位数转为str类型使用list索引进行逆序输出
for j in range(i-1,-1,-1):
print (x[j],end='\t')
x = int(input("请输入一个数:\n"))
a1 = x / 10000
b1= x % 10000 / 1000
c1 = x % 1000 / 100
d1 = x % 100 / 10
e1 = x % 10
a=int(a1)
b=int(b1)
c=int(c1)
d=int(d1)
e=int(e1)
if a != 0:
print("5 位数:", e, d, c, b, a)
elif b != 0:
print("4 位数:", e, d, c, b,)
elif c != 0:
print("3 位数:", e, d, c)
elif d != 0:
print("2 位数:", e, d)
else:
print("1 位数:", e)
print("30.题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。")
s=input("输入一个5位数:")
if s[0]==s[4] and s[1]==s[3]:
print("输入数字:%s 是回文数!"%s)
else:
print("输入的%s不是回文数" % s)
print("通过计算方式=================")
s2=int(input("输入一个5为数"))
a=s2%10 #个位数
b=(s2-a)%100//10 #十位数
c=(s2-a-b*10)%1000//100 #百位数
d=(s2-a-b*10-c*100)%10000//1000#千位数
e=(s2-a-b*10-c*100-d*1000)//10000 #万位数
print(a,b,c,d,e)
if a==e and b==d:
print("输入的%s是回文数"%s2)
else:
print("输入的%s不是回文数"%s2)
print("31.题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母")
#程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。。
#Sunday Monday Tuesday Wednesday Thursday Friday Sturday
letter = input("please input:")
# while letter != 'Y':
if letter == 'S':
print('please input second letter:')
letter = input("please input:")
if letter == 'a':
print('Saturday')
elif letter == 'u':
print('Sunday')
else:
print('data error')
elif letter == 'F':
print('Friday')
elif letter == 'M':
print('Monday')
elif letter == 'T':
print('please input second letter')
letter2 = input("please input:")
if letter2 == 'u':
print('Tuesday')
elif letter2 == 'h':
print('Thursday')
else:
print('data error')
elif letter == 'W':
print('Wednesday')
else:
print('data error')
print("32.题目:按相反的顺序输出列表的值。")
print("s=[1,2,3,4,5]")
s=[1,2,3,4,5]
for i in range(4,-1,-1):
print(s[i],end="\t")
print("\n")
for j in s[::-1]:
print(j,end='\t')
print("\n")
s.reverse()#对S进行逆序操作
for k in s:
print(k,end='\t')
print("33.题目:按逗号分隔列表。")
L=[1,2,3,4,5]
s1=",".join(str(n) for n in L) #join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串
print(s1)
s2 = '-'.join(str(k) for k in L)
print(s2)
print("35.题目:文本颜色设置。")
class bcolors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKGREEN ='\033[92m'
WARNING ='\033[93m'
FAIL = '\033[91m'
ENDC ='\033[0m'
BOLD ='\033[1m'
UNDERLINE = '\033[4m'
print (bcolors.OKGREEN+"警告颜色的字体?"+bcolors.ENDC+"#不知道什么颜色")
print("36.题目:求100以内的素数")
for i in range(2,100):
for j in range(2,i):
if (i%j)==0:#此处循环种判断如果2到i之间的数出现能被j整除,则该数一定不是质数,循环中断.
break
else:#此处else的用法,else在try except时也可以类似这种用法,
print(i,end='\t')
print("37.题目:对10个数进行排序。")
#digital_list=[]
#s=[1,3,4,5,8,8,0,7,5,2]
s=[]
for m in range(0,10):
s.append(int(input("输入第%s个数:"%(m+1))))
for i in range(0,9):
for j in range(0,9):
if s[j]<s[j+1]:
tmp = s[j+1]
s[j+1]=s[j]
s[j]=tmp
print("降序排列结果:",s)
print("38.题目:求一个3*3矩阵主对角线元素之和。"
"程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。")
#矩阵如下
# 1 2 3
# 4 5 6
# 7 8 9
#输入矩阵,二维数组
matrix = []
for i in range(3):
matrix_inner = []
for k in range(3):
num = int(input("输入数字9个创建矩阵list:"))
matrix_inner.append(num)
matrix.append(matrix_inner)
#显示矩阵
for k in matrix:
print(k)
#计算右斜对对角线的和,即主对角线
sum1 = 0
for i in range(3):
sum1 += matrix[i][i]
print("该矩阵右斜对角线之和为",sum1)
#计算左斜对角线的和
sum2 = 0
k=2
for i in range(3):
sum2 += matrix[i][k]
k -= 1
print("矩阵左斜对角线和",sum2)
sum = sum1 + sum2 - matrix[1][1]
print(sum)
python 练手小作业
猜你喜欢
转载自blog.csdn.net/dance117/article/details/100903413
今日推荐
周排行