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中的数据类型有哪些 类型的一些常用操作及方法 一.字符编码 编码解释的大部分内容摘自廖雪峰老师教程中的讲解,点击跳转. 简单介绍: 我们知道计算机只能处理数字,如 ...
随机推荐
- mod_fcgid FcgidMaxRequestLen 131072 问题
mod_fcgid: HTTP request length 136136 (so far) exceeds MaxRequestLen (131072) 原来是fastcgi模式下的设置问题,需 ...
- 剑指Offer 6. 旋转数组的最小数字 (数组)
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋 ...
- 重开Vue2.0
目录: 内容: 一.Vue内部指令: 1.v-if v-else&v-show v-if与v-show都是选择性显示内容的指令,但是二者之间有区别: 1.v-if:判断是否加载,在需要的时候加 ...
- 使用元类 编写ORM
元类 一句话: 元类定制类的创建行为 知识点 1.类的创建: python这种动态语言,函数和类的定义,不是编译时定义的,而是运行时动态创建的. Python解释器遇到class定义时,仅仅是扫描一下 ...
- [LeetCode&Python] Problem 844. Backspace String Compare
Given two strings S and T, return if they are equal when both are typed into empty text editors. # m ...
- Windows下运行Linux命令
安装Gow软件,Gow-0.7.0.exe,这样就可以在Windows命令行运行Linux命令,比如通过scp把Windows下的文件拷贝到Linux下. 直接运行安装,不会生成任何客户端,直接使用W ...
- vue调用支付接口
html: <div class="paymentHtml" v-html="paymentHtml"></div> script: d ...
- 软件工程 week 04
四则运算 一.摘要 作业地址:https://edu.cnblogs.com/campus/nenu/2016CS/homework/2266 git仓库地址:https://git.coding.n ...
- annotation的概念及其作用
概念 能够添加到 Java 源代码的语法元数据.类.方法.变量.参数.包都可以被注解,可用来将信息元数据与程序元素进行关联.Annotation 中文常译为“注解”. 作用 标记,用于告诉编译器一些信 ...
- 11.python描述符---类的装饰器---@property
描述符1.描述符是什么:描述符本质就是一个新式类,在这个新式类中,至少实现了__get__(),__set__(),__delete__()这三个内置方法中的一个,描述符也被称为描述符协议(1):__ ...