python学习笔记

python笔记

输出小技巧

print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))
print("大家好,我叫%s"%name)

获取当前路径

import os
 
print os.getcwd()#获得当前工作目录
 
print os.path.abspath('.')#获得当前工作目录
 
print os.path.abspath('..')#获得当前工作目录的父目录
 
print os.path.abspath(os.curdir)#获得当前工作目录

遍历文件夹下的文件

import os


# 遍历文件夹
def walkFile(file):
    for root, dirs, files in os.walk(file):

        # root 表示当前正在访问的文件夹路径
        # dirs 表示该文件夹下的子目录名list
        # files 表示该文件夹下的文件list

        # 遍历文件
        for f in files:
            print(os.path.join(root, f))

        # 遍历所有的文件夹
        for d in dirs:
            print(os.path.join(root, d))


def main():
    walkFile("f:/ostest/")


if __name__ == '__main__':
    main()

迭代对象和迭代器

iterable&&iterator

总结

凡是可作用于for循环的对象都是Iterable类型;
凡是可用作next()函数的对象都是Iterator类型,它表示一个惰性计算的序列。
集合数据类型如list,dict,str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。

pytorch之dataloader

dataloader

总结

DataLoader本质上就是一个iterable(跟python的内置类型list等一样),并利用多进程来加速batch data的处理,使用yield来使用有限的内存

迭代的返回值由collate_fn决定

类中self与cls的区别

python中cls代表的是类的本身,相对应的self则是类的一个实例对象。
class Person(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age
        print('self:', self)

    # 定义一个build方法,返回一个person实例对象,这个方法等价于Person()。
    @classmethod
    def build(cls):
        # cls()等于Person()
        p = cls("Tom", 18)
        print('cls:', cls)
        return p


if __name__ == '__main__':
    person = Person.build()
    print(person, person.name, person.age)

函数装饰器@

#python中@别是函数装饰器,它能够实现函数的快速嵌套
#funA 作为装饰器函数
def funA(fn):
    #...
    fn() # 执行传入的fn参数
    #...
    return '...'

@funA
def funB():
    #...
#上面的函数等价与
def funA(fn):
    #...
    fn() # 执行传入的fn参数
    #...
    return '...'

def funB():
    #...
funB = funA(funB)

遍历文件夹中的文件

import os
for root, dirs, files in os.walk(r"campus", topdown=False):
    for name in files:
        print(os.path.join(root, name))
#返回值root是输入的文件夹的路径,dirs是root文件下的子文件夹,files是root下的子文件

eval()

eval() 函数用来执行一个字符串表达式,并返回表达式的值。
>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值