Python基础(四)

前言

本文记录了模块, python语法风格和模块布局,和部分字符串函数

一、模块基础、

模块是从逻辑上组织python代码的形式
当代码量相当大的时候,最好把代码分成一些有逻辑的代码段,前提是它们可以彼此交互
这些代码片段相互间有一定的联系,可能是一个包含数据成员和方法的类,也可能是一组相关但彼此独立的操作函数
通俗的讲,一个 .py文件 就是一个python模块
导入模块可以提升开发效率,简化代码

1、导入模块import

使用import导入模块
模块属性通过 “模块名.属性” 的方式调用
模块函数通过 “模块名.函数名” 的方式调用
如果仅需要模块中的某些属性,也可以单独导入
from 模块名 import 属性/函数名
可以一行只导入一个模块,也可以一行导入多个模块

2、模块加载

无论导入多少次,一个模块只被加载一次,只加载一次可以阻止多重导入时,代码被多次执行,且如果两个文件相互导入,防止了无限的相互加载
模块加载时,顶层代码会自动执行,所以只将函数放入模块的顶层是好的编程习惯
ps:模块的特性就是在被导入时会先完整的执行一次模块中的所有程序

3、时间模块time

时间戳 timestamp:表示的是从 1970 年1月1日 00:00:00 开始按秒计算的偏移量

UTC(Coordinated Universal Time, 世界协调时)亦即格林威治天文时间,世界标准时间。在中国为 UTC+8 DST(Daylight Saving Time) 即夏令时;

结构化时间(struct_time): 由 9 个元素组成,使用time.localtime()等方法可以获得一个结构化时间

结构化时间共有9个元素,如下表:、

索引属性取值范围
0tm_year(年)eg:2021
1tm_mon(月)1-12
2tm_mday(日)1-31
3tm_hour(时)0-23
4tm_min(分)0-59
5tm_sec(秒)0-59
6tm_wday(一周中周几)0-6
7tm_yday(一年中第几天)1-366
8tm_idst(是否为夏令时)默认-1

ps:
结构化时间是一个序列,那么就可以通过索引进行取值,也可以进行分片,或者通过属性名获取对应的值。
time类型不可变,所有时间值都只读,不能改

格式化时间字符串

用time.strftime(‘%Y-%m-%d %H:%M:%S’)等方法可以获得一个格式化字符串
ps:格式中的空格,短横线和冒号只是为了美观的修饰符,只有%是有控制作用
每个参数含义如下:

格式含义格式含义
%a本地简化星期名称%m月份(01-12)
%A本地完整%M分钟数(00-59)
%b本地简化月份名称%p本地am或pm相位符
%B本地完整月份名称%S秒(01-59)
%c本地相应的日期和时间%U一年中的星期数(00-53)周日为开始
%d一月中的第几天%w一星期中第几天
%H一天中第几个小时(24小时制)%x本地相应时间
%I第几个小时(12小时制)%X本地相应时间
%j一年中的第几天%y去掉世纪的年份
%Z时区名%Y完整年份

time模块使用方法

1、time.sleep(t)

让程序睡眠t秒,t可为浮点数或整数

2、time.time()

返回当前系统时间戳,可做算术运算

3、time.gmtime([secs])

将一个时间戳转换为UTC时区结构化时间,可选参数secs默认值为time.time()

4、time.localtime([secs])

将一个时间戳转换为当前时区的结构化时间,如果secs参数未提供,则以当前时间为准,即time.time()

5、time.mktime(t)

结构化时间转换为时间戳,t为结构化时间参数

6、time.strftime(format[,t])

返回格式化字符串表示的当地时间,把一个struct_time(eg:time.localtime()和time,gmtime()的返回值)转化为格式化的时间字符串,显示的格式由参数format决定。如果未指定t,默认传入time.localtime()

7、time.strptime(string[,format])

将格式化时间字符串转化成结构化时间
该方法是 time.strftime()方法的逆操作。
time.strptime() 方法根据指定的格式把一个时间字符串解析为结构化时间。
提供的字符串要和 format参数 的格式一一对应
如果string中日期间使用 “-” 分隔,format中也必须使用“-”分隔
时间中使用冒号 “:” 分隔,后面也必须使用冒号分隔
并且值也要在合法的区间范围内

时间格式之间的转换

方法
时间戳UTC结构化时间gmtime()
时间戳本地结构化时间localtime()
本地结构化时间时间戳mktime()
结构化时间结构化字符串strftime()
格式化字符串结构化时间strptime()

二、python语法风格和模块布局

变量赋值

1、python支持链式多重赋值

x = y = 1

2、给列表使用多重赋值时,两个列表同时指向同一个列表空间,任何一个列表改变,另外一个随着改变

因为指向的地址是同一个地址

3、 python 的多元赋值方法

# 将 10 20 分别赋值给a,b
a, b = 10, 20
# 将m n, 分别赋值给c,d
c, d = 'mn'
# 将元组中的元素, 分别赋值给e, f
e, f = (100, 200)
# 将列表中的元素,分别赋值给变量m, n
m, n = ['bob', 'lihua']

4、在python中,完成两个变量值的互换

a, b = 100, 200
a, b = b, a 

合法标识符

Python 标识符,字符串规则和其他大部分用 C 编写的高级语言相似
第一个字符必须是 字母或下划线 _,剩下的字符可以是字母和数字或下划线,大小写敏感

关键字

和其他的高级语言一样,python 也拥有一些被称作关键字的保留字符
任何语言的关键字应该保持相对的稳定,但是因为 python 是一门不断成长和进化的语言,其关键字偶尔会更新
关键字列表和 iskeyword() 函数都放入了 keyword 模块以便查阅

import keyword
keyword.kwlist
# 判断xxx是否是关键是,是为True,否为False
'xxx' in keyword.kwlist

内建

Python 为什么可以直接使用一些内建函数,而不用显式的导入它们?
比如 str()、int()、id()、type(),len() 等,许多许多非常好用,快捷方便的函数。
这些函数都是一个叫做 builtins 模块中定义的函数,而 builtins 模块默认 在Python环境启动的时候就自动导入,所以可以直接使用这些函数

三、字符串

百分号:可以使用格式化符号来表示特定含义
%s 优先用str()函数进行字符串转换
f字符串是3.6版本后加入的标准库

eg:
name, age, list1 = "luhua", 25, [1,2]
str = "name:%s, age:%s, %s" % (name. age, list1)
str2 = f"name:{name}, age:{age}, {list1}"

ps: 可以传入任意类型的数据,如 整数、浮点数、列表、元组甚至字典,都会自动转成字符串类型

字符串函数

str = "hello world"
# 判断字符串是否以he开头
str.startswith('he')
# 判断字符串是否以rld结尾
str.endswith('rld')
# 判断字符串是否全是大写字母
str.isupper()
# 判断字符串是否全是小写字符
str.islower()
# 删除字符串两端空白
str.strip()
# 删除左边空格
str.lstrip()
# 删除右边空格
str.rstrip()
# 转换小写为大写
str.upper()
# 以指定字符串为分割切分字符串, 默认为空格
str.split("xxxx")
# 用'xxx'.join(列表)将列表元素用xxx拼接在一起
list1 = ['xiaohong', 'xiaobai', 'lihua']
'-'.join(list1) # 用-将list1里面元素连接在一起
  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值