29
2018
06

python字典表操作、文件读写操作、流程控制语句

练习笔记代码


# -*- 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("第一行写入内容\n")#写入一行内容

f.flush()#或者调用f.close()也能写入内容并关闭

l=['tom','jerry']

l=[name+"\n" 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('请输入一个数字:\n')

    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/




版权声明:
作者:真爱无限 出处:http://www.pukuimin.top 本文为博主原创文章版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接.
« 上一篇下一篇 »

相关文章:

评论列表:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。