python基础操作(一)--函数(二)

发一篇博客平均耗时1-1.5h(以前发表过的历时差不多在这个范围),而这次我差不多耗时3h,哪怕代码我早已经写在pycharm里面,只要复制粘贴就行,我也耗时那么久。当然,虽说代码早已写好,但全部都已经被注释,每复制粘贴一小段都要再亲自去运行一下,确保没问题再上传,其中还包含认真复习一遍,难免会耗时那么久。
其实,有时我也在想,那么长的耗时,我用来做其他事情不香吗,一些娱乐念头一闪而过。香肯定是香的,我也不去说违心话,我只想做好当前手下的一件事,仅此而已,哪怕这次分为两篇写,我也想着优先对待。做完一件事,少一件事,就不用老是去想那么事

#coding=utf8
# 局部变量
# 该变量定义在函数之内的变量,称之为局部变量
# 定义在函数内部的变量名如果第一次出现,且在“=”之前,那么就可以认为是被定义为局部变量,无论在全局变量中是否用到该变量名,
# 函数都是默认使用局部变量
# 1、调用局部变量
num=200           #定义的全局变量
def fun():
    num=100       #局部变量
    print num
fun()             #调用局部变量  100
print num         #调用全局变量  200

# 全局变量
# 该变量如果定义在函数之外的变量,称为全局变量
# 函数内部的变量名如果第一次出现,且在等号之后,且该变量名被定义为全局变量,则函数默认使用全局变量

# 局部变量转换成全局变量在方法中加入global,如果将函数中某个变量声明为全局变量,这个时候需要使用global关键字;
# 局部变量声明为全局变量后,原有的全局变量会被重新赋值

# 2、调用全局变量
num=200  #定义一个全局变量
def fun():
    sum=num+100  #默认调用全局变量
    print sum
fun()            #调用全局变量  300
print num        #调用全局变量  200

# 使用global关键字定义全局变量
num=200
def fun():
    global num #把num重新被定义为全局变量
    #局部变量声明为全局变量后,原有的全局变量会被重新赋值
    num=100    #局部变量/可以理解为新全局变量
    sum=num+134
    print sum
fun()           #234
print num       #100
# 内置函数
# 实现格式化输出字符串的函数。format:该函数增强了格式化的功能
# format的基本语法:通过{}和:来代替之前的%
#format优点:
# 1、格式化的时候不需要考虑数据类型
# 2、使用format可以实现参数多次输出,已经输出的位置可以进行控制

可以跟我之前写的第一篇–格式化输出相作比较(入口)https://blog.csdn.net/weixin_46341320/article/details/105216923

# 1、不设置参数的输出位置,则默认输出
# 格式'{}{}{}'.format('x','x','x')  有多少参数则输出多少参数一一对应
test='duoduo'
print '结果为%s'%test
>>>结果为duoduo
yy='{}'.format(test)
print yy
>>>duoduo
yy='{}{}'.format('hi','xiaoliu')
print yy
>>>hixiaoliu

# 2、输出是可以控制参数输出的位置,一个参数可以进行多次输出
yy='{1}{0}{2}{1}'.format('hi','xiaoliu','怎么样')
print yy
>>>xiaoliuhi怎么样xiaoliu

# 3、可以设置参数
yy='姓名:{name} 年龄:{age}'.format(name='xiaoliu',age='18')
print yy
>>>姓名:xiaoliu 年龄:18

# 4、通过字典来设置参数,字典传入时需要带**号
dic={'name':'xiaoliu','age':'18'}
yy='姓名:{name} 年龄:{age}'.format(**dic)
print yy
>>>姓名:xiaoliu 年龄:18

# 5、通过列表来传参,中括号前面的0必须携带
list=['xiaoliu','15','18']
yy='学生:{0[0]} 班级:{0[1]} 年龄:{0[2]}'.format(list)
print yy
>>>学生:xiaoliu 班级:15 年龄:18
# zip内置函数
# 1、zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元祖,然后返回由这些元祖组成的列表
# 2、如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同
aa=['a','b','c','d']
bb=[1,2,3]
yy=zip(aa,bb) #通过zip方法转换成列表
print yy      #[('a', 1), ('b', 2), ('c', 3)]
print type(yy)#<type 'list'>
dic=dict(yy)  #利用字典的dict方法转换成字典
#或这样写:
# dic=dict(zip(aa,bb))
print dic     #{'a': 1, 'c': 3, 'b': 2}
# print zip(*yy)#[('a', 'b', 'c'), (1, 2, 3)]
# 读取本地文件
# 读的模式
# read()            #读取所有,以字符串返回
# readline()      #只读取第一行,以字符串返回
# readlines()     #读取所有,并将结果以列表形式返回
# 以读的方式打开本地文件并把读取的结果返回给o对象
#o=open('本地文件的绝对路径','r')
o=open('d:\\a.txt','r')
#这里注意的是需要要用两个\\
all=o.read()
print all           #读取所有,以字符串返回
one=o.readline()
print one           #只读取第一行,以字符串返回
all1=o.readlines()
print all1          #读取所有信息并以列表形式返回
print type(all1)

#或者这样写:
with open('d:\\a.txt','r')as f:
    # all=f.read()
    one=f.readline()
    s=f.readlines()
# print all
print one
print s

# 读取本地文件出现中文路径的处理方法
path='D:\\虚拟机文件 (4)\\aa1.txt'
newpath=unicode(path,'utf-8')#首先把路径转换为unicode编码
o=open(newpath,'r')
all=o.read()
print all
这里的路径根据自己本地文件的绝对路径来写

# 读取本地文件中内容包含中文字符
path='D:\\e.txt'
newpath=unicode(path,'utf-8')
o=open(newpath,'r')
all=o.read()
#针对返回的字符串的解码方法
print all.decode('gbk')#通过decode解码为gbk编码格式
# 只有字符串有gbk属性
#针对返回的列表的解码方法
all1=o.readlines()
import json
print json.dumps(all1,encoding='gbk',ensure_ascii=False)
# 写的模式
# write()
# 覆盖原来文件的内容写入新的内容,如果文件不存在则新建文件
# writelines(list)
# 把指定的列表写入到文件中,如果文件不存在在则新建文件
#注意:只能传字符序列,不能传数字序列

o=open('D:\\aa666.txt','w')
o.write('gz')
o.close()   #释放资源
这里aa666.txt我本地没这个文件,所以先新建再写入
list=['1','2']#列表只能是字符串序列不能包含数字序列,若含有数字序列会报错
o.writelines(list)
o.close()   #释放资源
# 关闭一个已经打开的文件,关闭后不能再对文件进行读写操作
# append追加  追加模式文件原来的内容会被保存
o=open('D:\\aa666.txt','a')
o.write('\n'+'gz')
oo=open('D:\\aa666.txt','r')
all=oo.readlines()
print all
o.close()

港真,写到现在,还真有点想敷衍了事的想法。太难了,时间真的长,百般无聊地我幸好完成了,接下来创作就要变得佛系了,好像一直很佛系,哈哈。
加油,坚持把所学python写完!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值