python基础与速成

python学习中的两大工具函数

dir():打开查看工具箱及分支

dir(torch)
dir(torch.cuda)

help():查看帮助

help(torch.cuda.is_available)  # 注意在此要省去()

数据类型

  • 数字(number):用于存储数值,属于不可变数据类型。
  • 字符串(string):可以使用引号 ( ’ 或 " ) 来创建字符串,属于不可变数据类型。关于单引号、双引号和三引号的使用详见网站
  • 元组(tuple):使用小括号添加元素,并使用逗号隔开,元组的元素不能修改,属于不可变数据类型。
  • 列表(list):使用方括号添加元素,并使用逗号隔开,列表的数据项不需要具有相同的类型。
  • 字典(dictionary) :使用大括号添加元素,字典的每个键值 key:value 对用冒号 : 分割,每个键值对用逗号隔开,它属于可变容器模型,且可存储任意类型对象。

语句

  • 循环语句

while循环

while 判断条件:
    执行语句

for循环

for 元素或下标 in 序列:
   执行语句
  • 条件语句
if 判断条件:
    执行语句
else:
    执行语句

函数

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
def functionname( parameters ):
   "函数_文档字符串"
   function_suite
   return [expression]

面向对象编程

self代表类的实例。

__foo__: 定义的是特殊方法,一般是系统定义名字 ,类似 __init__() 之类的。

_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *

__foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。

__init__():类的构造函数。

__del__():类的析构函数。

__call__():可以使得Python中类的实例(对象)可以被当做函数对待。假设x是X类的一个实例。那么调用x.__call__(1,2)等同于调用x(1,2),实例本身在这里相当于一个函数。注意,若在类的构造函数__init__()中初始化了实例内部成员的值后,__call__()仍可以改变实例的内部成员的值。

__getitem__():在类中定义了这个__getitem__() 方法,那么它的实例对象(假定为p),可以像这样
p[key] 取值,当实例对象做p[key] 运算时,会调用类中的方法__getitem__()

杂记

  1. 有时可以用-1表示根据其他设置,自动进行计算。
  2. if __name__ == '__main__'的运行原理:
    • 当运行的是本文件时,__name__ == '__main__'为True,执行接下来的代码;
    • 当作为模块被其他文件import时,__name__ == '文件名’为False,不执行接下来的代码。
  3. 当要使函数接收元组或字典形式的参数的时候,有一种特殊的方法,它分别使用*和**前缀 。这种方法在函数需要获取可变数量的参数的时候特别有用。
    [1] 由于在args变量前有*前缀 ,所有多余的函数参数都会作为一个元组存储在args中 。如果使用的是**前缀 ,多余的参数则会被认为是一个字典的健/值对 。
    [2] 对于def func(*args):,*args表示把传进来的位置参数存储在tuple(元组)args里面。例如,调用func(1, 2, 3) ,args就表示(1, 2, 3)这个元组 。
    [3] 对于def func(**args):,**args表示把参数作为字典的健-值对存储在dict(字典)args里面。例如,调用func(a=‘I’, b=‘am’, c=‘wcdj’) ,args就表示{‘a’:‘I’, ‘b’:‘am’, ‘c’:‘wcdj’}这个字典 。
    4. Python中的@修饰符,更加详细内容可见网站1网站2
def funcA(A):
    print("function A")
    print(A)
 
def funcB(B):
    print(B(2))
    print("function B")
 
@funcA
@funcB
def funcC(c):
    print("function C")
    return c**2

执行结果:

function C
4
function B
function A
None

解释:首先执行funcB(funcC),此时形参B的值为funC;其次执行funA(funB(funC())),此时A为None没有发生参数传递。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI Player

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值