python基础语法的学习 1.标记编码方式碎碎念:这里本人只是简单总结了以下基础的语法,因为之前有java开发的经验,所以有的知识点就没写,如果想详细学习pyhton的话建议去看菜鸟教程。
# -*- coding: cp-1252 -*-2.输入输出
# 注释 print()3.标识符
标识符,采用字母数组下划线的方式实现,并且对大小写是敏感的
4.保留字['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']5.注释
# 单行注释 ''' 多行注释''' """ 多行注释 """6.缩进
python 不适用{}来表示数据,反而是通过缩进的方式实现相关的 *** 作
7.多行语句对于长的语句通常采用 /+的的方式实现 total = str1 + str2 + str3 + str48.数字类型
对于number类型主要有四种
- int 整形
- bool boolean类型
- float 类型 1.23,3E-2
- complex复数类型 1+2j,1.1+2.2j
python当中可以采用 ‘’’ ‘’’ 来定义字符串并且和"""""" 的形式是一样的都是可以表示多行字符串,对于单个字符串可以采用’’
转义字符 n,t
反转义字符 r.’ abcn '这个时候的转义字符是没有用的
python中没有字符类型,一个就是一个字符串
索引方式:
关于索引可以理解为从0开始,到-1结束
a = 'abctt' a[0:-1] #表示从头到尾 a[2:]#从3开始 a[2:5:2]# 从3-5,中间隔着两个 a+"你好" #字符串拼接10.空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
**记住:**空行也是程序代码的一部分。
11.输入input 表示输入
12.同一行多条语句对于同一行中的多条语句可以采用 ;分割
import sys; print("hello")13.对于多条语句
组成的代码组,可以采用:的形式来处理
14.输出#对于python来说主要有换行输出和不换行输出 print('hello') print('word') #不换行输出 print('hello',end=" ") print('word',end=" ")15.导入包的情况
- 全部导入 import sys
- 导入一部分 from sys import input
- 全部导入 from sys import *
# 对于赋值可以,连等于 a = b= c a ,b,c = 1,1.4,'root'2.标准数据类型
python中一共有六个基本的数据类型
数字,字符,元组,集合,列表,元组 前三个可变,后三个不可变
判断数据类型的方法,主要有两种方法
方法一:通过type type(1,int)
方法二:通过isInstance的方式 isinstance(A(),A)
区别:这里的type 仅仅是本身才是True,才是一样。isInstance中的子类也是True,是正确的
这里可以采用IS来判断类型,这里可以通过采用type,注意bool是int的子类吗,因此 true == 1
false = 0
创建一个数值的时候也是创建了一个对象,可以通过del的方式实现删除一个对象
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WI1MVjSB-1637495054431)(E:Python学习文档Snipaste_2021-11-17_23-22-05.png)]
2.列表列表的基本 *** 作和字符
list = ['a','b','c','d'] list[0:] list[1:5:2] # 于String不同的是,list中的数据是可以被修改的
常用的方法:
append()。pop()等方法
3.元组注意:元组中的数据是不能修改的,但是元组里面包含的元素是可以改的
tup = (1,2,3,4,5,6) tup[1:4]#和前面的工作是一样的,因此无需变换,但是可以更换相关的参数信息
注意:这说的 字符,元组,列表都是可以改变的元素,因此 *** 作的方式上面有很多相似的地方
4.集合这里的集合可以看成是多个类型数据的集合,并且set集合可以删除重读的元素。
5.字典字典相当于java中的Map的相关 *** 作,这里通过键值对来进行存储的
6.字符转换[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vB3T7txA-1637495054433)(E:Python学习文档Snipaste_2021-11-17_23-56-30.png)]
python的运算符这里采用python的基本运算符,这里的运算符,与java是一样的情况
# 定义数字 var =1 var2 = 2 #删除相关引用 del var del var,var2 # 转换数字类型 var3= 1.0 var4= int(var3)2.字符串
这里街介绍的功能与上面介绍的功能是一样的,因此这里采用字符串的相关的功能
#!/usr/bin/python3 a = "Hello" b = "Python" print("a + b 输出结果:", a + b) print("a * 2 输出结果:", a * 2) print("a[1] 输出结果:", a[1]) print("a[1:4] 输出结果:", a[1:4]) if( "H" in a) : print("H 在变量 a 中") else : print("H 不在变量 a 中") if( "M" not in a) : print("M 不在变量 a 中") else : print("M 在变量 a 中") print (r'n') print (R'n')
字符串输出
这里采用
print("我是 s% 今年 %d 岁" % ('zhao',10))
基本数值类型
后面添加的技术
f-string实际就是f{}
>>> name = 'Runoob' >>> f'Hello {name}' # 替换变量 'Hello Runoob' >>> f'{1+2}' # 使用表达式 '3' >>> w = {'name': 'Runoob', 'url': 'www.runoob.com'} >>> f'{w["name"]}: {w["url"]}' 'Runoob: www.runoob.com'
另外还有很多针对字符串的字符和函数等 *** 作,由于太多这里就不过多的进行展示
列表这里对列表的 *** 作不用过多的进行阐述,这里主要是和数据是一样的,能够删除和存储数据,这里的数据,下面对其进行展示
# 创建列表 list1 = [1,2,3,4,5] # 查询列表 list1[3] #添加元素 list1.append(6) # 删除列表元素 del list1[5] # 嵌套列表 a = [1,2,3] b = [4,5,6] c = [a,b]
常用函数
元组 这里的元组和列表的基本 *** 作是一样的,但是不可以改变数值[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-brLZEteD-1637495054442)(C:UsersxinyuAppDataRoamingTyporatypora-user-imagesimage-20211118211255304.png)]
字典删除一项数据
def1 = {1:'w' , 2:'e', 3:'t' } #删除特定元素 del def1['1'] # 清空字典 def1.clear() #删除字典 del def1
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sKp5rZ56-1637495054443)(C:UsersxinyuAppDataRoamingTyporatypora-user-imagesimage-20211118214007882.png)]
相关函数以及功能略
集合#针对集合的创建形式 {} , set() {'g','r','y','u'} a = set('hello') #对于集合函数有以下几种 a -b #a中包含b不包含 a |b a,b中都有的元素 a&b #ab中都包含的元素 a^b ab不同时包含的元素 #集合中添加元素 a.add('t') # 移除元素 a.remove()基本流程控制语句
这里对于基本流程控制语句,主要有以下几种,其中包括,if else,for while等,这里的用处就不细说了,同Java中用法一样的
函数- 必须参数
- 关键字参数,通过关键字来确定函数的类型
- 默认参数,在函数定义的期间通过,在传入参数的期间进行定义
- 不定长参数,主要是通过* args来传参数,来确定不定长的数值
- 匿名函数 ,这里的匿名函数,即lambed 函数来确定,sum = lambed arg1 , arg2 ; arg1+arg2
- return 返回值函数
- 在python3.8中可以采用 / 来强制确定函数的位置信息。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FM0ukp1C-1637495054443)(C:UsersxinyuAppDataRoamingTyporatypora-user-imagesimage-20211118231218003.png)]
程序块这里的程序块的信息,就是通过写一个python的相关的数据文件,来进行处理数据
- 导入模块(通过import ,from import import *的方式来实现的
- 返回,。以及模块化的相关内容
*__ name __ 属性
#这里表示程序的主程序,并且只有主程序能够运行 if __name__ == '__main__': print('程序自身在运行') else: print('我来自另一模块')
dir() 函数可以找到所有模块内部的定义的函数名称
标准模块,这里的标准块函数采用sys 可以使用常用的函数
包
包是一种管理 Python 模块命名空间的形式,采用"点模块名称"。
比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块 B 。
就好像使用模块的时候,你不用担心不同模块之间的全局变量相互影响一样,采用点模块名称这种形式也不用担心不同库之间的模块重名的情况。
这样不同的作者都可以提供 NumPy 模块,或者是 Python 图形库。
不妨假设你想设计一套统一处理声音文件和数据的模块(或者称之为一个"包")。
现存很多种不同的音频文件格式(基本上都是通过后缀名区分的,例如: .wav,:file:.aiff,:file:.au,),所以你需要有一组不断增加的模块,用来在不同的格式之间转换。
并且针对这些音频数据,还有很多不同的 *** 作(比如混音,添加回声,增加均衡器功能,创建人造立体声效果),所以你还需要一组怎么也写不完的模块来处理这些 *** 作。
sound/ 顶层包 __init__.py 初始化 sound 包 formats/ 文件格式转换子包 __init__.py wavread.py wavwrite.py aiffread.py aiffwrite.py auread.py auwrite.py ... effects/ 声音效果子包 __init__.py echo.py surround.py reverse.py ... filters/ filters 子包 __init__.py equalizer.py vocoder.py karaoke.py ...
在导入一个包的时候,Python 会根据 sys.path 中的目录来寻找这个包中包含的子目录。
目录只有包含一个叫做 init.py 的文件才会被认作是一个包,主要是为了避免一些滥俗的名字(比如叫做 string)不小心的影响搜索路径中的有效模块。
最简单的情况,放一个空的 :file:init.py就可以了。当然这个文件中也可以包含一些初始化代码或者为(将在后面介绍的) __all__变量赋值。
用户可以每次只导入一个包里面的特定模块,比如:
#导入包的数据 import sound.effects.echo
从一个包中导入全部数据 这里可以采用 from sound.effects.echo
输入输出Python两种输出值的方式:
-
表达式语句
-
print() 函数。
-
使用文件对象的 write() 方法,标准输出文件可以用 sys.stdout 引用。
如果你希望输出的形式更加多样,可以使用 str.format() 函数来格式化输出值。
如果你希望将输出的值转成字符串,可以使用 repr() 或 str() 函数来实现。
- str(): 函数返回一个用户易读的表达形式。
- repr(): 产生一个解释器易读的表达形式。
>>> s = 'Hello, Runoob' >>> str(s) 'Hello, Runoob' >>> repr(s) "'Hello, Runoob'" >>> str(1/7) '0.14285714285714285' >>> x = 10 * 3.25 >>> y = 200 * 200 >>> s = 'x 的值为: ' + repr(x) + ', y 的值为:' + repr(y) + '...' >>> print(s) x 的值为: 32.5, y 的值为:40000... >>> # repr() 函数可以转义字符串中的特殊字符 ... hello = 'hello, runoobn' >>> hellos = repr(hello) >>> print(hellos) 'hello, runoobn' >>> # repr() 的参数可以是 Python 的任何对象 ... repr((x, y, ('Google', 'Runoob'))) "(32.5, 40000, ('Google', 'Runoob'))"
for x in range(1, 11): ... print('{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x))
format是常用的数字化字符形式
从键盘读入主要采用input的函数
读和写文件主要采用open(filename ,mode),这里的filename代表文件的名字,这里的mode代表模式
r,w,a 代表相关的 *** 作以及相关的权限
文件对象读取的方法通过
read代表全部读取
#!/usr/bin/python3 # 打开一个文件 f = open("/tmp/foo.txt", "r") str = f.read() print(str) # 关闭打开的文件 f.close()
readline()代表读取一行数据
str = f.readLine()
另外可以通过for的方式进行迭代
for line in f: print(line,end = " ") f.close()write模块
这里可以write写函数
close表示关闭文件 OSos 模块提供了非常丰富的方法用来处理文件和目录。常用的方法如下表所示:
python的错误以及异常-
try–except :这里的异常需要明确的解释以下,对于try中出现的异常情况,如果出现了与except 之后名称相符的异常那么就抛出,如果出现的异常和其不相符的话,那么就直接抛给上层try语句
-
try --except --else 组合:这里的else表示没有异常时候执行的代码
-
try --except – else – finally 这里对于finally来说,是代码无论执行不执行都会去执行的代码
使用raise来定于
X= 10 if x>5: raise Exception("数据的值不能超过5")自动定义异常
def divide(x, y): try: result = x / y except ZeroDivisionError: print("division by zero!") else: print("result is", result) finally: print("executing finally clause") >>> divide(2, 1) result is 2.0 executing finally clause >>> divide(2, 0) division by zero! executing finally clause >>> divide("2", "1") executing finally clause Traceback (most recent call last): File "面向对象 类定义:", line 1, in ? File " ", line 3, in divide TypeError: unsupported operand type(s) for /: 'str' and 'str'
class ClassName:类对象. . .
类对象支持两种 *** 作:属性引用和实例化。
属性引用使用和 Python 中所有的属性引用一样的标准语法:obj.name。
类对象创建后,类命名空间中所有的命名都是有效属性名。所以如果类定义是这样:
#!/usr/bin/python3 class MyClass: """一个简单的类实例""" i = 12345 def f(self): return 'hello world' # 实例化类 x = MyClass() # 访问类的属性和方法 print("MyClass 类的属性 i 为:", x.i) print("MyClass 类的方法 f 输出为:", x.f())
类有一个名为 init() 的特殊方法(构造方法),该方法在类实例化时会自动调用,像下面这样:
def __init__(self): self.data = []
类定义了 init() 方法,类的实例化 *** 作会自动调用 init() 方法。如下实例化类 MyClass,对应的 init() 方法就会被调用:
x = MyClass()
当然, init() 方法可以有参数,参数通过 init() 传递到类的实例化 *** 作上。例如:
#!/usr/bin/python3 class Complex: def __init__(self, realpart, imagpart): self.r = realpart self.i = imagpart x = Complex(3.0, -4.5) print(x.r, x.i) # 输出结果:3.0 -4.5
hello world’
实例化类x = MyClass()
访问类的属性和方法print(“MyClass 类的属性 i 为:”, x.i)
print(“MyClass 类的方法 f 输出为:”, x.f())
类有一个名为 __init__() 的特殊方法(**构造方法**),该方法在类实例化时会自动调用,像下面这样:
def init(self):
self.data = []
类定义了 __init__() 方法,类的实例化 *** 作会自动调用 __init__() 方法。如下实例化类 MyClass,对应的 __init__() 方法就会被调用:
x = MyClass()
当然, __init__() 方法可以有参数,参数通过 __init__() 传递到类的实例化 *** 作上。例如: ~~~ #!/usr/bin/python3 class Complex: def __init__(self, realpart, imagpart): self.r = realpart self.i = imagpart x = Complex(3.0, -4.5) print(x.r, x.i) # 输出结果:3.0 -4.5 ~~~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)