news 2026/4/25 7:01:28

Python小技巧练习分享

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python小技巧练习分享

1.反转数字

问题场景:把数字 789 转换为 987。

典型的数字翻转问题。

解决思路:将数字的百位十位个位拆解出来,就解开了

编码如下:

1

2

3

4

5

6

7

defreverse_number(number):

baiwei=int(number/100)

shiwei=int(number%100/10)

gewei=int(number%10)

returngewei*100+shiwei*10+baiwei

new_number=reverse_number(789)

print(new_number)

2.类的说明文档

问题场景:给新创建的类添加说明文档

解决思路:在类名下使用三引号即可添加说明文档,使用类名,__doc__可调用该文档

编码如下:

1

2

3

classMy_Class(object):

"""你好"""

print(My_Class.__doc__)

3.设置 Python 文件的编码

问题场景:Python 文件设置默认编码。

解决思路:Python 脚本文件默认是使用 UTF-8 编码格式进行编码的,一般无需指定编码,但我们也可自行设置编码,Python2 代码文件一般都带该行注释。 设置方式是使用一行注释,要求格式需满足下述正则表达式。

编码如下:

1

coding[=:]\s*([-\w.]+)

声明位置在 Python 文件的第一行或者第二行,注意:=没有空格。

例如下述代码:

1

# -*- coding:utf-8 -*-

也可以使用大写:

1

# -*- coding:UTF-8 -*-

4.旋转字符串

问题场景:一个字符串,一个数字,完成如下操作

  • 字符串为abcde,数字为 3,则输出cdeab
  • 字符串为abcde,数字为 1,则输出eabcd
  • 字符串为abcde,数字为 0,则输出abcde
  • ……

解决思路:一个字符串切片运用的问题。

编码如下:

1

2

3

4

5

6

7

defreverse_str(my_str,offset):

# 如果数字为 0,顺序默认不变

ifoffset==0:

returnmy_str

left=my_str[:len(my_str)-offset]

right=my_str[len(my_str)-offset:]

returnright+left

5.实现控制台滚动条

问题场景:在控制台输出滚动条。

解决思路:使用字符串格式化进行实现,例如用>表示进展,用/表示未完成的进展,使用ljust()方法返回一个原字符串左对齐,并使用填充字符(默认空格)填充至指定长度的新字符串。

编码如下:逐步实现

1

2

3

# 打印一行 >>>

progress_str=">"*100

print(progress_str)

填充一部分>,再填充另一部分/

1

2

3

4

5

# 打印一行 >>>

progress_str=">"*20

# 填充50个 -

progress_str=progress_str.ljust(100,'/')

print(progress_str)

实现循环操作:

1

2

3

4

5

6

7

8

importtime

foriinrange(0,11):

time.sleep(0.3)

current=i/10

# 进度条

progress_str='{0:s}{1:.0%}'.format(

(int(current*10)*'>').ljust(10,'/'), current)

print(progress_str)

为了让其在一行出现,可以修改代码为如下格式,注意最后一行代码。

1

2

3

4

5

6

7

8

importtime

foriinrange(0,11):

time.sleep(0.3)

current=i/10

# 进度条

progress_str='{0:s}{1:.0%}'.format(

(int(current*10)*'>').ljust(10,'/'), current)

print(f'\r{progress_str}',end='')

6.print 函数直接写入文件

问题场景:如果不希望将print函数输出的内容,打印到控制台,而是直接输入到文件中,该如何操作?

解决思路print()函数有一个参数叫做file,用它就行。

编码如下:

1

2

file=open('runtime.log','a+', encoding='utf-8')

print('测试日志',file=file)

7.合并 2 个列表

问题场景合并 2 个列表,并要求合并之后的列表有顺序。 例如my_list1 = [1,2,3]my_list2 = [1,3,5],合并之后是my_list = [1,1,2,3,3,5]

解决思路先合并 2 个列表,然后判断其各个元素大小,判断的时候使用冒泡排序即可完成任务。编码如下

1

2

3

4

5

6

7

8

9

10

11

12

13

defmerge(l1, l2):

my_list=l1+l2

n=len(my_list)

foriinrange(n):

forjinrange(0, n-i-1):

ifmy_list[j] > my_list[j+1]:

my_list[j], my_list[j+1]=my_list[j+1], my_list[j]

print(my_list)

if__name__=='__main__':

my_list1=[4,2,6]

my_list2=[1,3]

merge(my_list1, my_list2)

到此这篇关于Python小技巧练习分享的文章就介绍到这了,

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 7:01:20

python基础入门学习笔记

一、认识Python 首先我们得清楚这个:Python这个名字是从Monty Python借鉴过来的,而不是源于大家所知道的大蟒蛇的意思。我们为什么要学习Python呢?就我而言,我知道豆瓣在使用、重视Python,加上我想学习网页爬虫技术&a…

作者头像 李华
网站建设 2026/4/25 6:56:18

AI智能体如何变革数据科学:从自动化工作流到人机协作新范式

1. 项目概述:当数据科学遇上“智能体”最近在数据科学和机器学习社区里,一个名为airda的项目引起了我的注意。它来自哈尔滨工业大学(深圳)智能数据系统实验室(HITSZ-IDS),定位是“AI for Data S…

作者头像 李华
网站建设 2026/4/25 6:56:16

科沃斯年营收90亿:净利17.6亿 钱东奇父子获现金红利3.5亿

雷递网 雷建平 4月24日科沃斯机器人股份有限公司(公司代码:603486 公司简称:科沃斯)今日发布截至2025年的财报。财报显示,科沃斯2025年营收为190亿元,较上年同期的165亿元增长15.1%。科沃斯2025年归属于上市…

作者头像 李华
网站建设 2026/4/25 6:45:48

基于嵌入向量与语义搜索的本地代码搜索引擎构建指南

1. 项目概述:一个为代码库注入智能的语义搜索引擎 如果你和我一样,每天都要面对堆积如山的代码仓库,从祖传的“屎山”到刚接手的新项目,最头疼的莫过于找一个特定的函数实现、一段模糊记忆中的配置逻辑,或者理解某个模…

作者头像 李华