python第一次上机作业

# 打印出三位数的个位数
num=input("请输入一个自然数")
lst1=list(map(str,num))
print(lst1[-1])

方法二

num=input("请输入一个自然数")

print("其各个位上的数为:",*x)

#已知列表,直接输出列表的值或列表中第i个值为x
lst2=[1,2,3,4]
print(lst2)
for i in range(len(lst2)):
    print("第"+str(i+1)+"个数字是"+str(lst2[i]))

方法二:

lst2=[1,2,3,4]

print(lst2)

for i,n in enumerate(lst2):

 print("列表色第",i+1,"个元素是:",n)

#检验序列元素是否满足升序
tests=('abcdeff',[1,2,3,5,4],(3,5,7,9))
for i in range(len(tests)):
    if sorted(tests[i])==list(tests[i]):
        print("第"+str(i+1)+"个序列满足升序")
    else:
        print ("第"+str(i+1)+"序列不满足升序")

方法二:

tests=('abcdeff',[1,2,3,5,4],(3,5,7,9))

for test in tests 

   ascending=map(lambda x,y:x<y,test[0:-1],test[1:])#第一次传递a、b;第二次传递b、c;ect

 #test[0:-1]:abcde;test[1:]:bcdef

   print(all(ascending))

#输出所有三位数的“水仙花数”。各位数的三次方之和等于该数
for num in range(100,1000):
    x=int(num/100)
    y=int(num/10%10)
    z=int(num%10)
    if(num==x**3+y**3+z**3):
        print(num)

#用至少两种方法计算矩阵的迹(对角线元素之和) data=[[1,2,3],[4,5,6],[7,8,9]]

方法一:sum()和列表解析式

//1//data=[[1,2,3],[4,5,6],[7,8,9]]
sum=0
for i in range(len(data)):
    for j in range(len(data[0])):
        if i==j:
            sum+=data[i][j]
print(sum)
//2///data=[[1,2,3],[4,5,6],[7,8,9]]
result=sum([data[i][i] for i in range(len(data))])

print('结果是:',result)

方法二:numpy库

import numpy as np
data=[[1,2,3],[4,5,6],[7,8,9]]
a=np.diagonal(data)
print(sum(a))
#判读矩阵是否对称
#方法一
#map()、zip()
//1/import numpy as np
a=np.arange(9).reshape(3,3)
print(a)
print(type(a))
at=zip(*a)
at=list(at)
for i in range(len(at)):
       at[i]=list(at[i])
at=np.array(at)
print(at)
print(type(at))
if a.all==at.all:
       print(1)
else:
       print(0)
//2//

array = [[1,3,4], [2,2, 5], [3, 4,6]]
print(list(map(list,zip(*array))))
#方法二
#列表表达

//1//

lst = [[1,2,3],[4,5,6],[7,8,9]]
count = 0
for i in range(len(lst)):
    for j in range(i):   #  j<i
        lst[x][y],lst[y][x]=lst[y][x],lst[x][y]
        count += 1
print(lst)
print(count)
//2//array = [[1,3,4], [2,2, 5], [3, 4,6]]
print ([[r[col] for r in array] for col in range(len(array[0]))])

#for循环

def transpose_2d(data):
       transposed = []
       for i in range(len(data[0])):
              new_row = []
              for row in data:
                     new_row.append(row[i])
              transposed.append(new_row)
       return(transposed)

data = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]

print(transpose_2d(data))
#numpy扩展库
from numpy import transpose

data = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]

transposed = transpose(data).tolist()

print(transposed)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值