概述
哦豁,小李学python,如果有发现错误的地方,欢迎指正嗷????
os搞得还不是很行,还会继续努力的
类和对象还没搞完,笔记也就有亿点凌乱,还要继续学习的
小李冲冲冲~~~~
<( ̄︶ ̄)↗[GO!]
基本语法
- 为转义字符,r可以让他不转义,eg r"this is a line with n" 则 n 会显示,并不是换行
r和f都出现的时候谁在前都可 - Python 可以同一行显示多条语句,方法是用分号 ;
- python代码块不使用{},而是用缩进,对缩进要求严格
- python中以换行作为语句的结束符
可以用多行连接符()来将一个语句写在多行,在这行最后加一个,即可和下一行连
语句中包含()[]{}可以不用直接换行 - 引号:三引号的形式’‘‘abc’’'或"““abc””",三引号中的部分可以换行
- 单行注释# 多行注释 三个单引号或三个多引号
- 字符串可以用+连接起来,也可以用 * 表示重复 print(“hello worldn”*2)
- 字符串:两种索引方式,从左往右,从0开始;从右向左,-1开始;
字符串的截取:变量[头下标:尾下标:步长] 尾下表不包括,
print(str[1:5:2]) # 输出从第二个开始到第五个且每隔一个的字符(步长为2) - print(‘abc’,‘cbd’)是可以的
- print(a,end=‘’)实现不换行,''内可以有其他字符,如空格!@#¥等
- 大驼峰命名法:每一个单词的首字母都大写
小驼峰命名法:第一个单词的首字母小写,后面的首字母大写 - 控制浮点数输出位数print(round(a,4)),保留a的四位小数
- python输出一般自动换行,利用end=‘’,让他不换行
eg.print(‘My pets’,end=‘’)就可以不换行,''之间可以换成别的字符 - 注意PEP 8 格式指南
变量和运算符
####pycharm中运行快捷键fn+shift+F10
- 在Python中为一个变量赋值的同时就声明了该变量,该变量的数据类型就是赋值数据所属的类型,该变量还可以接收其他类型的数据。
- 代码注释 #
- 修改字符串字母大小
name = "ada lovelace" print(name.title())
- 结果为Ada Lovelace
-整体大小写 .lower .upper
- 要在字符串中插入变量的值,可在前引号前加上字母f,再将要插入的变量放在花括号内。这样,当Python显示字符串时,将把每个变量都替换为其值。
- 格式 f"hello {a}" -> 就是将a的值放在要输出的地方(类c语言的%)
- eg.
famous_person=input() message=f'{famous_person} once said, “A person who never made a mistake never tried anything new."' print(message)
- f放在‘’外面!
- print(‘ ’,变量,‘’)和print(f‘ {变量} ’)
- 添加空白
- 用制表符t(四个空格),换行符n
- 删除用户输入的开头/结尾的空白(以比较字符串是否相等)
- 保证结尾没有空白.rstrip()
- 剔除开头的空白.lstrip()
- 同时剔除字符串两边的空白.strip()
- 输入
- x=input()
- 命名字符串时要加“” eg name=“abc n abc"
- python中任意两数相除,结果总是浮点数,不管这两个数的类型
- 在其他任何运算中,如果一个操作数是整数,另一个操作数是浮点数,结果也总是浮点数;无论是哪种运算,只要有操作数是浮点数,Python默认得到的总是浮点数,即便结果原本为整数也是如此
- 数中的下划线:书写很大的数时,可使用下划线将其中的数字分组,使其更清晰易读;当你打印这种使用下划线定义的数时,Python不会打印其中的下划线
- 同时给多个变量赋值:可以x,y,z=1,2,3 只要数量对应就行,可以a=b=c=1
- 常量:在python中没有单独定义常量的,可用全大写字母进行区分
- python打印时无需单独换行,两个print不在一行就换行输出
- 变量不需要声明每个变量在使用前都必须赋值
- Python3 中有六个标准的数据类型
Number(数字)String(字符串)List(列表)Tuple(元组)Set(集合)Dictionary(字典)
Python3 的六个标准数据类型中:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合) - 复数j或J不用定义,但前面的系数不能省,否则会默认j是变量
复数也可以表示成complex(a,b),其中a b都是浮点数 - type(),isinstant()可以查询数据类型
type()不会认为子类是一种父类类型,isinstance()会认为子类是一种父类类型
class A: pass class B(A): #类class B继承类class A 的方法和属性 pass isinstance(A(), A) # returns True type(A()) == A # returns True isinstance(B(), A) # returns True type(B()) == A # returns False
- 数值的除法包含两个运算符:/ 返回一个浮点数(不管除数和被除数是不是浮点数),// 返回一个整数
- 加号 + 是列表连接运算符,星号 * 是重复操作
- 隐式转化:无需人为干涉 低转高 如数学运算的时候
- 显式类型转化:int(),float(),str()等预定义函数
注意:python类型转化int(),c 用(int)expression - 海象运算符 #新加
- 按位或| 按位取反~ 按位异或 (相同为0,不同为1)
- 成员运算符
- 身份运算符(比较两个对象的存储单元):
x is y, 类似 id(x) == id(y)
x is not y , 类似 id(x) != id(y)
id() 函数用于获取对象内存地址 - 比较运算符:输出结果是True 或False(而非0 1)
eg.a=12;b=13;print(a==b)
结果是False - python中取整//,两道斜杠
- a=input() a的类型默认str;
转化可a=int(input()) - python 中无自增增减即i++ i–
列表
- 形式:名称=[元素, ,] 注意:中括号,逗号
列表的数据项不需要具有相同的类型
当元素是字符时,注意’元素’或’‘元素’’ - 打印时,print(名称) -> 连带中括号一起打印
print(名称[x])(x属于0~数量-1) 结果是第x+1个元素
也可以这样使用 print(名称[x].title()) - 当在不知道列表长度时,要访问倒数几位,可以 名称[-1]指倒数第一个列表元素
- 修改元素的值:指出列表名和索引=改后的元素
- 定义空列表:列表名[]
- 添加元素
- 在结尾添加元素:列表名.append(‘’) (另起一行即可,不能列表=列表.append)即可在最后添加元素,一次只能添加一个元素
- 在中间添加元素:列表名.insert(a,‘’) 即将’'插到 [a],后面的顺位向后移
- 删除元素
- del():另起一行 del a[2] 即可删除该元素,后续元素向前移
- pop():
* 若()中空着用于删除列表中的最后一个;
可以光删除 eg.a.pop()
也可以将删除的元素赋给另一个值,eg.b=a.pop()- 在()中指定要删除元素的索引可以删除任意位置的元素
eg.a.pop(0) - 若从列表中删除元素,且不再使用,用del a[0]
- 若删除之后还要使用,用b=a.pop(0)
- remove():若不知道元素索引,只是知道它的值
eg. a.remove(‘0’)
删除后可以继续使用:在删之前把元素赋值给一个变量,然后使用变量删除列表中值,后续用变量来访问
!注意! remove() 只删除第一个指定的值。如果要删除的值可能在列表中
出现多次,就需要使用循环来确保将每个值都删除
- 在()中指定要删除元素的索引可以删除任意位置的元素
-
访问列表,可以a[2:7],意思时从a[2]连续访问到a[6];
也可以使用复数索引值来截取列表,eg.a[1:-2]从a[1]访问到a[-3]
a[1:] 意味着从a[1]访问到最后 -
列表脚本操作符:
- len(list) -> 列表长度
- list=list1+list2 -> 列表组合(拼接)
- print(list*2) -> 列表重复
- eg.‘’‘list=[1,2,]
print(list*2)’‘’ 结果[1,2,1,2]
- eg.‘’‘list=[1,2,]
- 3 in [1, 2, 3] True 判断元素是否存在于列表中
- for x in [1, 2, 3]: print(x, end=" ") 1 2 3 迭代
-
嵌套列表(形式有点像二维数组)
‘’‘a = [‘a’, ‘b’, ‘c’]
n = [1, 2, 3]
x = [a, n]
print(x)
[[‘a’, ‘b’, ‘c’], [1, 2, 3]]
print( x[0])
[‘a’, ‘b’, ‘c’]
print(x[0][1])
‘b’’‘’ -
列表的比较:
‘’‘import operator
b=[2,3]
c=[2,3]
print(operator.eq(b,c))’‘’
True
注意! 需要引入operator -
max(list)返回列表元素最大值
min(list)返回列表元素最小值
list.index(obj)从列表中找出某个值第一个匹配项的索引位置
list.count(obj)统计某个元素obj在列表中出现的次数
list.extend(seq)在列表末尾一次性追加另一个序列中的多个值 eg.list.extend([0,0,0]) 就相当于列表拼接
list.clear() 清空列表 -
列表排序
- list.sort()对列表永久排序,不可恢复,开头字母 大写>小写;数字012顺序排
- sorted()对列表临时排序,eg.print(sorted(list))
- 还可以按照相反顺序排,list.sort(reverse=Ture) sorted(list,reverse=True)
- 倒着打印列表:list.reverse() (也是永久性的,但再来一次就恢复了)
不能直接print(list.reverse()),这样结果是None,即reverse()的无返回值,所以倒着打印就要分两行
- 历遍列表’‘’
a=[‘mom’,‘dad’,‘grandpa’,‘grandma’]
for i in a:
print(i)‘’’
mom
dad
grandpa
grandma - 数值列表
- for value in range(1, 5):
print(value)
结果1
2
3
4
不含5
range(6)从0到5 - 直接print(range(1,4)),结果就是range(1,4)
想要创建数字列表,用list()函数,print(list(range(5))),结果就是[0,1,2,3,4] - python中表示乘方,将前10个整数的平方加入一个列表中:‘’’
squares = []
for value in range(1,11):
squares.append(value2)
print(squares)‘’’ - max(list)返回列表元素最大值
min(list)返回列表元素最小值
sum(list)返回数字列表之和
- 列表解析:将for 循环和创建新元素的代码合并成一行,并自动附加新元素eg.squares = [value**2 for value in range(1, 11)]
print(squares)
注意! 这里for的末尾没有: - 切片:处理列表的部分元素
print(players[0,3])-> 打印该列表的一个切片 0,1,2
a[:3]没有起始索引,从头开始 **冒号不能掉 **
a[2:]没有结束索引,到最后
要打印最后三个元素,a[-3:],即使列表长度改变,依然有效
也可以指定第三个值a[1,4,2],即a[1],a[3] - 复制列表:
- 用切片,b=a[:],将一个列表的副本赋给另一个变量,从此之后对这两个列表的分别操作就没有关联了,个弄个的;
- 也可以用b=a.copy(),和切片的效果一样
- 若不用切片,b=a,是将a这个列表赋给b,而不是a的副本,之后对他们的分别操作是有联系的,二者始终相等
元组(tuple)
- 定义元组:元组看起来很像列表,但使用圆括号而非中括号来标识。定义元组后,就可使用索引来访问其元素,就像访问列表元素一样。
- 元组的各元素是不允许修改的,若试图修改则会报错
- 严格地说,元组是由逗号标识的,圆括号只是让元组看起来更整洁、更清晰。
- 若要定义只包含一个元素的元组,必须在这个元素后加上逗号eg.a=(‘love’,)
- 元组也可以用for循环历遍所有元素,用下标索引访问print ("tup2[1:5]: ", tup2[1:5])
- 虽然不能修改元组的元素,但可以重新定义整个元组
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组 - 可以用list()将元组转化成列表
eg.list1=list(a),这样可以对list1进行一系列操作 - 可以用tuple(list)将列表转成元组
- 元组也可以len(),连接,重复,判断,max(),min()
if语句
- 没有 ? : ,但是可以max=a if a>b else b
- if-elif-else
- 没有{},要用缩进来表示相同层次,也没有switch-case语句
循环语句
- while
- while <>: 注意缩进
- 也有while else语句
- for
- for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串。
- for循环的一般格式如下:
for in :
else:
- 如果要遍历数字序列,使用range()
- range(5)表示012345
- range(5,9)表示5678《前闭后开
- 也可以设置步长range(0,10,3)表示0369
- 步长也可以是复数range(-10,-100,-30)
- range()可以结合len()遍历一个序列的索引
len()返回列表的长度
‘’'>>>a = [‘Google’, ‘Baidu’, ‘Runoob’, ‘Taobao’, ‘QQ’]
for i in range(len(a)):
… print(i, a[i])
…
0 Google
1 Baidu
2 Runoob
3 Taobao
4 QQ’‘’
- 还可以使用range()函数来创建一个列表
list(range(5))
[0, 1, 2, 3, 4]
os模块
- 在一开始,import os
- os.name ,主要用于判断目前正在使用的平台,注意!!该命令不含括号
- os.getcwd() ,获取当前工作的目录,如:返回结果为:‘C:Program FilesPython36’
- os.listdir(path) ,列出path目录下所有的文件和目录名 ,参数可省
- os.remove(path)——删除path指定的文件eg.os.remove(“aa.txt”)
- os.rmdir(path)——删除path指定的目录,仅当这个文件夹为空的时候才可以
- os.mkdir(path)——创建path指定的目录
注意:这样只能建立一层,要想递归建立可用:os.makedirs() - os.path.isfile(path)——判断指定对象是否为文件。是返回True,否则False
- os.path.isdir(path)——判断指定对象是否为目录。是True,否则False
- os.path.exists(path)——检验指定的对象是否存在。是True,否则False
- os.path.split(path)——返回路径的目录和文件名,即将目录和文件名分开,而不是一个整体。此处只是把前后两部分分开而已。就是找最后一个’/’
- os.system(cmd)——执行shell命令。返回值是脚本的退出状态码,0代表成功,1代表不成功
- os.chdir(path)——'change dir’改变目录到指定目录
- os.path.getsize()——获得文件的大小,如果为目录,返回0
- os.path.abspath()——获得绝对路径
- os.path.join(path, name)—连接目录和文件名,与os.path.split(path)相对
- os.path.basename(path)——返回文件名
- os.path.dirname(path)——返回文件路径
类和对象
- 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例
- 类定义:
class classname:
<statement -1>
…
<statement -N> - 类对象:
- 可执行操作:属性引用,实例化;
- 构造方法__init__(),该方法在类实例化时会自动调用
- self表示类的实例,而非类,
最后
以上就是悲凉哈密瓜为你收集整理的小李学python <( ̄︶ ̄)↗[GO!]基本语法变量和运算符列表元组(tuple)if语句循环语句os模块类和对象的全部内容,希望文章能够帮你解决小李学python <( ̄︶ ̄)↗[GO!]基本语法变量和运算符列表元组(tuple)if语句循环语句os模块类和对象所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复