1.模块初识:

sys模块:

                 import sys
print(sys.path)
#path打印环境变量--》
['F:\\python学习\\projects\\s14\\day2',
'F:\\python学习\\projects\\s14',
'F:\\python3.5\\python35.zip',
'F:\\python3.5\\DLLs',
'F:\\python3.5\\lib',
'F:\\python3.5',
'F:\\python3.5\\lib\\site-packages']
#这些路径存储的是python的环境变量
#其中第三方库模块一般存储在'F:\\python3.5\\lib\\site-packages' 中
#官方标准库模块一般存储在'F:\\python3.5\\lib'中
#当引入模块时,一般是现在当前目录下找,如果找不到再去全局变量中去找
print(sys.argv) #打印当前程序的路径

os模块:

                import os
cmd_res = os.system("dir") #显示当前文件目录,执行命令不保存结果
cmd_res = os.popen("dir").read()#os.popen("dir"):将当前文件目
#录存储到内存中的一个临时区域, .read()读取这个临时存储的地址,将内容取
#出来
print("->",cmd_res)
os.mkdir("new_dir")#在当前文件目录下在创建一个新的文件目录

2.pyc文件:

随着Java等基于虚拟机语言的兴起,我们不能把语言纯粹的分成解释性和编译性这两种,用Java来举例,Java首先时通过编译器来编译成字节码文件,然后运行是通过解释器来解释机器文件,所以说Java是一门先编译后解释的语言

python和Java、c#一样,也是一门基于虚拟机的语言,当我们在命令行中输入python hello.py时,其实时激活了python的“解释器”,告诉编译器:你要开始工作了。可是在解释之前,其实执行的第一项工作和Java一样:是编译

简述python的运行过程:
pycodeobject文件是python编译器真正编译的结果。当python程序运行时,编译的结果则是位于内存中的pycodeobject中,当python运行结束时,解释器会将pycodeobject写回到pyc文件中。当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则重复上面的过程。所以说pyc文件其实就是pycodeobject的一种持久化保存方式

3.python数据类型:

1.数字:

int (整型)

在32为机器上,整数的位数时32位,取值范围为-**--**-
在64位机器上,整数的位数时64位,取值范围为-**--**-

long (长整型)(python3之后就没有长整型了)
python的长整数没有指定位宽,即:python没有限制长整数数值的大小,但由于机器的内存有限,我们使用的长整数数值不可能无限大
自python2.2起,如果整数溢出,python会自动将整数数据转化为长整数,所以如今在长整数后面不加字母L也不会导致严重后果了

float (浮点型)
浮点数用来处理实数,即带有小数的数字,类似C语言中的double类型,占8个字节,其中52位表示底,位表示指数,剩下的一位表示符号

complex (复数)
复数是由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数

附注:python张存在小数字池:--

2.布尔值:

真或假
或0

3.字符串:
”hello world

python字符串在C语言中体现为是一个字符数组,每次创建字符串的时候需要在内存中开辟一块连续的存储空间,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内存中重新开辟一块空间

入门知识拾遗
,bytes类型
Python 最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰。
你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然)。

string -encode->bytes-decode->string

字符串可以编码成字节包,而字节包可以解码成字符串。

编码是这个转换过程中至关重要的一部分。离了编码,bytes对象b'\xa420'只是一堆比特位而已。编码赋予其含义。
采用不同的编码,这堆比特位的含义就会大不同。

2.三元运算
result = 值1 if 条件 else 值二

3.进制
二进制,0 1
八进制,0 1 2 3 4 5 6 7
十进制:0 1 2 3 4 5 6 7 8 9
十六进制:0 1 2 3 4 5 6 7 8 9 A B C D E F

4.列表:
列表的创建:

names = []

列表的操作:
切片:

names = ["a",'b','c','d']
print(names[0:3]) #a,b,c
print(names[-3:-1]) #b,c
print(names[:]) #a,b,c,d
print(names[0]) #a
print(names[-1]) #d
注意:0可以省略不写

追加:

names = ["a",'b','c']
names.append("Mr Wu")
print(names) #a,b,c,Mr Wu

插入:

names = ['a','b','c']
names.insert(1,"Mr Wu")
print(names) #a,Mr Wu,b,c

修改:

names = ["a",'b','c']
names[0] = "Mr Wu"
print(names) #Mr Wu,b,c

删除:

names = ["a","b","c","d"]
names.remove("a")
print(names) #b,c,d
names.pop(0)
print(names) #b,c,d
del names[0]
print(names) #b,c,d
names.pop()#删除最后一个元素的值
print(names) #a,b,c
del names #删除列表

查找:

names = ["a","b","b","c","d"]
print(names.index("a")) #0;查找元素的位置
print(names.count("b")) #2;查找相同元素的个数

清空:

names = ["sansan","lislis"]

names.clear()

翻转:

names = ["a","b","c","d"]
names.reverse()
print(names) #d,c,b,a

排序:

names.sort()

扩展:

At = ["e","f","g"]
names = ["a","b","c","d"]
names.extend(At)
print(names) #a,b,c,d,e,f,g

浅copy:

import copy
names = ["a","b",["c","d"],"e"]
names2 = names.copy()
#names2 = copy.copy(names)
names[0] = "Mr Wu"
names[2][1] = "alex"
print(names2) #a,b,[alex,d],e
现象原因:names2单独开辟了一块空间存储元素,第一层列表直接把元素值拷贝过来,第二层拷贝的是嵌套列表的地址

深copy:

import copy
names = ["a","b",["c","d"],"e"]
names2 = copy.deepcopy(names)
names[0] = "Mr Wu"
names[2][1] = "alex"
print(names2) #a,b,[c,d],e

循环:
for i in nmaes:
    print(i)

5.字符串:

name = "my name is alex"
print(name.capitalize()) #让首字母大写
print(name.count("a")) #统计字符的个数
print(name.casefold()) #没什么用
print(name.center(50,"-")) #-----------------my name is alex------------------,保证长度为50,不够的两边补-
print(name.encode(encoding = "utf-8"))
print(name.endswith("ex")) #判断一个字符串以什么结尾 True 、False
'''
name = "my \tname is alex"
print(name.expandtabs(tabsize=30))#my name is alex
'''
print(name.find("name")) #找到name首字符的位置
print(name[name.find("name"):8]) #切片,此例是取出name
'''
name = "my name is {_name}"
print(name.format(_name = "alex")) #格式化输出
print(name.format_map({"_name":"alex"}))#使用字典时使用这种方法
'''
print("abc123".isalnum()) #判断是否包含阿拉伯数字 True、False
print(name.index("name")) #返回字符串第一个字符的位置
print("abx123".isalpha()) #判断是否为纯英文字符串 True 、False
print("1A".isdecimal()) #判断是否为十进制 True、False
print("".isdigit()) #判断是否为整数 True、False
print("d1Q".isidentifier()) #判断是不是一个合法的标识符(变量名) True、False
print("Abc".islower()) #判断是否为小写字符串 True、False
print("Abc".isnumeric()) #跟isdigit()用法相同
print("33A".isspace()) #判断是否为空格 True、Falsw
print("My Name Is Alex".istitle()) #判断是否为标题 True、False
print("my name is".isprintable()) #判断是否可以打印(tty file,drive file不可打印)
print("my name is".isupper()) #判断是否为大写字母 True、False
print("my name is".join("=="))#=my name is=
print("+".join(["","","",""])) #1+2+3+4
print(name.ljust(50,"*")) #my name is alex***********************************,保证长度为50,不够的右边补*
print(name.rjust(50,"-")) #-----------------------------------my name is alex,保证长度为50,不够的左边补-
print(name.lower()) #将大写字符变为小写
print(name.upper()) #将小写字符变为大写
print("\nAlex".lstrip()) #去掉左边的空格和回车
print("=====")
print("alex\n".rstrip()) #去掉右边的空格和回车
print("-----")
print("\nalex\n".strip())# 去掉左边和右边的空格和回车
print("////////")
#随机密码
'''
p = str.maketrans("abcdef","123456") #加密
print("alex li".translate(p)) #解密 #输出1l5x li
'''
print("alex le".replace("l","L",1)) #替换字母 ,aLex le
print("alex li".rfind("l")) #找到最右边的l的位置
print("1+2+3+4".split("+")) #划分成列表 ['1', '2', '3', '4']
print("1+2+3+4".startswith(""))#判断一个字符串以什么开始 True 、False
print("1+2\n+3+4".splitlines()) #按照换行符划分成列表['1+2', '+3+4']
print("alex li".swapcase()) #把字符串变为大写,ALEX LI
print("alex li".title()) #变为标题,Alex Li
print("alex li".zfill(50))#0000000000000000000000000000000000000000000alex li,保证长度为50,不够的左边补0 #字符串无法修改,只能更新覆盖 #取出字符串中的数字的方法:
products = "Iphone,4000"
number = int(products.split(",")[1])
print(number) #字符串追加的方法
import random
checkcode = ""
for i in range(5):
current = random.randrange(5)
if i == current:
tm = chr(random.randint(65,90))
else:
tm = random.randint(0,9)
checkcode += str(tm)
print(checkcode)

6.字典:
1.字典的创建:

info = {
"stu1101": "TengLan Wu",
"stu1102": "LongZe Luola",
"stu1103": "XiaoZe Maliya",
}

单层字典的操作:
1.将字典变成一个列表:

info.items()
print(info)
'''
#dict_items([("stu1101","TengLan Wu"),("stu1102","LongZe
LuoLa"),("stu1103","XiaoZe Maliva")])
'''

2.打印所有的values:

print(info.values())
#dict_values(["TenLan Wu","LongZe Loula","XiaoZe Maliva"])

3.打印所有的keys:

 print(info.keys()) #dict_keys(["stu1101","stu1102","stu1103"])

4.字典时无序的,因为其没有下标

5.查找value:

print(info["stu1101"]) #TengLan Wu,如果没有则报错
print(info.get("stu1101")) #TengLan Wu,如果没有则返回None

6.修改value:
info["stu1101"] = "Mr Wu"

7.增加:
info["stu1104"] = "Mr Wu"

8.删除:

del info["stu1101"]
info.pop("stu1101")
info.popitem() #随机删除

9.字典的遍历:

for i in info:
print(i,info[i]) #stu1103 XiaoZe Maliya
'''
#stu1102 LongZe Luola
#stu1101 武藤兰
#stu1104 cangjingkong
建议使用这种方法,其相当于一个迭代器
'''

多层字典嵌套:
1.创建:

1.av_catalog = {
"欧美":{
"www.youporn.com":["很多免费的,世界最大的","质量一般"],
"www.pornhub.com":["很多免费的,也很大","质量比yourorn高点"],
"letmedothistoyou":["多是自拍,高质量图片很多","资源不多,更新慢"],
"x-art.com":["质量很高,真的很高","全部收费,屌丝请绕路"],
},
"日韩":{
"tokyo-hot":["质量怎么样不清楚,个人已经不喜欢日韩范了","听说是收费的"],
},
"大陆":{
"":["全部免费,真好,好人一生平安","服务器在国外,慢"]
},
}

2,修改:

av_catalog["大陆"][""][1] = "可以在国内左镜像"
av_catalog.get("大陆").get("")[1]

3.删除:
del av_catalog["大陆"]["1024"][1]

4.增加

av_catalog.setdefault("taiwan",{"www.baidu.com":["资源少","质量差"]})

python第二周:数据类型、列表、字典的更多相关文章

  1. python第二周数据类型 字符编码 文件处理

    第一数据类型需要学习的几个点: 用途 定义方式 常用操作和内置的方法 该类型总结: 可以存一个值或者多个值 只能存储一个值 可以存储多个值,值都可以是什么类型 有序或者无序 可变或者不可变 二:数字整 ...

  2. python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍

    目录 python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍.md 一丶字典 1.字典的定义 2.字典的使用. 3.字典的常用方法. python学习第八讲,python ...

  3. python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍

    目录 python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 2.元祖变量的定义 3.元祖变量的常用操作. 4.元祖的遍历 5.元祖的应用场景 p ...

  4. python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍

    目录 python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍. 二丶列表,其它语言称为数组 1.列表的定义,以及语法 2.列表的使用,以及常用方法. 3.列表的常用操作 ...

  5. python基础一数据类型之字典

    摘要: python基础一数据类型之一字典,这篇主要讲字典. 1,定义字典 2,字典的基础知识 3,字典的方法 1,定义字典 1,定义1个空字典 dict1 = {} 2,定义字典 dict1 = d ...

  6. Python基础——原生数据类型(字典,列表,元组,字符串)

    字典Dictionary 字典定义了键值对的1对1管理. 1.定义字典 请看下面的栗子,我们先创建了一个具有两个元素的字典,每对都是key:value的形式. 我们能通过key得到value,但是不能 ...

  7. day08整理(周总结\列表\字典内置方法)

    一.周总结 一 计算机基础之编程 1.什么是编程语言 编程是人与计算机交流的介质 2.什么是编程 通过编程语言写一堆文件 3,为什么编程 取代劳动力,帮人类干活 二 计算机组成 1.CPU 控制器 控 ...

  8. python第二周

    第二周,PYTHON图形绘制 一,计算机技术的演进发展 1946-1981.从第一台计算机的诞生到IBM的PC机的出现,我们称之为”计算机系统结构时代“.————这个时代重点在解决计算能力问题 198 ...

  9. python中用json存储列表字典等文件操作

    JSON字符串用json.dumps, json.loads JSON文件名用json.dump, json.load 由于需要在脚本重启后依旧能够记住之前所使用的列表内容, 故采用json存储列表文 ...

随机推荐

  1. Oracle GoldenGate 支持 从SAP HANA database抽取或者复制数据到SAP HANA database 吗?

    Oracle GoldenGate 支持 从SAP  HANA database抽取或者复制数据到SAP HANA database 吗? 来源于: Does Oracle GoldenGate Su ...

  2. hdu 4865 Peter's Hobby(2014 多校联合第一场 E)

    Peter's Hobby Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  3. rar x 解压rar文件,提示permission denied

    问题: 解压rar文件,提示

  4. UVA - 10061 How many zero's and how many digits ?

    n!=x*b^y, 当x为正整数时,最大的y就是n!末尾0的个数了, 把n,b分别拆成素因子相乘的形式: 比如, n=5,b=16 n=5,b=2^4, 非常明显,末尾0的个数为0 10进制时,n!= ...

  5. Linux命令(六)——软件包管理(安装应用程序)

    与windows安装各种应用程序相似,在linux下也可以安装各种需要的应用程序,通常称为软件包.目前,在linux系统下常见的软件包格式主要有:RPM包.TAR包.bz2包.gz包.deb包.sh结 ...

  6. 0=='aa'的结果是true

    来源于一道面试题: PHP的类型转换规则 1.如果是一个数字与一个字符串进行比较,那么会把字符串转换为数字再比较 2.字符串的转换规则,若字符串以数字开头,则取开头数字作为转换按结果,若无,则取0

  7. Java web測试分为6个部分

    1.功能測试 2.性能測试(包含负载/压力測试)3.用户界面測试 4. 兼容性測试 5.  安全測试  6.接口測试   1 功能測试 1.1 链接測试 链接測试可分为三个方面. 首先,測试全部链接是 ...

  8. Qt5.8 提供 Apple tvOS,watchOS的技术预览版

    New Platforms Apple tvOS (technology preview) Apple watchOS (technology preview) https://wiki.qt.io/ ...

  9. DDos攻击,使用深度学习中 栈式自编码的算法

    转自:http://www.airghc.top/2016/11/10/Dection-DDos/ 最近研究了一篇论文,关于检测DDos攻击,使用了深度学习中 栈式自编码的算法,现在简要介绍一下内容论 ...

  10. js滚动

    有选择性的重复造一些轮子,未必是件坏事.Aaron的博客上加了一个悬浮菜单,貌似显得很高大上了.虽然这类小把戏也不是头一次见了,但是从未自己写过.今天就选择性的拿这个功能写一写.下面是这个轮子的开发过 ...