热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python3学习笔记-语法

这两天看完了Python3的语法部分,想转往人工智能方面发展发展,只有这个的话还不足以进行开发,还得学习更多其他知识,不知道各位有没有转入人工智能的相关经验可以分享一下?好,先专注于

    这两天看完了Python3的语法部分,想转往人工智能方面发展发展,只有这个的话还不足以进行开发,还得学习更多其他知识,不知道各位有没有转入人工智能的相关经验可以分享一下?

好,先专注于做好目前的正事儿,整理一下Python3的语法部分!

1.注释

        单行注释: #注释内容

        多行注释: '''注释内容'''   或者    """注释内容"""

2.缩进

        Python中不是使用{}来区分一个块的,而是通过一个tab键的缩进来区分块的,同一缩进级别的会被认为是一个块,例如:

        当一个缩进都没有时,缩进等级 = 0,每多一个tab缩进,缩进等级+1,比如下面代码当中的if这一行,缩进等级=0,他的下一行多了一个tab的缩进,缩进等级=1,缩进等级大的,归属于缩进等级小的的块.

        

3.多行语句

        除了{},[],()或者多行注释内部的语句外,要想把一条语句进行换行,需要使用反斜杠(\)来链接

4.字符串

  • 单引号和双引号使用完全相同。
  • 使用三引号('''或""")可以指定一个多行字符串。
  • 转义符 '\'
  • 反斜杠可以用来转义,使用r可以让反斜杠不发生转义。。 如 r"this is a line with \n" 则\n会显示,并不是换行。
  • 按字面意义级联字符串,如"this " "is " "string"会被自动转换为this is string。
  • 字符串可以用 + 运算符连接在一起,用 * 运算符重复。
  • 字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
  • 不能改变。
  • 字符串的截取的语法格式如下:变量[头下标:尾下标]
s = 'sfsadf' #等价于s1s1 = "sfsadf"
s2 = """sfsadf""" #多行字符串
s3 = r"不转义\n" # \不进行转义
s3[-1] #最后一位 n
s3[0] #第一位 不

字符串对象提供了许多有用的方法,可以通过 help(str)查看,更多参考下面地址:

点击这里

切片

切片其实就是取其中某一部分,切片的对象可以是任何序列 列表 元组 字符串等,切片其实就是下标([])操作,它的格式大概如下

变量名[下标1 : 下标2 : 步长

其有几个变种,下标2和步长都是可选的

list[:-1] #从第一位开始,可以省略不写,等价于list[0:-1],取到倒数第二位list[2:] #从第三位开始取到最后list[:] #直接复制一份list[::-1] #翻转

5.导入模块

在 python 用 import 或者 from...import 来导入相应的模块。

将整个模块(somemodule)导入,格式为: import somemodule

从某个模块中导入某个函数,格式为: from somemodule import somefunction

从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc

将某个模块中的全部函数导入,格式为: from somemodule import *

关于模块的更多说明可以点击这里

6.变量

在Python中,变量不用定义,但是在使用之前必须赋值,只有赋值之后,一个变量才会被创建,Python中的变量存储的都是指向某个内存中的对象,没有类型,所以在使用时需要注意.变量可以以如下格式进行:

创建
vir = 100 #变量赋值并创建

多个变量一起创建

#可以如下这样,相当于a=1 b=2 c=3a,b,c = 1,2,3#也可以如下这样,相当于x=10 y=10 z=10x = y = z = 10
删除

不像其他语言,Python中提供了专门的关键字del用于删除对象,如果被删除的是变量,再次引用变量将会报错,同时del还可以用于删除列表 元组 字典等当中的元素

#删除单个del var1#删除多个del var1,var2,var3

7.列表,元组,集合,字典

列表

列表是用一对[]包裹起来的,用逗号,分开的一组数据,是可以被索引的数据,创建一个列表:

list = ["asf",111,100.2] #创建一个包含3个元素的列表list1 = [] #创建一个空列表

除了与字符串相似的操作以外,列表还为我们提供了许多方法,用于我们更方便的使用,可以通过 help(list)进行查看

更多操作点击这里

元组(Tuple)

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号(())里,元素之间用逗号隔开。下面是创建一个元组的代码:

tup = ("sfs",1231,123.123) #有3个元素的元组tup1 = ("sddf",)#一个元素的需要在后面加逗号tup2 = () #空元组

他的使用与字符串极其相似,操作什么的都是一致的,更多操作点击这里

集合(Set)

集合(set)是一个无序不重复元素的序列。基本功能是进行成员关系测试和删除重复元素。创建集合有下面几种情况:

创建
set1 = {"sdf",123,123.123}set2 = set("asf",123,123.123)set3 = set() #空集合不能用{}创建,{}是创建空字典的
对于它的更多操作我所看到的资料里面并没有,只能通过查看Api的方式查看更多了


字典

字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。创建一个字典如下:

dict0 = {} #创建空的dict1 = {"key1":"value1","key2":"value2"}dict2 = dict(key1='value1',key2='value2')#增加 修改dict1["key3"] = "value3" #有就修改,没有就增加#删除del dict1["key1"]#查询has = "keyn" in dict1

对于字典的键有两点需要记住,

  1. 键是唯一的,如果多次设置同一个键的值,只会记住最后一个
  2. 键必须的不可变的

字典的更多操作点击这里


8.条件控制和循环

if语句

格式如下:

if condition_1:    statement_block_1elif condition_2:    statement_block_2else:    statement_block_3
while循环

格式如下:

while 判断条件:    执行语句

在还可以跟上else子句来在循环执行完成后执行

for语句

格式如下:

for  in :    else:    
break,continue和pass

break用于退出当前循环或语句块,

continue用于跳过当次循环

pass用于占位,保持程序的完整性,其什么都不做

9.函数

定义格式:

def 函数名(参数列表):    函数体#实例def func(a,b):    print(a+b)

从定义和使用上会有许多种变体,看看下面的代码

#定义不带参数 不带返回值的函数,默认会返回nonedef fun1():    print("hello")#使用fun1()#定义带参数 不带返回值的函数def fun2(a,b)    print(a+b)#使用fun2(3,5)#定义不带参数 带返回值的函数def fun3()    return "hello"#使用s = fun3();#定义带参数 带返回值的函数def fun4(r)    return 3.14 * r**2#使用print(fun4(6))#有默认值参数的函数def fun5(a = 1 ,b,c)    return (b + c) **a#在使用的时候我们可以不传默认参数fun5(5,6)#也可以以关键字的形式传递参数fun5(c=111,b=100)#带可变参数的函数,注意,可变参数必须放在最后def fun6(*agrs)    for i in agrs:       print(i)#调用fun6(1,2,3,4)
lambda实现匿名函数
#格式lambda [arg1 [,arg2,.....argn]]:expression#实例sum = lambda arg1, arg2: arg1 + arg2;
变量的作用域

关于变量的作用域有几个点需要注意一下,

1.只要是在函数中创建的变量,在函数中都能访问,比如:

def fun():    for i in range(0,10):        if(i == 0):            sum = 0        sum += i #在if外面是可以访问的    return sum #在for外面也是可以访问的

2.修改全局变量需要使用关键字global

num = 1def fun1():    global num  # 需要使用 global 关键字声明    print(num)     num = 123    print(num)

3.修改嵌套作用域的变量需要使用关键字nonlocal

def outer():    num = 10    def inner():        nonlocal num   # nonlocal关键字声明        num = 100        print(num)    inner()    print(num)

10.面向对象

类(class)

一个类就表示一种类型,和String Int Float这些类型一样,都是一种类型,而String Int Float这些类型是系统定义好的,那么我们其实也可以自己定义类型的,定义一个类的格式如下:

class ClassName:        .    .    .    

实例:

class Person:    pass

类对象

p = Person()

代码

"""定义一个基类Person,它创建了一个类变量 clazzName ,引用方式是: 类名.类变量名  如:Person.clazzName它实现了构造方法init在init中创建了两个对象变量 name age,,在类内部一般self表示当前的对象,引用方式是: 对象名.对象变量名 如 self.name定义了一个speak方法,用于打印自己的信息"""class Person:    clazzName = "Person"  #类变量    #构造方法    def __init__(self,name,age):        self.name = name #创建一个对象变量name,        self.age = age        #类变量需要以 类名.成员名 的形式来访问        # print("类名是:" + Person.clazzName)    def speak(self):        #对象变量需要以 self.变量名 的形式来访问        print("我是一个{},名字是{},{}岁".format(Person.clazzName,self.name,self.age))#用于多继承的基类,只为演示多继承而存在class Action:    passclass Student(Person,Action):    """ 演示多继承的子类Student,它继承自Person和Action,并有自己的构造方法 """ """以 __xxx__ 格式命名的方法或者变量表示类的专有方法或变量"""    def __init__(self,name,age,weight):        #这里需要显示的调用父类的构造方法,Action由于没有构造可以不调用        Person.__init__(self,name,age)        #创建一个私有对象变量,只能在类内部使用        self.__weight = weight        #改变父类Person的类变量的值        Person.clazzName = "Student"    """重写父类方法"""    def speak(self):        super(Student,self).speak() #调用父类被覆盖的方法        print(self.__toString())    """私有方法需要在方法名前面加两条下划线,只能在类内部使用,在外边调用会异常"""    def __toString(self):        return "我是一个{},名字是{},{}岁 体重{}".format(Person.clazzName,self.name,self.age,self.__weight)#由于init方法增加了两个必要参数,在创建对象的时候需要传入进去p = Student("李四",30,80)p.speak()

通过代码我们可以看到下面几条规则

  1. 类的定义格式是: class 类名:
  2. 类的继承格式是: class 类名(基类名1,基类名2,...):
  3. 类的类变量直接写在类中,以 类名.变量名 方式访问
  4. 类的对象变量通常写在构造中, 在类内部访问: self.变量名  在类外部: 对象名.变量名
  5. 类的方法与普通方法区别在于第一个参数必须是self,在调用时可以不传,因为 对象名.方法名() 这种格式就会转化成 方法名(对象名)
  6. 私有方法和私有变量 只需要在名称前面加两条下划线就可以了 如: __weight  __toString() ,并且只能在内内部使用
  7. __xxx__ 格式命名的方法都是类的专有方法,如 __init__() ,他们都有其特殊的含义
  8. 如果父类有带参的构造方法时,子类在实现构造方法时,必须显示的调用父类的构造方法,格式是: super(类名,对象名).方法名()
  9. 关于方法的默认参数和可变参数等属性都与前面的函数一直


推荐阅读
  • python教程分享python人物视频背景替换实现虚拟空间穿梭
    引言近期网上这位卖蜂蜜的小伙鬼畜挺火的,大家质疑背景造假,这里我就带着大家实现“背景造假”(ps:原视频小伙是在真实场景拍摄的)准备工作在实现该功能之前,我 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 这篇文章给大家分享的是有关python3怎样中文转换编码的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。示例:处理 ... [详细]
  • python教程分享Python获取时光网电影数据的实例代码
    一、前言有时候觉得电影真是人类有史以来最伟大的发明,我喜欢看电影,看电影可以让我们增长见闻,学习知识。从某种角度上而言,电影凭借自身独有的魅力大大延长了人类的”寿命&r ... [详细]
  • python教程分享POC漏洞批量验证程序Python脚本编写
    编写目的批量验证poc,python代码练习。需求分析1、poc尽可能简单。2、多线程。3、联动fofa获取目标。4、随机请求头.实现过程脚本分为三个模块,获取poc及目标、多线程 ... [详细]
  • 正常情况下,我们完成一件事情的过程中,可能会存在多种条件限制如:用户去ATM机取钱->输入取款密码->输入正确,取钱成功|输入错误,退卡。这样的情况下,需要根据不同的条件,执行不同的逻 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 浅谈Python3中打开文件的方式(With open)
    浅谈Python3中打开文件的方式(With open)-目录0.背景知识1.常规方式:读取文件-----open()2.推荐方式:读取文件-----WithOpen1).读取方式 ... [详细]
  • Python3怎么获取文件属性
    这篇文章给大家分享的是有关Python3怎么获取文件属性的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。os.stat(path ... [详细]
  • Python Flask学习之安装SQL,python3,Pycharm(网上下载安装即可)
    1,下载时更改pypi源。可以额外安装虚拟化环境:pipinstall-ihttp:pypi.douban.comsimple--trusted-hos ... [详细]
  • 关于ModuleNotFoundError: No module named 'urllib3'解决
    1.执行代码时报错错误信息:ModuleNotFoundError:Nomodulenamed'urllib3'错误截图:2.解决办法1通过如下命令安装urllib3模块:pipins ... [详细]
  • importurllib.requestimportos#用于获取煎蛋网页面的函数defurl_open(url):requrllib.request.Request(url) ... [详细]
  • Python3从入门到放弃最后更新时间:2017-09-2503:05目录:第一章:HelloWorld第二章:输入和输出附录:常用的Python内置函数第一章:Hell ... [详细]
author-avatar
落陌_漾吇
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有