在第一天的时候提了一嘴字典,不过他的一些特性还有方法没有写,今天写一写
字典的元素是一组键值对
字典的键可以是int 、float、tuple、bool、str,但是不能是列表、字典,不过用时建议用str
字典的值可以是任何元素,包括列表、字典等
字典是没有下标的,去字典的值通过键来取,下面还是看代码
dict = {'键':'值','str':1,12:(1,3,5),3.14:[1,2,4],True:{'键':'值'},(1,24,4):True}
print(dict[12])#(1, 3, 5) 键位12对应的值
print(len(dict))#6 字典里面的元素个数
dict[12] = 'hello'#修改键位12对应的值
print(dict[12])#hello
dict['增加键位']='增加的值'#如果字典里面没有这个键位,则会直接增加这个键值对
print(dict)#{'键': '值', 'str': 1, 12: 'hello', 3.14: [1, 2, 4], True: {'键': '值'}, (1, 24, 4): True, '增加键位': '增加的值'}
del dict[3.14] #删除键位为3.14的键值对
print(dict)#{'键': '值', 'str': 1, 12: 'hello', True: {'键': '值'}, (1, 24, 4): True, '增加键位': '增加的值'}
print(dict.pop('键'))#删除键位为'键'的键值对,返回的的是这个键位对应的值 ‘值’
print(dict)#{'str': 1, 12: 'hello', True: {'键': '值'}, (1, 24, 4): True, '增加键位': '增加的值'}
print(dict.keys())#dict_keys(['str', 12, True, (1, 24, 4), '增加键位']),返回的是一个类列表
alist = list(dict.keys())#可以转换为列表
print(alist)
for one in dict:
print(one)#遍历的是字典里的键位
print(one,dict[one])#这样打印的才是键和值
print(dict.items())#这个是对字典本身的遍历,打印出来的是一个类列表,可以转换为列表
#dict_items([('键', '值'), ('str', 1), (12, (1, 3, 5)), (3.14, [1, 2, 4]), (True, {'键': '值'}), ((1, 24, 4), True)])
for one in dict.items():#打印的是键值对,以元组的方式打印出来
print(one,type(one))#('键', '值')
for one ,a in dict.items():#
print(one, a) #one是键位,a是值
a = {1:2,4:3}
b = {1:8,5:3}
a.update(b)#字典的更新,没有键值对的增加,键值对一致的不变,键值对不一致的更新
print(a)#{1: 8, 4: 3, 5: 3}
dict.clear()#清空字典
print(dict)#{}
以上是对字典的一些方法的总结,暂时就先这么多
下面说下变量,变量有全局变量和局部变量,还是看代码
a = 3#全局变量
def func(b):
a = b#局部变量
print(a)#2
def func1(c):
a = 5#局部变量
print(a)#5
def func2():
global a#加上global成为全局变量
print('***',a)#*** 3
func2()
func1(5)
print(a)#3
func(2)
下面说的是几种参数:缺省参数、可变数量参数、关键字可变数量参数
def func(a = 1,b = 3):#缺省参数,a和b 就是缺省参数,如果函数不传值,那么就默认参数为1和2,如果传值,就按传值走
sum = a + b
return sum
print(func())#4
print(func(5,8))#13 像print()函数也是缺省参数print(end = ''),不写end=默认换行,写的话,以写的值替换
def func(a ,*b ,c = 5):#'*'函数定义,默认封装成一个元组,是可变的数量,不管传多少值,如果指明c的值,那么c就一直是默认值
print(a,b,c)
func(3,5,35,5)#3 (5, 35, 5) 5
func(3,5,35,5,c = 8)#3 (5, 35, 5) 8
def func(a ,*b ,**c):#'**'关键字可变参数,*和**两个参数可以都不传值,**传入的参数以字典的形式存储 c需要传入一个键值对
print(a,b,c)
func(4)#4 () {}
func(3,3,4,4,m=3,n=5)#3 (3, 4, 4) {'m': 3, 'n': 5}
def func (*inlist):
sum = 0
for one in inlist :
sum = sum + one
return sum
print(func(1,2,4,5))
print(func(*[1,2,4,5]))#在调用函数时使用*,对列表进行拆分,拆分成一个个元素,同理**是用来拆解集合的
def func (**inlist):
print (inlist)
func(**{'a':3,'b':4})
下面再说下方法、模块和包
#模块,一个'.py'文件就是一个模块
#把一个功能的模块放到一个包里,所以包可以看成是一个page包(可能以后发现又不对了,不过目前先这么解释)
def func(a,b):
sum = a+b#这就是一个方法
return sum
print(__name__)
if __name__ =='__main__':#这个方法在这个模块下被调用会打印出'__main__',在别的函数里会被打印成这个方法所在的模块名字,
#所以写在这个if后面的的函数只能在本模块运行是才会被调用,因此常这个方法来进行程序的调试,在其他模块调用这个模块时间,
#__name__ 打印出来的是__name__所在的模块名,所以if以下函数不被执行
func(3,9)
再说下调用模块的几种方法
import pretices.zuoye1#第一种调包的方法
pretices.zuoye1.func(3,5)#pretices.zuoye1 8,打印的是两个值pretices.zuoye1这个是print(__name__)打印出来的
from pretices.zuoye1 import func#第二种调包的方法
func(4,9)#pretices.zuoye1 13
from pretices.zuoye1 import *#这个是调用这个模块下的所有函数,不过不建议这样用,可能会导致调用的包多,而很多包里会有同名函数,这样会导致出错
func(5,9)
#调用系统函数包
import time
now = time.strftime("%Y:%m:%d %H:%M:%S", time.localtime())#打印系统当前时间精确到秒
now2 = time.strftime("%Y-%m-%d", time.localtime())
print (now)
print (now2)
#使用pip安装第三方库如:安装selenium: pip install selenium 卸载的话是uninstall
#import 导入模块,实质就是在sys.path目录下进行查找,如果
#找到该目录下文件就可以导入,在该目录下的目录里的文件就不能导入
#执行文件的路径为最终的路径,以他的sys.path下的目录为基准
import sys
print(sys.path)
今天结束