python代码案例

本文介绍了Python中标准库的使用,如datetime模块进行日期计算,以及如何处理名称冲突。还涉及字符串操作,如单词逆序和旋转字符串的实现。此外,讲解了文件查找、pip安装第三方库,如qrcode生成二维码,使用xlrd读取Excel数据,以及pynput和playsound库实现程序员鼓励器功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用的库的来源:

  • 标准库:Python自带的库,只要安装了Python就可以直接使用。
  • 第三方库:其他人实现的库,要想使用,需要额外安装。

标准库:

在Python官网上可以看到标准库的内容。网页连接如下:

https://docs.python.org/3.10/library/index.html

日期计算

输入任意的两个日期,计算两个日期之间隔了多少天。

代码思路:使用import语句导入标准库的datetime模块;使用datetime.datetime构造两个日期,参数使用 年,月,日 这样的格式;两个日期对象相减,即可得到日期的差值。偷摸秀一下,运行结果时我跟我的心上人在一起的日子,虽然没有很久,但未来可期吧。

#写法1
from datetime import datetime
date1 = datetime(year=2022,month=11,day=2)
date2 = datetime(year=2023,month=3,day=28)
print(date2-date1)

#写法2
import datetime
date1 = datetime.datetime(year=2022,month=11,day=2)
date2 = datetime.datetime(year=2023,month=3,day=28)
print(date2-date1)

#写法3
import datetime as dt
date1 = dt.datetime(2022,11,2)
date2 = dt.datetime(2023,3,28)
print(date2 - date1)

在此我碰到一个错误,报错为TypeError: 'module' object is not callable,,因为文件名或项目名和datetime 关键字重复了,只需要修改就好,可以按快捷键shift+F6,或者找到重命名就可以解决。

 单词逆序

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,为简单起见,标点符号和普通字母一样处理。例如“ I am a student.”则输出“student. a am I”。

代码思路:使用str的split方法进行字符串切分,指定空格为切分符,返回结果是一个列表;使用列表的reserve方法进行逆序;使用str的join方法进行字符串拼接,把列表中的内容进行合并。

def reverseword(s: str):
    tokens = s.split(' ')
    tokens.reverse()
    return ' '.join(tokens)
print(reverseword('I am a student.'))

 旋转字符串

给定两个字符串,s和goal,如果在若干次旋转操作之后,s都能变成goal,那么返回True,s的旋转操作就是将s最左边的字符串移动到最右边。例如,若s = 'abcde',在旋转一次之后的结果就是'bcdea'

代码思路:使用len求字符串长度,如果长度不相同则一定不能旋转得到;将s和自己进行拼接,然后直接使用in方法来判定goal是否是s+s的子串。

def roatateString(s,goal):
    return len(s) == len(goal) and goal in s+s
print(roatateString('abcde','cdeab'))

 

统计是给定字符串前缀的字符串数目

给你一个字符串数组 words 和一个字符串 s ,其中 words[ i ]和s只能包含小写英文字母,请返回words中是字符串s前缀的字符串数目。一个字符串的前缀是出现在字符串开头的子字符串,子字符串中的连续一段字符序列。

代码思路:依次遍历words中的字符串;之间使用字符串的start switch方法即可判定当前字符串是否是s的前缀。

 文件查找工具

指定一个待搜索路径,同时指定一个待搜索关键字,在待搜索路径中查找是否文件名中包含这个关键字。

代码思路:使用os.walk 即可实现目录的递归遍历;os.walk返回一个三元组,分别是 当前路径,当前路径下包含的目录名(多个),当前路径下包含的文件名(多个)

import os
inputPath = input("请输入待搜索路径:")
pattern = input("请输入待搜索关键词:")
for dirpath,dirname,filenames in os.walk(inputPath):
    for f in filenames:
        if pattern in f:
            print(f'{dirpath}/{f}')

pip的使用

pip相当于python世界中的应用商店,用pypi网站把各种第三方库收集起来,使用工具pip可以直接从pypi上下载所需要的第三方库。通常在安装pycharm时会已经安装好了pip直接使用即可。

先点击下方的

 然后输入pip回车,出现以下命令行则说明安装正确

 使用pip时用以下命令即可安装第三方库,注意该命令需要从网络上下载,使用时要保证网络通畅。安装成功后,即可使用import命令导入相关模块,即可进行使用。

pip install [库名]

注意:如果使用pip安装完成第三方库之后,在pycharm中仍然提示找不到对应的模块,则检查Setings->project->python interpreter,看当前python解释器设置的是否正确(如果一个机器上安装了多个python,容易出现这种情况)。

使用python生成一个二维码

二维码本质上就是一段字符串,可以把任意字符串制作成一个二维码图片,生活中使用的二维码更多的是一个URL(网址)使用第三方库qrcode。

使用浏览器Search results · PyPI,在搜索框搜索qrcode

 使用

 

在界面中找到语句并复制下图选中部分到pycharm命令行,敲击回车就开始下载第三方库了,在此过程中请保持网络畅通,会显示下载进度条。出现下方红色框选部分则表示下载成功。 

若存在如下警告,可以忽视,该警告表示所用版本较低,是否更新,不更新也可正常使用。

 参考官方文档所给的代码示例编写代码

import qrcode
img = qrcode.make("今天天气真不错")
img.save('qrcode.png')#保存文档

运行结果,控制台不会显示,但在导航栏会出现一个新的.png文档,打开后就是所生成的二维码,可以用手机扫码就会显示文字结果。

 操作excel

读取excel可以使用xlrd模块;修改excel可以使用xlmt模块。

以xlrd为例

1、安装xlrd,注意别的版本不适应操作.xlsx文件。

pip install xlrd==1.2.0 

2、编写代码:计算班级为100的同学分数的平均值。

import xlrd
#1、打开文件
xlsx = xlrd.open_workbook('D:\代码学习\python学习\python\daimashili\test.xlsx')
#2、获取指定的标签页
table = xlsx.sheet_by_index(0)
#3、获取到表格中有多少行
nrows = table.nrows
print(f'nrows = {nrows}')
for i in range(1,nrows):
    #拿到当前同学的班级 id
    print(table.cell_value(i,0))
#4、进行循环统计操作
total = 0
count = 0
for i in range(1,nrows):
    classId = table.cell_value(i,1)
    if classId == 100:
        table += table.cell_value(i,2)
        count += 1

程序员鼓励器

在敲代码的过程中,每个一段时间,让电脑发出声音来鼓励一下。需要实现两个操作:①、播放声音,需要使用python中的playsound第三方库的1.2.2版本。②、监听键盘按键,比如连续按键n次,播放一个音频,并且让每次播放的音频还不一样,使用第三方库 pynput 的1.6.8版本。

pip install pynput==1.6.8
pip install playsound==1.2.2

安装好第三方库后,准备几个音频文件,复制到项目目录下,然后编写代码。

import random

from pynput import keyboard
from playsound import playsound

soundList = ['sound/1.mp3','sound/2.mp3','sound/3.mp3']
#记录当前用户按了多少次键盘
count = 0


def onRelease(key):
    """
    这个函数就是在用户释放键盘按键的时候,就会被调用到。
    这个函数不是咱们自己主动调用的,而是把这个函数交给了Listener
    由Listener在用户释放按键的时候自动调用
    :param key:用户按下了哪个键
    :return:
    """
    print(key)
    global count
    count +=1
    if count % 10 == 0:
        #播放音频!
        #生成随机数
        i = random.randint(0,len(soundList) - 1)
        playsound(soundList[i])


#当我们创建好listener之后,用户的键盘按键动作就会被捕获到
#还希望在捕获到之后能够执行一段代码
listener = keyboard.Listener(on_release=onRelease)
listener.start()
listener.join()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值