练习笔记代码
# -*- coding: utf-8 -*-
#dict 字典表,属于可变映射,可包含任意对象的无序集合,长度可变,通过键值key访问
d={'name':'Tom','age':20,'salary':3900.00}
print(d)
print(d['name'])
d=dict(title='python',author='Tom')#函数创建字典
print(d)
l=[('name','Tom'),('age',22)]
d=dict(l)#转换为字典
print(d)
l=['name','age','job']
d=dict.fromkeys(l)#转换为字典的key,值为None
print(d)
d={'title':'python','author':'Tom','publisher':{'title':'XXXX出版社','address':'广州'}}
print('title' in d)#判断是否含有对应的key
print('出版社:{0}'.format(d['publisher']['title']))#获取嵌套字典的值,2.X版本可能有中文编码问题
print(d.get('salary',-1))#获取值,如果获取不到,返回指定的默认值
print(list(d.keys()))#获取keys集合
#直接遍历keys
for key in d.keys():
print(key)
#value集合,与key操作一样
print(d.values())
#循环dict
for (k,v) in d.items():
print('key:{0},value:{1}'.format(k,v))
print(len(d))#字典里键值对数量
d2=d.copy()#复制值,生成一个新的字典,非共享引用
d2['title']='python_1'
print(d)
print(d2)
d3={'publist_year':1998,"title":"python_new"}
d.update(d3)#更新合并字典表数据
print(d)
del d['title']#通过key删除
print(d)
v=d.pop("publist_year",None)#通过key弹出元素,并返回值,如果不存在元素,返回指定的默认值
print('pop value:{0}'.format(v))
print(d)
print(d.popitem())#弹出并返回最后一个元素
print(d)
def say_hello(name):
print('Hello {0}'.format(name))
d={'name':"Tom",'hello':say_hello}#成员包含函数的引用
d['hello'](d['name'])
"""文件对象声明与基本操作
open('路径','模式',encoding='编码')
模式:
文本文件:'r','w','rw','a'-追加
二进制文件:'rb','wb','rwb','ab'
"""
p=r'demo.txt'#当前目录时,不需要写文件绝对路径
f = open(p,'r')
print(type(f))
print(f.read())#read方法有指针,读一次就到最后,再读就没内容显示
f.seek(0)#文件指针,移到开头,可重新读取全部内容
f.close();#用完后关闭文件,非必须,有垃圾回收机制,建议调用
f = open(p,'r')
txt=f.read(5)#读取时,指定读取多少字符或字节
print("f.read(5):"+txt)
txt=f.read(6)
print("f.read(6):"+txt)
f.seek(0)
txt=f.readline()#读取一行
print("f.readline()"+txt)
txt=f.readlines()#获取所有行
print(txt)
f.seek(0)
#遍历文件,内容为每行
for txt in f:
print(txt)#3.X可以用print(txt,end=''),指定print函数本身不换行
f.close()
#utf-8编码保存文件
p=r'demo1.txt'
f = open(p,'r',encoding='utf8')#3.X支持使用 open(p,'r',encoding='utf8'),编码要对应,不然读取时会报错
print(f.read())
f.close()
import os
print(os.getcwd())#获取当前工作目录
#os.chdir(r'F:Projects')
#print(os.getcwd())
f=open('write.txt','w',encoding='utf8')#3.X 语法encoding,2.X要去掉encoding参数
f.write("第一行写入内容 ")#写入一行内容
f.flush()#或者调用f.close()也能写入内容并关闭
l=['tom','jerry']
l=[name+" " for name in l]#list每个元素加换行
f.writelines(l)
f.flush()
f.close()
#使用with关键字,创建上下文场景,执行完毕会自动释放文件资源
with open('write.txt','r',encoding='utf8') as f:
for line in f:
print(line)
#语句与流程控制
"""
语句:包括赋值、运行函数、选择执行、迭代语句、循环、函数、模块与命名空间、类、异常处理等等
语法:强制缩进(四个空格,不能是tab)、PEP8(代码风格指南)
"""
#流程控制语句
while True:
txt=input('请输入一个数字: ')
if(txt == 'stop' or txt==''):#输入stop跳出循环
break
elif not txt.isdigit():
print('您输入的不是数字!')
else:
num=int(txt)
if num<20:
print("输入的数字太小!")
elif num>20:
print("输入的数字太大!")
else:
print("猜对了!")
#赋值语句
x=10
(name,age)=('jerry',20)#或[name,age]=['jerry',20]
print("name={},age={}".format(name,age))
a,b,c,d='1234'#多变量赋值,前后个数要一样
#3.X语法
#print("a={},b={},c={},d={}".format(a,b,c,d))
#a,*b='1234'#解包
#print("a={},b={}".format(a,b))
#a,*b,c='1234'#解包
#print("a={},b={},c={}".format(a,b,c))
a=b=5
print("a={},b={}".format(a,b))
a+=10
print("a={}".format(a))
print("-"*20)
#print(a,b,c,sep='|')#分隔符号
print("-"*20)
#print("line",end=' ')#终止符号
#print("line",end=' ')
#print("line",end=' ')
print()#打印空格
salary=1255.333333
s1=234.23333
print("薪资:{0:10,.2f}".format(s1))
print("薪资:{0:10,.2f}".format(salary))#格式化输出 10表示整体占10位,一般用于对齐 ,为千分符 .2f表示保留两位小数
附:
python2.7官方类库文档:
https://docs.python.org/2.7/library/
python3.5官方类库文档:
https://docs.python.org/3.5/library/