Python小技巧练习【悄悄学Python惊艳所有人】

news2025/1/2 3:47:30

文章目录

  • 一、反转数字
    • 二、类的说明文档
      • 三、设置 Python 文件的编码
        • 四、旋转字符串
          • 五、实现控制台滚动条
          • print 函数直接写入文件
          • 合并 2 个列表

一、反转数字

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

典型的数字翻转问题。

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

编码如下:

def reverse_number(number):
    baiwei = int(number/100)
    shiwei = int(number%100/10)
    gewei = int(number%10)
    return gewei*100+shiwei*10+baiwei
new_number = reverse_number(789)
print(new_number)

二、类的说明文档

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

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

编码如下:

class My_Class(object):
    """你好"""
print(My_Class.__doc__)

三、设置 Python 文件的编码

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

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

编码如下:

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

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

例如下述代码:

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

四、旋转字符串

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

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

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

编码如下:

def reverse_str(my_str,offset):
    # 如果数字为 0,顺序默认不变
    if offset ==0:
        return my_str
    left = my_str[:len(my_str)-offset]
    right = my_str[len(my_str)-offset:]
    return right + left
五、实现控制台滚动条

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

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

编码如下: 逐步实现

# 打印一行 >>>
progress_str = ">" * 100
print(progress_str)

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

# 打印一行 >>>
progress_str = ">"*20
# 填充50个 -
progress_str = progress_str.ljust(100,'/')
print(progress_str)

实现循环操作:

import time
for i in range(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)

在这里插入图片描述
为了让其在一行出现,可以修改代码为如下格式,注意最后一行代码。

import time
for i in range(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='')
print 函数直接写入文件

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

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

编码如下:

file = open('runtime.log', 'a+', encoding='utf-8')
print('测试日志', file=file)
合并 2 个列表

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

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

def merge(l1, l2):
    my_list = l1 + l2
    n = len(my_list)
    for i in range(n):
        for j in range(0, n - i - 1):
            if my_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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/118687.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VUE3-路由《七》

路由就是点击链接或者按钮,进行跳转另一个界面中。在vue中一般使用vue-router来完成路由的操作。 下面我们进行路由的跳转和嵌套路由的实例操作。 1.首先建立一个正常的运行程序 2. 安装vue-router 使用下面的命令,安装路由 npm install vue-router4…

【技巧】vs2019调试

文章目录一.计算机Bug的由来二.调试1.调试的定义2.调试的基本步骤2.release和debug的区别3.调试的快捷键4.其他功能的快捷键1、窗口快捷键2、项目功能快捷键**3、查找相关快捷键4、代码快捷键5、编辑快捷键5.经典例题6.写代码的好习惯举例:模拟实现strcpy7.const的作…

安装Ubuntu Linux,配套安装宝塔,安装禅道OK!

安装Deepin完成后 进行root、SSH允许远程登陆配置, 登录root账号,初次登录可按照以下步骤: sudo passwd root //修改root密码 输入密码后。 sudo su 输入密码登录root权限。 登录后进行ssh安装与配置。 sudo apt-get update//这一句是…

【JavaScript】——javascript牛客专项练习错题合集

答: var b function(){alert(this.a); }, obj {a:1,b:b // 把函数独立出来 }; var fun obj.b;// 存储的是内存中的地址 fun(); 虽然fun是obj.b的一个引用,但是实际上,它引用的是b函数本身,因此此时的fun()其实 是一个不带任何…

云原生周刊 | 使用 kube-reqsizer 自动调整资源配额

开源项目推荐 kptop Kubernetes API 提供的监控指标非常有限,而 kubectl top 就是利用 Kubernetes API 来查看 Node 和 Pod 的实时资源使用情况。kptop 使用 Prometheus 作为数据源,不仅可以在终端上显示 Node 和 Pod 的资源使用情况,还可以…

vue中v-if和v-for的区别是什么

v-if和v-for的区别:1、作用不同,v-if指令用于条件性地渲染一块内容,这块内容只会在指令的表达式返回 true值的时候被渲染;而v-for指令基于一个数组来渲染一个列表。2、优先级不同,v-for优先级比v-if高,在进…

基于 Flask 的后台管理系统源码(含数据库文件),基于 Flask 生态,权限,快速开发平台

开 箱 即 用 的 Flask 快 速 开 发 平 台完整代码下载地址:基于 Flask 的后台管理系统源码(含数据库文件) 项目简介 Pear Admin Flask 基于 Flask 的后台管理系统,拥抱应用广泛的python语言,通过使用本系统&#xff0c…

解决OSPF不规则区域的实验

目录 1.拓扑图 2.实验思路 3.主要配置 4.测试 5.实验总结 1.拓扑图 2.实验思路 实验的总体流程为,先让所有设备与公网可以正常通信。在边界路由器配置缺省指向ISP,并且向内部所有设备下放缺省路由,在边界路由器上配置NAT。想让左边部分…

IPv4与IPv6

IPv4 地址 IPv4地址是一个32位数字,通常使用点号分隔的四个十进制八位字节 (取值范围从0到255)表示。 此类地址分为两个部分: 网络部分和主机部分。位于同一子网中的所有主机可以在彼此之间直接通信,无需路由器, 这些主机具有相同的网络部分…

如何使用 Terraform 构建基于 SmartX 超融合的自服务管理平台

越来越多的运维和开发人员发现,无法实现自动管理的基础设施已成为业务敏捷上线的阻碍。 对于基础架构运维人员来说,日常维护时,创建、回收虚拟机这一类工作的重复性很高。在创建业务虚拟机时,运维人员需要考虑资源放置最佳实践&a…

基于神经网络和遗传算法的飞鹦鹉机器学习

这是一个HTML5项目的源代码,该项目使用神经网络和遗传算法在Flappy Bird视频游戏中实现机器学习算法。该程序教一只小鸟如何以最佳方式拍打,以便尽可能长时间地安全地飞过障碍物。 所有代码都是用HTML5编写的,使用Phaser框架和Synaptic Neu…

ssh 命令

勿以恶小而为之,勿以善小而不为---- 刘备 简单说,SSH是一种网络协议,用于计算机之间的加密登录。 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的&#xff0c…

SpringBoot 自动装配原理,一文掌握!|原创

本文详细讲解了 SpringBoot 自动装配原理,可以直接拉到最后看总结。由于 Spring 源码比较复杂,是需要一些基础的。如果有不懂的地方,欢迎提问!点击上方“后端开发技术”,选择“设为星标” ,优质资源及时送达…

【C语言】函数详解

🔥🔥 欢迎来到小林的博客!!       🛰️博客主页:✈️小林爱敲代码       🛰️专栏:✈️C语言快速入门       🛰️欢迎关注:👍点…

【Spring【IOC】】——17、@Resource注解和@Inject注解?

📫作者简介:zhz小白 公众号:小白的Java进阶之路 专业技能: 1、Java基础,并精通多线程的开发,熟悉JVM原理 2、熟悉Java基础,并精通多线程的开发,熟悉JVM原理,具备⼀定的线…

【算法题解】6.合并两个有序数组

文章目录题目解法一:双指针解题思路图解代码实现复杂度分析解法二:逆向双指针解题思路图解代码实现复杂度分析题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素…

Plaxis软件:Python命令流自动建模与应用

有限单元法在岩土工程问题中应用非常广泛,很多商业软件如Plaxis/Abaqus/Comsol等都采用有限单元解法。在使用各大软件进行数值模拟建模的过程中,您是否发现GUI界面中重复性的点击输入工作太繁琐?从而拖慢了设计或方案必选进程?针对…

day30【代码随想录】回溯之分割回文串、复原IP地址、子集

文章目录前言一、分割回文串(力扣131)二、复原IP地址(力扣93)三、子集(力扣78)总结前言 1、分割回文串 2、复原IP地址 3、子集 一、分割回文串(力扣131) 给你一个字符串 s&#xf…

Win10如何显示文件后缀名?显示后缀名的简单方法

现在大多数用户使用的电脑都是Win10系统,有时我们重装电脑系统,会发现电脑出现一些问题,比如文件后缀名不显示出来。如何显示文件后缀名?方法很简单,跟着下面的详细操作步骤走,轻轻松松Get回消失的文件后缀…

Http和Https和SSL工作原理

相关概念 Http:超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上,是Web协议族中非常重要的一个协议。协议版本包含Http1.0、Http1.1 和Http2.0. Https&…