1. 输入一个1到5之间的整数,输错则报错直到输入正确为止。

Error = '输入错误,请重新输入!'
while True:try:n = int(input('请输入一个正整数n(1≤n≤5):'))except:print(Error)continueif 1<=n<=5:breakelse:print(Error)

2. 输出的居中居右,使用f-string比较方便,:^居中,:>居右,:<居左。

Error = '输入错误,请重新输入!'
while True:try:n = int(input('请输入一个正整数n(0退出):'))except:print(Error)continueif 1<=n<=9:for i in range(1,n+1):print(f'{(str(i)*(i*2-1)):^{n*2-1}}')elif n==0:exit(0)else:print(Error)

''' 输出结果:

实例:输出数字的等腰三角形
n=7
      1      
     222     
    33333    
   4444444   
  555555555  
 66666666666 
7777777777777
'''


3. 多位的长整数,可以用下划线任意分开,数值不变便于观察。

>>> 10_000_000 == 10000000
True
>>> 1234_5678_9000 == 123456789000
True

4. 非递归的斐波那契数列函数,可以输出第n项或前n项。

def fib(n, t = False):# n:int, n>0; fib->int or listif n<3: return [1]*n if t else (n+1)//2n1 = n2 = 1if t: res = [1,1]for i in range(2,n):n3 = n1 + n2n1,n2 = n2,n3if t: res.append(n3)if t: return resreturn n3for i in range(1,11):print(i,':',fib(i))print(fib(i,True))

''' 输出结果:
1 : 1
[1]
2 : 1
[1, 1]
3 : 2
[1, 1, 2]
4 : 3
[1, 1, 2, 3]
5 : 5
[1, 1, 2, 3, 5]
6 : 8
[1, 1, 2, 3, 5, 8]
7 : 13
[1, 1, 2, 3, 5, 8, 13]
8 : 21
[1, 1, 2, 3, 5, 8, 13, 21]
9 : 34
[1, 1, 2, 3, 5, 8, 13, 21, 34]
10 : 55
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

'''


5. 矩阵乘法的通用函数, (规律:m行s列 乘 s行n列 得 m行n列)。

def matrixMultiple(A, B):res = [[0]*len(B[0]) for _ in range(len(A))]for i in range(len(A)):for j in range(len(B[0])):for k in range(len(A[0])):res[i][j] += A[i][k] * B[k][j]return res

'''输出效果:

matrixA = [[1,2],[3,4]]
matrixB = [[5,6],[7,8]]
print(matrixMultiple(matrixA, matrixB))

matrixA = [[1,2,3],[3,2,2],[2,1,2]]
matrixB = [[2,2],[3,1],[2,1]]
print(matrixMultiple(matrixA, matrixB))

matrixA = [[1,2,3],[4,5,6]]
matrixB = [[7,8,9,0],[-1,-2,-3,-4],[5,6,7,8]]
print(matrixMultiple(matrixA, matrixB))

[[19, 22], [43, 50]]
[[14, 7], [16, 10], [11, 7]]
[[20, 22, 24, 16], [53, 58, 63, 28]]

'''


6. 一行代码输出100以内所有素数(或称:质数)。

print(*filter(lambda n:0 if n<2 else not any(map(lambda i:not n%i,range(2,n))), range(100)))

输出结果:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97


7.随机数列排序,要求正数降序负数升序,且正数在前负数在后。

import randomn = 10random.seed(n)
lst = [random.randint(-100,100) for _ in range(10)]
print(lst)
# lst = random.choices(range(-100,101), k=10) # 也可但相同种子也与randint()输出随机数不同
lst = sorted(lst, key=lambda x:x if x>=0 else 1/x, reverse=True) # 把负数取倒数实现反序
print(lst)# 或者升序,但x 1/x取负值一样也降序
random.seed(n)
lst = [random.randint(-100,100) for _ in range(10)]
lst = sorted(lst, key=lambda x:-x if x>=0 else -1/x)
print(lst)# 或分两段分别排序
random.seed(10)
lst = [random.randint(-100,100) for _ in range(10)]
lst = list(sorted(filter(lambda x:x>=0,lst),reverse=True))+list(sorted(filter(lambda x:x<0,lst)))
print(lst)

输出结果:

[46, -92, 9, 23, 47, -97, -48, 18, 25, -29]
[47, 46, 25, 23, 18, 9, -97, -92, -48, -29]
[47, 46, 25, 23, 18, 9, -97, -92, -48, -29]
[47, 46, 25, 23, 18, 9, -97, -92, -48, -29]


附录:

矩阵乘法定义

设A为m*p的矩阵,B为p*n的矩阵,那么称m*n的矩阵C为矩阵A与B的乘积,记作 C = AB,其中矩阵C中的第i行第j列元素可以表示为:

注意事项

1、当矩阵A的列数(column)等于矩阵B的行数(row)时,A与B可以相乘。
2、矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。
3、乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。

基本性质

乘法结合律: (AB)C=A(BC). 
乘法左分配律:(A+B)C=AC+BC 
乘法右分配律:C(A+B)=CA+CB 
对数乘的结合性:k(AB)=(kA)B=A(kB).
转置 (AB).T=B.T * A.T  【.T表示矩阵转置】

矩阵乘法除以下两种情况外不满足交换律:
AA*=A*A,A和伴随矩阵相乘满足交换律。
AE=EA,A和单位矩阵或数量矩阵满足交换律。

矩阵乘法也不满足消去律,即:
AB = AC 时,不一定能推出: B = C

Python 在问答频道中刷题积累到的小技巧(一)相关推荐

  1. python list去重_Python中实用却不常见的小技巧

    这是一个老外总结的Python的小技巧: 主要来自PyTricks: "Talk is cheap show me the code",这是编程人条,说半天不如几行代码更有说服力. ...

  2. Python中四个不常见的小技巧

    1. 引言 在编程界,每个人都希望自己可以写出世界上最好的代码,其实最好的代码往往需要具备最好的代码质量.勤能补拙,善于总结往往可以快速提升大家的编程技巧. 本文重点对日常中不常使用的四个Python ...

  3. Excel表格中一些你不知道的鼠标双击实用小技巧

    Excel表格中一些你不知道的鼠标双击实用小技巧 目录 Excel表格中一些你不知道的鼠标双击实用小技巧 1.鼠标双击自动填充整列公式, 鼠标放在单元格右下角,鼠标指针变成十字时双击鼠标右键,整列汇总 ...

  4. 做算法题时的一些小技巧

    做算法题时的一些小技巧 技巧一: 在用C++做算法题时,我们会觉的cin,cout比scanf,printf使用起来更加的方便,不用指定输入输出格式. 但是cin,cout的运行时间比scanf,pr ...

  5. Win10 UWP开发中的重复性静态UI绘制小技巧 1

    Win10 UWP开发中的重复性静态UI绘制小技巧 1 原文:Win10 UWP开发中的重复性静态UI绘制小技巧 1 介绍 在Windows 10 UWP界面实现的过程中,有时会遇到一些重复性的.静态 ...

  6. excel删除空行_办公中常用的6个Excel小技巧,不会你就OUT了!

    原标题:办公中常用的6个Excel小技巧,不会你就OUT了! 今天小编给大家分享几个EXCEL办公中比较常用的小技巧,赶紧跟我一起来学习下吧! 01 将所有数据上调 在某些情况下,我们希望将表格中所有 ...

  7. 深度linux运行windows游戏,在deepin linux系统中手动安装windows游戏的小技巧

    本文介绍在deepin linux系统中手动安装windows游戏的小技巧.其实现在wine很好用了,基本dx9的游戏都能玩,但是有些RA2则效果一般,不是很好.关于deepin-wine的版本低有些 ...

  8. 11个教程中不常被提及的JavaScript小技巧

    Java面试笔试面经.Java技术每天学习一点 Java面试 关注不迷路 作者:冷星 来源:https://segmentfault.com/a/1190000018897633 这次我们主要来分享1 ...

  9. Python小屋在线练习与刷题软件重要升级

    开学第一课:一定不要这样问老师Python问题 中国大学MOOC"Python程序设计基础"第6次开课时间 董付国老师Python系列教材推荐与选用参考 ============= ...

最新文章

  1. javascript之执行上下文堆栈
  2. c++入门之 再话类
  3. 用什么PHP框架最好?框架?还不如用开源系统吧
  4. ubuntu 16.04 运行php,乌班图Ubuntu 16.04下安装PHP 7过程详解
  5. idea中修改git账号和密码
  6. Hadoop学习笔记(基于《10小时入门大数据》)
  7. 世界语言缩写,各国语言简称,各国域名缩写
  8. 如何从网页下载并播放ts格式的视频
  9. 南京地铁行业发展策略与运营建设规模分析报告2022版
  10. 网络常见攻击(知识点总结)
  11. [重学Java基础][Java IO流][Exter.1]Apache Commonms Compress压缩工具包
  12. Ubuntu 上使用Dreamweaver 8
  13. System Reliability - One Crash per Thousand Server Years
  14. 【PSO TSP】基于matlab GUI粒子群算法求解旅行商问题【含Matlab源码 1334期】
  15. 毕业生必须知道:干部身份、三方协议、派遣证、人事代理、户口迁移 、编制、工龄、签约、档案 1
  16. CSS3 SVG 制作钟表
  17. 【职场进阶】工作经验到底是什么?
  18. wxpython列表框_wxpython中列表框(ListBox类)、复选列表框(CheckListBox)、下拉选项(Choice)、进度条(Gauge)、滑块(Slider)使用实例源码分享...
  19. k8s 1.14 安装 Dashboard
  20. MediaSuite.NET Crack,编码器对象反序列化

热门文章

  1. 大汇总 | 一文学会八篇经典CNN论文
  2. 机器学习实战三: 预测汽车油耗效率 MPG
  3. 图片底部边距清除代码
  4. VS2008按F5无法到达断点就直接显示了页面,主要有以下几种...
  5. Linux时间编程三大步骤
  6. 系统已坏,用U盘安装系统的方法
  7. win10win11win7打印机连接共享错误0x00709打印失败错误修复工具
  8. w3c的web标准包括html4吗,web标准以及w3c标准
  9. 笨方法学python第六版_笨办法学Python(六)
  10. 使用UltralSO软碟通将U盘做为启动盘,将系统装到硬盘里的步骤