Python学习:模块初识、数据类型
1.模块初识
在Python中,模块分为两种:
(1)标准库
标准库无需安装,只要在使用的时候import就可以使用了
(2)第三方库
第三方库必须下载安装之后才能够引入使用
下面介绍两个基本的模块:
(1)os模块
os模块是和操作系统交互的模块,可以调用操作系统的一些命令。其常用的一些方法有:
a) os.system(“操作系统命令”) 返回命令执行状态码 0表示成功 :该方法只执行命令,不保存结果
b) os.popen(“操作系统命令”) 该命令将结果存到内存中,需要使用read()方法读取出来 例:os.popen(“命令”).read()
c) os.mkdir(“目录名”) 创建一个新目录
(2)sys模块
sys模块是Python解释器自带的使用C语言编写的模块,其常用的一些方法有:
a) sys.path 获取一些路径
b) sys.argv 获取相对路径和接受传递的参数,以列表的形式表示
可以通过列表取值的方式获取相应的参数值
(3)自定义模块
引入自定义的模块或者第三方的模块,需要把模块放在site-packages目录下,在导入模块的时候,会从本地目录下开始找,然后去环境变量下找
注意:自己定义模块不能与标准模块名字相同
2.什么是Pyc文件
3.三元运算
语法:result = value1 if 条件 else value2
4.Bytes类型
Python3 最重要的特性是对文本和二进制数据作了更为清晰的区别,文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python3不会以任意隐式的方式混用str和bytes,正是这使得两者的区别更为清晰。你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数中。
字符串和二进制之间可以进行相互转化,转化方式如下:
字符串和二进制数据相互转化的例子:
字符串转成二进制场景:socket数据传输(在python3中只能传二进制)
5.元组和列表
列表: names = [“zhangsan”,”lisi”,”wangwu”]
通过坐标索引取值,下标从0开始 names[0]的值为zhangsan
切片:取多个值,例取出zhangsan和lisi names[0:2] 列表切片 不包括names[2]
在不知道数组长度的时候获取最后一个元素names[-1]
知识点:从右边取值时 下标从-1开始
获取lisi和wangwu的值names[-2:]
(注意:因为截止下标取不到值,省略后即可取到最后的值)
跳着切片: 指定步长
name[0:3:2] 2是步长
追加:
names.append(“zhangyong”)
插入:
插入到谁的前面,就写谁的坐标
如在lisi前面插入xuzhi
names.insert(1,”xuzhi”)
修改:
直接复制即可 names[2] = “其他值”
删除:
names.remove(“具体值”)
或者 del names[索引]
或者 names.pop() 如果不给参数,默认是删除最后一个元素,也可以指定具体索引删除
根据值找下标
names.index(“具体值”)
names.reverse() 列表反转
names.sort() 按照字母顺序排序
names.extend(另一个元组) 合并另一个元组
copy方法(浅copy,复制的是第一个列表的引用)
复制一份元组
Names2 = names.copy()
注意:列表中嵌套的列表其实是存储的引用,当在names中修改第一层的值时,name2中不发生变化。 当修改names中的子列表的值时,name2中也会发生变化
列表中可以在嵌套列表
浅copy的三种方式:
(1)copy.copy(names)
(2)names[:] (全部切片 0:-1 0可以省略 -1省略可以取到最后一个值)
(3)list(names) (工厂模式)
浅copy应用实例:夫妻双方公有财产 (创建联合账号)
Person = [“name”,[“saving”,100]] 模板
Man = person[:]
Woman = person[:]
Man[0] = “zhangsan”
Woman[0] = “lisi”
二者有着共同的子列表
copy模块(可以使用该模块中的深copy)
import copy
name2 = copy.deepcopy(names)
列表循环:
for i in names :
print(i)
enumerate方法:可以将获取列表元素对应的索引:
如列表为:a = [“1”,”2”,”3”]
则enumerate(a) 为[(0,”1”),(1,”2”),(2,”3”)]
在列表循环的时候,可以使用该方法获取到索引信息
for index,value in enumerate(a):
print(index,value)
元组:和列表类似,但是一旦创建便不能修改,称为只读列表,只能用于查
格式:names = (“zhangsan”,”lisi”,”wangwu”)
只有两个方法:
count:
index:
6.字符串常用操作
Str = “zhangyong”
Str.capitalize() 首字母大写
Str.count(“a”) 统计某个子串的个数,可以指定起始位置
Str.center(50,”-”) 一共打印50个字符,不够的用-填充,str在中间
Str.endswith(“”) 判断字符串以什么结尾 比如判断邮箱以什么结尾
Str.find(“”) 查找字符或字符串首字母所在的索引
Str.format() 和str.format_map(“传字典”) 功能类似
Str.isalnum() 判断是否只有字母和阿拉伯数字
Str.isalpha() 判断只有英文字母
Str.isdigit() 判断是否只有数字
Str.isidentifier() 判断是不是一个合法的标识符
Str.islower()是否是小写
Str.issupper()是否是大写
“+”.join([“”,””,””]) 将列表转换成字符串,以+号间隔
Str.ljust(50,“*”) 50个字符,str不够的地方在右侧用*补全
Str.rjust(50,”*”) 50个字符,str不够的地方在左侧用*补全
Str.lower() str.upper() 大写转小写 小写转大写
lstrip() 和 rstrip() strip() 会去掉空格和回车
split() 将字符串按照指定字符分割成列表
swapcase() 大小写反转
Str.replace(“old”,”new”,location) 替换字符 location省略表示替换所有的
7.字典
Key,value的数据类型,和json串类似
字典特性: 无序、去重
定义字典:info = {“key”:value,””:””}
取值:info[“key”] 该方法如果key不存在则会出错 另一个方法info.get(“key”)
Info[“key”] = value key如果存在则修改值,如果不存在则添加一个
删除一个键值对:del info[“key”] or info.pop(“key”) info.popitem()随机删除一个
判断key是否在字典中:”key” in info 返回Bool类型
Info.values() 打印所有的值
Info.keys()打印所有的key
Info.setdefault(“key”,value) 如果key存在,则不变,否则添加一个新的值
Info.update(另一个字典) 批量更新或添加字典
Info.items() 把字典转成列表
Info.fromkeys([“”,””],defaultValue) 创建一个默认的字典,和info没有关系
注意:这里defaultValue的引用是赋值给所有的key 即改变某个key的值,其他的也会变化
字典循环:
For I in info :
Print(i,info[i])
另一个方法
For k,v in info.items():
Print(k,v)
第一个方法更高效
8.其他琐碎知识点
1. type()
查看某一变量的数据类型
2. 两个**表示次方
3. 判断是否为数字 isdigit()
4. 高亮输出:
5. 退出程序使用exit()方法
三级列表练习题:
# 张永
#三级菜单程序 menu = {
"北京":{
"海淀":["中电15所","中关村"],
"朝阳":["国贸","奔驰"],
"昌平":["老男孩","尚硅谷"]
},
"河北":{
"石家庄":["石家庄学院","铁道大学"],
"邯郸":["丛台公园","龙湖公园"],
"衡水":["衡水中学","衡水湖"]
},
"山东":{
"济南":["趵突泉","山东大学"],
"聊城":["冠县","轴承"]
}
}
exit_flag = False
while not exit_flag:
for i in menu:
print(i)
choose = input(">>>请选择:")
if choose in menu: #输入在字典中
while True:
for subMenu in menu[choose]:
print("\t",subMenu)
choose1 = input("\t>>>请选择:")
if choose1 in menu[choose]:
for th_menu in menu[choose][choose1]:
print("\t\t",th_menu)
choose2 = input("\t\t>>>请选择:")
if choose2 == "b":
continue
elif choose2 == "bb":
break
elif choose1 == "b":
break
else:
print("所输入的省份不在列表中")
Python学习:模块初识、数据类型的更多相关文章
- [Python学习] 模块三.基本字符串
于Python最重要的数据类型包含字符串.名单.元组和字典.本文重点介绍Python基础知识. 一.字符串基础 字符串指一有序的字符序列集合,用单引號.双引號.三重(单 ...
- python学习------模块
模块(modue)的概念 在计算机程序开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件 ...
- Python学习笔记 - day3 - 数据类型及运算符
Python的数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同 ...
- 记录我的 python 学习历程-Day03 数据类型 str切片 for循环
一.啥是数据类型 我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,"汉"是文字,否则它是分 ...
- python学习第九天数据类型列表创建,查找操作方法
数据类型中列表是整个python最常用的数据类型,列表最常用的方法就是创建,增删改查,切片,循环以及排序等系列操作,任何操作都离不开增删改查操作,这样很容记住操作方法 1,列表的创建 list=[] ...
- python学习之核心数据类型
python核心数据类型 对象类型 例子 数字 1234,-345 字符串 'spam' 列表 [1,3,'ds'] 元组 (1,'spam',6) 字典 {'name':'lili','age':1 ...
- python学习03-数据类型
一.基本数据类型--数字 布尔型 bool型只有两个值:True和False 之所以将bool值归类为数字,是因为我们也习惯用1表示True,0表示False. 以下是布尔值是False的各种情况: ...
- python学习——模块和包
在之前常用模块中我们已经初步了解了模块的导入,今天来说学习一下模块和包.我们可以把模块理解成每一个python文件.而包就是多个能解决一类问题的python文件全部放在一起.OK
- Python学习手册之数据类型
在上一篇文章中,我们介绍了 Python 的异常和文件,现在我们介绍 Python 中的数据类型. 查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/99799 ...
- Python学习-字符编码, 数据类型
本篇主要内容: 字符编码 Python中的数据类型有哪些 类型的一些常用操作及方法 一.字符编码 编码解释的大部分内容摘自廖雪峰老师教程中的讲解,点击跳转. 简单介绍: 我们知道计算机只能处理数字,如 ...
随机推荐
- effective java——12考虑实现coparable接口
float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的.然而,它们没有提供完全精确的结果,所以不应该 ...
- Ubuntu16.04中安装搜狗输入法
1.从搜狗输入法官网界面下载安装包 https://pinyin.sogou.com/linux/ 2.安装 sudo dpkg -i sogoupinyin_2.1.0.0082_amd64.deb ...
- Excel转datatable
如果想支持 .xls,.xlsx 两种格式 则必须安装一个exe文件,下载路径https://www.microsoft.com/zh-CN/download/details.aspx?id=1325 ...
- 剑指offer 2.字符串 替换空格
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. public class Re ...
- 剑指offer 1.数组 二维数组中查找
题目描述 在一个二维数组中(每个一维数组的长度相同), 每一行都按照从左到右递增的顺序排序, 每一列都按照从上到下递增的顺序排序. 请完成一个函数, 输入这样的一个二维数组和一个整数,判断数组中是否含 ...
- Windows下好用的git客户端--GitExtentions
用git: https://git-scm.com/downloads GitExtentions: https://sourceforge.net/projects/gitextensions/ B ...
- ionic3安卓版release发布
1.进入到项目根目录 keytool -genkey -v -keystore your-full-keystore-name.keystore -alias your-lias-name -keya ...
- SpringSecurity-FilterSecurityInterceptor的作用
FilterSecurityInterceptor也是很重要的一个interceptor,它的作用是对request进行权限判断,允许访问或者抛出accessDenied异常. 这个类继承Abstra ...
- 学习笔记之Machine Learning Crash Course | Google Developers
Machine Learning Crash Course | Google Developers https://developers.google.com/machine-learning/c ...
- nodejs 函数 :html2js
var fs = require("fs"); var path = require("path"); function propStringToMap(ss1 ...