您现在的位置是:首页 > 正文

python基础之模块初识

2024-02-29 13:08:04阅读 0

  Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持

一、time模块和datetime模块

和时间有关系的我们就要用到时间模块。在使用模块之前,应该首先导入这个模块。

常用方法:

#time模块
import time
# time.sleep()  #让程序停一会,休眠时间***
print(time.time())  #获取当前时间戳;返回一个以秒为单位的浮点数

表示时间的三种方式

在Python中,通常有这三种方式来表示时间:时间戳、元组(struct_time)、格式化的时间字符串:

(1)  时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。——给计算机看的

#时间戳:1545276241.5708632  49年*356天*24月*3600秒

(2)格式化的时间字符串(Format String): ‘1999-12-06’      ——字符串形式;给人看的

(3)结构化的时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)   ;元祖形式 ;是做计算用的

import time
# print(time.time())  #获取当前时间戳;返回一个以秒为单位的浮点数
print(time.time()) #时间戳:1545276241.5708632
print(time.localtime()) #本地时区的struct_time
print(time.strftime("%Y-%m-%d %H:%M:%S"))  # 格式化的时间字符串:'2018-12-20 11:30:50'
print(time.strftime("%Y-%m-%d %X"))  # 格式化的时间字符串:'2018-12-20 11:30:50' X:表示小时分钟秒

时间加减模块:datetime

#datetime
import datetime
print(datetime.datetime.now())    # 当前的时间
#  datetime用法
print(datetime.datetime.now()+datetime.timedelta(days=3))    # 取3天后的时间
print(datetime.datetime.now()+datetime.timedelta(days=-3))   # 取3天前的时间
print(datetime.datetime.now()+datetime.timedelta(hours=3))  # 取3小时后的时间
print(datetime.datetime.now()+datetime.timedelta(minutes=3)) # 取3分钟后的时间
print(datetime.datetime.now()+datetime.timedelta(seconds=3)) # 取3秒后的时间

二、random模块

import random
print(random.random())      #(0,1)----float    大于0且小于1之间的小数
print(random.randint(1,3))    #[1,3]    大于等于1且小于等于3之间的整数
print(random.randrange(1,3))  #[1,3)    大于等于1且小于3之间的整数
print(random.choice([1,'23',[4,5]]))  #1或者23或者[4,5]
print(random.uniform(1,3)) #取任意范围的浮点型  大于1小于3的小数,如1.927109612082716

练习1:剪刀石头布

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Renyz
import random
# 导入随机数
player = input('请输入:剪刀(0)  石头(1)  布(2):')   #判断用户的输入,然后显示对应的结果
player = int(player)    #提示用户并输入
computer = random.randint(0,2)  #让电脑出一个,随机生成0,1,2任何一个值
#判断玩家胜出的条件
if ((player == 0) and (computer == 2)) or ((player ==1) and (computer == 0)) or ((player == 2) and (computer == 1)):
    print('获胜,哈哈,你太厉害了')
# elif 玩家平局的条件
elif player == computer:
    print('平局,要不再来一局')
else:
    print('输了,不要走,洗洗手接着来,决战到天亮')

 练习2:生成随机验证码(用到了函数)

import random
def v_code(): # 验证码一般用循环 数字和字母相平的验证码
    res="" # 验证码是字符串 首先有个初始值
    for i in range(5): #5表示验证码5个随机数
        num = random.randint(0,9) # 取到的数字
        alf = chr(random.randint(65,90))  #chr chr()函数是输入一个整数【0,255】返回其对应的ascii符号
        s = str( random.choice([num, alf]) )  # 做字符的转换
        # res += random.choice([num, alf])  # 让字母和数字随机拼接起来,choice在s1和s2里面随机选择一个。
        res +=s # 这是上面步骤的简写
    return res  # 返回的是字符串平接的结果
print(v_code())  # 调用函数
-------------------------------------------------------------------------------
KN8NJ

补充:

ord()函数主要用来返回对应字符的ascii码,chr()主要用来表示ascii码对应的字符他的输入时数字

In [2]: ord('A')
Out[2]: 65

In [3]: ord('Z')
Out[3]: 90

In [4]: ord('a')
Out[4]: 97

In [5]: ord('z')
Out[5]: 122

In [7]: chr(65)
Out[7]: 'A'

In [8]: chr(122)
Out[8]: 'z'

三、文件路径os模块

import os

#getcwd获取当前路径,即当前python脚本工作的目录路径
# print(os.getcwd())

#chdir改变路径,相当于shell下的cd
# print(os.getcwd())
# os.chdir("..")
# print(os.getcwd())

#mkdir -p
# os.makedirs("test/test1")
# os.chdir("test/test1")
# print(os.getcwd())

# mkdir   新建目录,只能建一层
# os.mkdir("test")

# rmdir 只能删除单级目录为空的文件夹
# os.rmdir("test")

# listdir    列出指定文件夹下面所有的文件夹和文件包括隐藏文件,以列表方式打印出来
# print(os.listdir(r"C:\Users\Administrator.USER-20190512NQ\Desktop\python项目\django_a"))

# removedirs  若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依次类推
# os.removedirs('dirname1/dirname2')
# remove 删除指定的一个文件 # os.remove("test/test.py") #rename重命名 # os.rename("chengzeyu.txt","程泽宇.txt") #os.stat查看文件详细信息 # print(os.stat("程泽宇.txt")) #exists判断一个文件或者是目录是否存在 # res = os.path.exists(r'C:\Users\Administrator.USER-20190512NQ\Desktop\python项目\django_a\template1') # print(res) #echo $?:0代表正常,非0代表不正常(os模块最好用的一种方法system)***** # cmds = ['ls -ltr','df -h','ifconfig ens33 192.168.254.250/24'] # for cmd in cmds: # res = os.system(cmd) # if res == 0: # continue # else: # break # os.path.join是拼接完整路径 # BASE_DIR = r'\root\etc' # FILE = 'chengzeyu.txt' # new_path = os.path.join('root/etc','a.txt') # print(new_path)

 

转载于:https://www.cnblogs.com/renyz/p/11524145.html

网站文章

  • C#中怎么复制数组?C#复制数组的5种方法!

    方法一:使用for循环int []pins = {9,3,7,2}int []copy = new int[pins.length];for(int i =0;i!=copy.length;i++){copy[i] = pins[i];}方法二:使用数组对象中的CopyTo()方法int []pins = {9,3,7,2}int []copy2 = new int[pins.length];pi

    2024-02-29 13:07:36
  • SpringBoot 2.1.7.RELEASE + Activiti 5.18.0 喂饭级练习手册

    SpringBoot 2.1.7.RELEASE + Activiti 5.18.0 喂饭级练习手册

    通过日志可以看到,启动流程后,Service Task1、Service Task2自动执行了,执行到User Task时,触发了任务监听器,给用户任务分配了具体用户。看日志,调用完成任务接口,Ser...

    2024-02-29 13:07:29
  • RTP/RTCP(实时传输协议/实时传输控制协议)自定义的相关C结构(参考)

    wgscd转摘的RTP/RTCP(实时传输协议/实时传输控制协议)基于UDP派生出的协议,并增加了对实时传输的控制。一般用于网上传输实时视频数据,比如远程视频监控,视频点播等。有一本名叫《多媒体网络传输协议》的书上对此2个协议的结构和原理做了比较详细的介绍,好象是清华大学出版社出版的。    我去年做远程视频监控系统时,曾用基于2个协议,用Wonsock工具封装了一个网络传输动态连接库,专门用于局

    2024-02-29 13:07:21
  • nodejs基于Vue+node.js的档案数据管理Android程序ssm项目管理net编程代码计算机毕业设计题目大全免费提供软件和开题报告

    nodejs基于Vue+node.js的档案数据管理Android程序ssm项目管理net编程代码计算机毕业设计题目大全免费提供软件和开题报告

    nodejs基于Vue+node.js的档案数据管理Android程序ssm项目管理net编程代码计算机毕业设计题目大全免费提供软件和开题报告

    2024-02-29 13:06:51
  • linux安装yum

    1.下载yum安装包并解压wget http://yum.baseurl.org/download/3.2/yum-3.2.28.tar.gztar xvf yum-3.2.28.tar.gz2.进入...

    2024-02-29 13:06:44
  • 手机html端悬浮球,大屏手机绝配!一款轻巧强大的悬浮球App

    手机html端悬浮球,大屏手机绝配!一款轻巧强大的悬浮球App

    很多智能手机用户,特别是iPhone用户,很喜欢使用悬浮球。不过和iPhone相比,安卓上的悬浮球可丰富多彩得多。安卓原生并不自带悬浮球的功能,但诸多悬浮球App,却提供了丰富多彩的方案。加之安卓机的...

    2024-02-29 13:06:39
  • Android Activity和Service之间的通信

    在Android的四大组件中,Activity主要负责界面的展示,Service服务是在后台承担耗时的任务,那么在项目应用中常常会用到Activity和Service,在Activity中可以用Intent来启动Service并传递数据,当Service有数据需要更新到Activity界面时,我们又如何去实现呢! 实现方式: 设置全局变量,在需要用全局变量的时候,即时检测全局变量,并更新,这

    2024-02-29 13:06:09
  • Spring MVC教程(附详细操作步骤)

    Spring MVC教程(附详细操作步骤)

    必读: 基于框架的程序要成功运行,对于JAR包的版本,配置文件的正确性有着苛刻的要求,任何一个地方出错了,都会导致框架程序运行失败。 如果你是第一次学习本框架,务必严格按照教程的指导,完全模仿操作,直...

    2024-02-29 13:06:03
  • 暑假集训 - 8.12 总结

    暑假集训 - 8.12 总结

    学习内容:dfs + 剪枝完成题数:4题看书情况:11页做题总结:codeforces 587E:https://www.cnblogs.com/buhuiflydepig/p/11340218.htmlAcWing 165:https://www.cnblogs.com/buhuiflydepig/p/11340707.html心得:感觉最近几天...

    2024-02-29 13:05:57
  • 公司参加中国国际云计算技术和应用展览会

    公司参加中国国际云计算技术和应用展览会

    公司参加云计算产品展览会,我作为产品解说员有幸参加了这次展览会,这也是工作后我第一次讲解自己参与设计研发的产品,自己的汗水和辛苦能够上产品展览会也是很有成就感的事情。       因为公司被评为“云计算龙头企业”,所以展台肯定不能小,我参观了整个展览馆,公司展台是比较大的之一,公司展台在展会入口出,看来工信部也是比较重视我们的,我们公司有5个参展的云计算产品:1、“天成云”iVCS艾维虚拟

    2024-02-29 13:05:50