Python 常用小妙招(二)

简介: Python 常用小妙招(二)
本文记录一些 Python 日常编程中的小妙招,并使用 IPython 进行交互测试,让我们更好的了解和学习 Python 的一些特性。

<br/>

格式化打印调式信息

In [3]: print('success'.center(20,'='))
======success=======

In [4]: print('failed'.center(20,'='))
=======failed=======

<br/>

for循环的else

语法:

for 变量 in 可迭代对象:
    
    循环体
    
else:
    循环正常结束

<br/>

IPython测试

# for 循环
In [1]: for i in range(5):
   ...:     print(i)
   ...: else:
   ...:     print('for 循环正常结束')
   ...:     print(i)
   ...:
0
1
2
3
4
for 循环正常结束
4

<br/>

注意:else 只有 循环正常结束才会走,像 break 退出本层循环就不会走 else

来看一个例子,打印10以内的素数(质数)

质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

for n in range(2, 10):
    for x in range(2, n):
        if n % x == 0:
            # 求余等于0说明n有其他因数
            print(n, '=', x, '*', n // x)
            break
    else:
        # 没有break掉,说明没有找到n的其他因数
        # 循环正常结束
        print(n, '是一个素数')

<br/>

结果展示

2 是一个素数
3 是一个素数
4 = 2 * 2
5 是一个素数
6 = 2 * 3
7 是一个素数
8 = 2 * 4
9 = 3 * 3

<br/>

数学表达式比较

In [8]: num = 5

In [9]: 3 < num < 8
Out[9]: True

In [10]: 6 < num < 8
Out[10]: False

<br/>

列表、字典拆箱

列表拆箱


In [12]: a, b, c = [1, 2, 3]

In [13]: a, b, c
Out[13]: (1, 2, 3)
    
In [25]: li = [1, 2, 3, 4, 5]

In [26]: print(*li)
1 2 3 4 5

<br/>

将列表元素作为参数传递给函数

In [34]: li = [1, 2, 3, 4, 5]

In [35]: def sum(*args):
    ...:     total = 0
    ...:     for i in args:
    ...:         total += i
    ...:     print(total)
    ...:

In [36]: sum(*li)
15

<br/>

字典拆箱


In [27]: user_dict = {
    ...:     'name': 'ithui',
    ...:     'sex': '男',
    ...:     'age': 20,
    ...: }

In [28]: user_info = '我叫{name},性别{sex},今年{age}岁'.format(**user_dict)

In [29]: print(user_info)
我叫ithui,性别男,今年20岁

<br/>

函数的关键字参数自动匹配

func_params = {
    'username': 'ithui',
    'mobile': '13022331752',
}


def query_user(username=None, mobile=None):
    # 模拟查询用户信息
    print(username)
    print(mobile)
    sql = """select * from user where username={} and mobile={}""".format(username, mobile)
    print(sql)


query_user(**func_params)


=======================结果如下=======================
ithui
13022331752
select * from user where username=ithui and mobile=13022331752

<br/>

取中间元素

In [15]: a, *mid, b = [1, 2, 3]

In [16]: mid
Out[16]: [2]

In [17]: a, *mid, b = [1, 2, 3, 4, 5, 7]

In [18]: mid
Out[18]: [2, 3, 4, 5]
    
In [21]: a, b, *mid, c, d = [1, 2, 3, 4, 5, 7, 8]

In [22]: mid
Out[22]: [3, 4, 5]    

<br/>

获取列表中n个最大或最小的元素

In [38]: import heapq

In [39]: salarys = [5000, 6000, 3500, 5500, 7000, 6500, 8000]
    
In [40]: # 三个最大的数
    
In [41]: heapq.nlargest(3, salarys)
Out[41]: [8000, 7000, 6500]
    
In [42]: # 两个最小的数
    
In [43]: heapq.nsmallest(2, salarys)
Out[43]: [3500, 5000] 

<br/>

尾语

✍ 用 Code 谱写世界,让生活更有趣。❤️

✍ 万水千山总是情,点赞再走行不行。❤️

✍ 码字不易,还望各位大侠多多支持。❤️

相关文章
|
Python
python中的常用小技巧
python中的常用小技巧
148 0
|
API ice Python
Python 常用小妙招(一)
Python 常用小妙招(一)
|
索引 Python
Python 常用小妙招(三)
Python 常用小妙招(三)
Python 常用小妙招(四)
函数可以把多个列表合并成一个列表,多个列表元素打包成元组。
|
弹性计算 Linux Python
有哪些常用的 Python 标准库?
有哪些常用的 Python 标准库?
|
23天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
2月前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
52 14
|
2月前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
116 2
|
2月前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
126 80

热门文章

最新文章

推荐镜像

更多