2020年6月01日07--作用域,拆包,文件的操作

# == == == == == == == == == == == == == == == ==
# -*- coding:utf-8 -*-
# @Author:henry
# @Time:2020/6/2 9:37
# Email:yinpingwei@gmail.com
# @File: 2020-06-01python作用域,文件操作.py
# == == == == == == == == == == == == == == == == =


# 作用域
# 局部变量:函数内部定义的变量
# 全局变量:函数外部定义的变量

# 全局变量在函数中可以使用,但是不能修改
sum_global = 0     # 全局变量

# 求和,传进来的参数的和
def add(*args):
    global sum_global    # 需要声明下,就可以使用全局变量
    sum = 0     # 局部变量,只有内部可以使用
    for item in args:
        sum += item
    print(sum_global)       # 第一次调用打印是0
    return sum             # 返回sum 的值

# s = add(1,3,4,5,6)
# print(s)
sum_global += add(1,3,4,5,6)         # 累加
sum_global += add(100,200,300,400)    # 累加
print(sum_global)


# 函数传参小妙招:拆包
# 注意:调用函数传参时,可拆包

# 1.*:传递参数时可以对元组/列表拆包
# 重点是:长度完全要对应 这个用的最多
my_list = [100,200,300,400]   # 定义一个列表

def add(a,b,c,d):     # 调用给的值
    sum1 = a+b+c+d
    print(sum1)
    # return sum1       # 返回sum1


add(*my_list)         # 调用my_list的列表的值,传参的时候,用*变量名拆包

# 2.**:传递参数时可以对字典拆包

def add(**kwargs):     # 传字典的值
    for key,value in kwargs.items():
        print(key,value)


person_info = {'姓名':'大猫','年龄': 18,'city':'深圳' }   # 传入字典的值
add(**person_info)    # 传参的时候,用**变量名拆包


# 内置函数
# id()   查看数据内存地址
print('*********************',id(my_list))     # 查看内存地址

# print():输出
# input():输入
# type():查看类型
# range():生成整数序列
# len():获取数据的长度(元素总数)
# int,float,bool,str,list,dict,tuple,set:代表对于的数据类型
# 这里重点掌握int,str

nums = [100,200,54,12,96]   # 列表
# min():求最小值
print(min(nums))    # 求最小值

# max():求最大值
print(max(nums))     # 求最小值

# sum():求和
print(sum(nums))       # 求和


# 文件操作

# 文件的打开操作(打开模式(r),编码格式:encoding='utf_8')

# fs = open('py30.txt')    # 使用open()函数  打开文件,相对路径
fs = open(r'F:\PyChaer-workspare\py30\2020-06-01\py30.txt',encoding='utf_8')   # 打开文件, 绝对路劲

'''
r :只读
1.文件一定要存在,不然会报错
2.默认为只读模式
'''
    # 1.读取模式有三种方式:
# 第一种:read()   全部都读取出来
s = fs.read()   # 所有数据都读取出来
print(s)

# 第二种:readline()   读取一行数据
s1 = fs.readline()    # 读取一行数据
print(s1)
s2 = fs.readline()    # 接着读取下一行数据。。。。。
print(s2)

# 第三种:readlines()   按行读取所有数据,结果为列表,一行为一个成员
s3 = fs.readlines()    # 按行读取所有数据,结果为列表,一行为一个成员
print(s3)


# 2.文件的写入操作
'''
w :只写
1.若文件不存在,会自动进场创建
2.文件所在的目录一定要存在,不然会报错
3.会覆盖原有内容
4.只能写入,不能读取
'''
# 使用了外部资源,一定要进行关闭操作
fs = open(r'F:\PyChaer-workspare\py30\2020-06-01\py30.txt','w',encoding='utf_8')   # 打开文件模式:w, 绝对路劲

# 写入模式有二种方式:   注意:需要自己换行,加入换行符\n
# 第一种:write()   写入数据,
fs.write('大家好,我是py30!!!')        # w模式,会覆盖原有内容
fs.close()          # 关闭文件,释放资料,第三方资源

# 第二种:writelines()   写入列表当中每个成员
fs.writelines('大家好,我是py30!!!,今天好搞笑呀,看见了什么')
fs.close()

# 文件的追加操作
# 追加,在原有的文件内容之后,追加新的内容
# 追加:'a'模式
fs = open(r'F:\PyChaer-workspare\py30\2020-06-01\py30.txt','a',encoding='utf_8')   # 打开文件模式:a, 绝对路劲
fs.write('\n规划科技馆刚发的!!!')   # 追加,也是写的一种
fs.close()

# 写,追加如果不存在,会自动创建
# 如果文件所在的目录不存在,会报错
fs = open('new.file.tex','a',encoding='utf_8')   # 文件不存在,自动创建
fs.write('我是新文件')     # 写入数据
fs.close()         # 关闭

# 可读可写
# r+ 可读可追加
# w+ 先清除内容

# 4.会主动关闭文件,不需要你去调用close()
# with as 操作
with open('new.file.tex','a',encoding='utf_8') as fs:
    fs.write('\n我是新文件3')  # 写入数据

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值