第十课 小节总结

'''
生成一个txt文件

'''
#with open('python.txt','w') as f:
    f.write('python.txt') #如果没有写路径,默认为最近的目录创建

'''
将第一题生成的文件名后加上‘new’  python.txt改成python_new.txt
'''
#os.renname(r'D:\pythonproject\firstproject\文件\python.txt',r'D:\pythonproject\firstproject\文件\python_new.txt')

#读取文件内容,将内容进行大小写的更换
with open(r'D:\pythonproject\firstproject\文件\python.txt','r+') as f:
    data = f.read().swapcase() # 将里面的内容互换大小写后保存在data变量中
    f.seek(0) #将光标放在最前面
    f.write(data) #覆盖写后再把光标放在最前面
    print(f.seek(0))
'''
函数
内置函数 python 自带的函数直接调用 即可,如print()  range() len() 查看字符串
自定义函数: 无参函数,有参函数,
     无参函数:没有定义参数的函数,(函数的括号内没有内容)
     有参函数:定义了函数的参数,调用时需要输入参数

'''

'''
定义方法
def 函数名(形参):  意思为只有形装没有实际内容的参数
 函数功能 
   return '想要反回的值 '
调用方法
函数名(实参)  意思为有实际参数的内容

'''

#例题:使用自定义函数,实现 查看字符串长度
def get_len(result):
    #创建一个计数变量
    count = 0
    for i in result:   #将参数进行循环遍历
        count += 1
    return count
str1 = 'today is a good day'
print(get_len(str1))
print(len(str1))

#查看自定义函数在内在中的十六进进址  直接打印函数名(不包括号)
print(get_len)
#函数的内容 可以用变量接收
func = get_len
print(func(str1))

'''
函数中的参数,
必备参数
默认参数
不定长参数  *args **kwargs

'''
#必备参数:函数定义与调用 时,里面的参数必须一致
#创建自定义函数,功能 为计算两个数之间相乘的结果:例 计算矩形的面积

def get_area(length,width):
    return length * width
print(get_area(9, 5))

#计算工资
def get_salary(hour, hourly_wage = 20):
    return hour * hourly_wage
print(get_salary(10))

print(get_salary(10,22))  #如果调用给默认参数实参,那么前面 的默认值会被覆盖

#不定长参数 *args **kwargs
#定义一个日记本函数,里面记录一些内容
def notebook(*args,**kwargs):
    print(args)
    print(kwargs)
notebook('今天感觉这好','今天运气真好,捡到10块钱',pocket=10,luckly=1000)

'''
函数的作用域:
全局变量和局部变量
全局变量:函数内部可以访问 外部的变量,但是不能直接修改
如果要修改需要对于变量进行声明

'''
#创建一个全局变量
num = 10
#定义一个获取值的函数
def get_data():
    #使用global关键字进行声明(进行全局变量的声明)
    global num
    num += 1
    print(num)
get_data()

#局部变量:函数中的变量
def func1():
    data = 1
    def func2():
        #使用nonlocal关键字进行声明
        nonlocal data
        data += 2
        print(data)
    func2()
func1()

#闭包在python中的主要作用:保护数据,实现半饰器(面向对象之后的课程)以及避免程序重复计算,提高程序的执行效率
#函数的闭包:将嵌套函数的内部函数名(不包括括号)作为外部函数的返回值
def demo1():
    def demo2():
        return '这是内部函数输出的值'
    return demo2
x = demo1()  #首先需要给一个变量赋值为外部函数名字以及括号
print(x()) #调用闭包时可以直接用变量()进行调用

#递归函数,创造一个函数,以计算数字的阶乘
#6*5*4*3*2*1
def count(n):
    if n <= 1:
        return 1
    else:
        return n * count(n-1)
    #计算6的递归
print(count(6))


#匿名函数:无城使用def关键字,而是使用lambda 将函数写成一行,用变量来接收
#编写一个匿名函数,功能为计算一个数的次方(次方运算)
compute = lambda a,b:a ** b
print(compute(3,4))

#匿名函数还可以在列表的sort方法中进行元素的控制
li = ['1','3','7','4','2','10']
li.sort(key=lambda x:int(x))
print(li)

'''
文件操作
使用open()函数对文件进行操作
open(文件路径、访问模式、编码格式)
文件路径  绝对路径(全路径)
        相对路径(文件路径的部分路径,文件位置之间的内容可以用两个英文的点代替..)
访问模式
r只读read  r+ (可以对内容进行写入和读取的操作),前提是要注意光标的位置
w只写write  w+(先清空文件,可以同时写入和读取的操作)
a追加append  a+ (
b 二进制操作参数 :rb对二进制文件进行读取  wb 对二进制文件进行写入
'''
file  = open('D:\pythonproject\\firstproject\文件\python.txt','a+')
file.write('\n这是a+参数添加的内容')
file.seek(0)#调整光标在最前面
print(file.read())
file.close()

'''
对文件使用的功能
read() 读取
write () 写入
writelines() 写入多行内容 用中括号包裹,逗号分隔,如果需要分行则每一个内容前添加转义字符)
flush() 刷新当前文件状态
tell() 查看当前光标所在位置
seek()修改光标的位置  0 为光标放在最前面,(0,2)将光标放在文字最后

'''

'''
上下文管理器
with open()
跟使用变量进行文件操作相比,此方法全自动关闭文件,同时格式 看起来更加规范
'''

#例 with open()
with open('with_open_file.txt','w',encoding='utf-8')as f1:
    f1.write('这是上下文管理器写入的内容')
    f1.flush()#刷新
#    f1.close() 上下文管理器不用额外手动关闭文件

'''
文件的io流
可以在内存中创建临时文件,不会占用磁盘空间
使用方法:导入io包即可使用方法
使用import io
使用里面的两个方法:
StringIO :生成字符串临时文件
BytesIO :生成二进制临时文件

getvalue()  获取临时文件里保存的所有内容
'''
import io
str_file = io.StringIO()
str_file.write('这是写入字符串临时文件中的内容')
print(str_file.write('这是写入字符串临时文件中的内容'))
print(str_file.getvalue())

binary_file = io.BytesIO()#现在的这个变量为二进制临时文件,可以在里面保存内容
binary_file.write(b'this is binary data')

'''
文件目录操作
对于文件夹进行的操作,其中一些方法也可以适用 于单个文件
导入方法:导入OS包进行文件夹的操作
import os
使用方法
getcwd()获取当前所在文件夹的路径:输出的是一个绝对 路径
'''
import os
print(os.getcwd())
file = open('python.txt','r')  #同级的文件夹内可以不用路径
print(file.read())
file.close()

print(os.listdir)

'''
mkdir()  创建文件夹
'''
os.mkdir('mkdir创建的文件夹')
os.rename('mkdir创建的文件夹','新换的文件名')

'''

使用pip报错方法1 

可能是pip版本库太低

方法2 

因为直接使用pip install  库名时下载的是外网的一个内容 所以可能出现超时

网站有清华源镜像

‘’‘

如果环境变量没有配置好,第三方库是下载不了的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值