Python学习笔记

Python语言基础

Python语法特点

注释规则
  1. 单行注释:使用#作为单行注释的符号
  2. 多行注释:使用’’’ ‘’'或者""" “”"进行多行注释
  3. 中文注释:在文件开始加上中文注释,#coding=UTF-8或者GBK(具体根据字符编码类型)
代码缩进
  1. 使用代码缩进和冒号区分代码层次
  2. 同一级别的代码块的缩进必须完全相同,不合理的代码缩进会导致异常
编码规范
  1. 编写规则:① 每个import语句只导入一个模块,尽量避免一次导入多个模块 ② 不要在行尾添加分号,也不要用分号把两条命令放在同一行 ③ 每行不超过80个字符,如果超过,用()将多行内同隐式地连接起来(两种情况除外:导入模块的语句过长或注释里的URL) ④ 使用必要的空行增加代码的可读性:顶级定义(类和函数)之间空两行,方法定义之间空一行,分隔功能的位置空一行 ⑤ 运算符两侧、函数参数之间、逗号的两侧使用空格进行分隔 ⑥ 避免在循环中使用+和+=操作符累加字符串,推荐方法:将每个子字符串加入列表,在循环结束后使用join()方法连接列表
  2. 命名规范

Python中的变量

重点:Python语言中的变量声明是无需说明数据类型,变量的数据类型由数据的内容确定

number = 1024
title = "Lavrov"
print(number, title)
1024 Lavrov
保留字与标识符
  1. 保留字
  2. 标识符:下划线开头的标识符的特殊含义:(1)以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入(2)以双下划线开头和结尾的(foo)代表python里特殊方法专用的标识,如 init()代表类的构造函数
  3. 定义变量:变量类型可以随时变化,内置函数type()可以返回变量的类型
nickname="碧海苍梧"
print(type(nickname))
nickname=1024
print(type(nickname))
<class 'str'>
<class 'int'>
  1. 允许多个变量指向同一个值,两个变量的内存地址相同,内置函数id()可以获取变量的内存地址
no = number = 1024
id(no)
id(number)
1759831415248
1759831415248

基本数据类型

数字
  1. 整数:十进制、八进制(0o/0O开头)、十六进制(0x/0X开头)、二进制
  2. 浮点数
  3. 复数
字符串
  1. 使用单引号、双引号、三引号括起来
  2. 转义字符
布尔类型
数据类型转换

1.创建一个复数 :complex(x+yj)
2. 转换成字符串:str(x)
3. 转换成表达式字符串:repr(x)
4. 计算字符串中的有效python表达式并返回一个对象
5. 将整数x转换成一个字符:chr(x)
6. 将一个字符x转换成它对应的整数值:ord(x)
7. 将一个整数x转换成一个十六进制的字符串:hex(x)
8. 将一个整数x转换成一个八进制的字符串:oct(x)
9. 将x转换成整数类型:int(x)
10.将x转换成浮点数类型:float(x)

基本输入和输出

  1. 使用input()函数输入:variable=input(“提示文字”),python中无论输入的是数字还是字符都作为字符串读取,如果想要接收数值,需要对接收到的字符串进行类型转换
tip=input("请输入:")
tip=int(input("请输入:"))
  1. 使用print()函数输出:输出多个内容并且不换行可使用,分隔内容,输入时同一print()方法中的数据的类型必须相同,数字可以使用str()方法转换成字符串。
  2. 语句内容在同一行显示:内容后加上“,end=‘ ’”,例如print(i,end=’ ')
  3. 换行:print(’’),换行且无空行,print(“\n”),换行且存在空行
print(123,456)
  1. 把结果输出到指定文件(若文件不存在将自动创建文件)
fp=open(r'C:\Users\user\Desktop\title.txt',"a+")
print("命运给予我们的不是失望之酒,而是机会之杯", file=fp)
fp.close()

运算符与表达式

运算符

算术运算符(+、-、*、/、//、**)
  1. 取整除://
  2. 幂:**
    注:Python 3.x中整数运算的结果为浮点数。
赋值运算符
比较/关系运算符:输出结果为布尔值
python=95
english=92
print(python>english)
True
逻辑运算符:and、or、not
位运算符(&、|、^、~、<<、>>)

注:采用二进制计算,移位运算速度快,当需要乘以或除以 2 n 2^n 2n时,采用位运算符代替

运算符的优先级

条件表达式

a=10
b=6
if a>b:
    r=a
else:
    r=b

代码简化

a=10
b=6
r=a if a>b else b
year=int(input("请输入年份:"))
print("是闰年"if(year%4==0 and year%100!=0)or (year%100==0) else "不是闰年")

流程控制语句

程序结构

  1. 顺序结构
  2. 选择结构
  3. 循环结构

选择语句

重点:
  1. 没有switch语句,实现多重选择只能使用if:……elif:……else:多分支语句或者if语句的嵌套
  2. 使用if语句时,如果只有一条语句,语句块可以直接写到:的右侧
  3. 同一层选择结构的多条语句的缩进必须相同
  4. else语句不可以单独使用,必须和保留字if一起使用
  5. 当if语句多于else语句时,else语句会根据缩进确定else语句是属于哪个if语句
  6. 多重循环中执行某一条件的前提是该条件之前的条件均不成立,if和elif都需要判断表达式的真假,else不需要判断,elif和else都i必须和if一起使用
  7. 选择语句的嵌套必须严格控制不同级别代码块的缩进量

循环语句

注:没有do……while……循环

  1. while循环
while 条件表达式:
    循环体
  1. for循环:适用于枚举或遍历序列以及迭代对象中的元素
for 迭代变量 in 对象:
    循环体

例:进行数值循环

print("计算1+2+3+……100的结果为:")
result=0
for i in range(101):
    result+=i
print(result)
计算1+2+3+……100的结果为:
5050
range(start,end,step)内置函数
  1. start:指定计数的起始值,可以省略,如果省略则从0开始
  2. end:指定计数的结束值(不包括该值),不能省略,当range()函数只有一个参数时,即表示指定计数的结束值。
  3. step:指定步长,即两个数之间的间隔,可以省略,如果省略表示步长为1
for i in range(1,10,2):
    print(i,end=' ')
1 3 5 7 9

例:遍历字符串

string="你是我唯一的仔仔"
print(string)
for ch in string:
    print(ch,end='')
你是我唯一的仔仔
你是我唯一的仔仔

循环嵌套

例:打印乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print(str(j)+"×"+str(i)+"="+str(i*j)+"\t",end=' ')
    print('')
1×1=1	 
1×2=2	 2×2=4	 
1×3=3	 2×3=6	 3×3=9	 
1×4=4	 2×4=8	 3×4=12	 4×4=16	 
1×5=5	 2×5=10	 3×5=15	 4×5=20	 5×5=25	 
1×6=6	 2×6=12	 3×6=18	 4×6=24	 5×6=30	 6×6=36	 
1×7=7	 2×7=14	 3×7=21	 4×7=28	 5×7=35	 6×7=42	 7×7=49	 
1×8=8	 2×8=16	 3×8=24	 4×8=32	 5×8=40	 6×8=48	 7×8=56	 8×8=64	 
1×9=9	 2×9=18	 3×9=27	 4×9=36	 5×9=45	 6×9=54	 7×9=63	 8×9=72	 9×9=81	 

break、continue和pass语句

  1. break:完全中止所在最内层循环
  2. continue:直接跳至本层循环循环的下一次迭代
  3. pass:空语句,表示不做任何事情,一般起到占位作用
for i in range(1,10):
    if i%2==0:
        print(i,end=' ')
    else:
        pass
2 4 6 8

列表与元组

序列概述

序列:用于存放多个值的连续内存空间,并且按一定顺序排列,每个值都分配一个数字,称为索引或位置。通过索引可以取出相应的值。
序列结构:列表、元组、集合、字典和字符串

索引

概念:序列中每个元素的编号,从0开始递增,可以是负数
注:采用负数作为索引值时,从-1开始,即最后一个元素的下标为-1。

切片

概念:访问序列中元素的方法,可以访问一定范围内的元素,可以生成一个新的序列
实现切片操作的语法

sname[start:end:step]

sname:序列的名称 start:切片的开始位置(包括),可省略,若省略则从0开始
end:切片的截至位置(不包括),可省略,若省略则为序列的长度
step:切片的步长,可省略,若省略则默认为1

注:
  1. 在进行切片操作时,如果指定步长,将按照该步长遍历序列中的元素,否则逐个遍历序列中的元素
  2. 如果想要复制整个序列,可以省略start和end,但必须保留中间的:,例如verse[:]
versf=verse[:]
序列相加

使用+运算符对两个序列进行相加

print(verse1+verse2)
乘法

概念:使用数字 n n n 乘以一个序列会生成新的序列,新序列的内容为原序列重复 n n n 次的结果

verse1=["自古逢秋悲寂寥","我言秋日胜春朝","晴空一鹤排云上"]
print(verse1*3)
['自古逢秋悲寂寥', '我言秋日胜春朝', '晴空一鹤排云上', '自古逢秋悲寂寥', '我言秋日胜春朝', '晴空一鹤排云上', '自古逢秋悲寂寥', '我言秋日胜春朝', '晴空一鹤排云上']

实现初始化指定长度列表的功能
例:创建一个长度为5的列表,列表的每个元素都是None,表示什么都没有

emptyList=[None]*5
print(emptyList)
[None, None, None, None, None]
检查某个元素是否是序列的成员(元素)

方法:使用关键字 in 检查某个元素是否是序列的成员,即检查某个元素是否包含在该序列中,返回值为布尔值
语法:value in sequence
value为需要检查的元素,sequence为指定的序列

verse1=["自古逢秋悲寂寥","我言秋日胜春朝","晴空一鹤排云上"]
print("自古逢秋悲寂寥"in verse1)
True
计算序列的长度、最大值和最小值
内置函数
  1. len():计算序列的长度,返回序列中的元素的个数
  2. max():返回序列中的最大元素
  3. min():返回序列中的最小元素
  4. list():将序列转换成列表
  5. str():将序列转换成字符串
  6. sum():计算元素和
  7. sorted():对元素进行排序
  8. reversed():反向序列中的元素
  9. enumerate():将序列组合成一个索引序列,多用在 for 循环中

列表

概念:由一系列按特定顺序排列的元素组成,时Python内置的可变序列,列表中的所有元素存放在 [ ] 中,相邻元素之间使用,分隔,可以将任何类型的内容存放入列表中,同一个列表中的元素类型可以不同,列表中的元素之间没有任何联系。

列表的创建和删除
  1. 使用赋值运算符直接创建列表,列表可以嵌套,列表中的数据类型相同可以提高程序的可读性
    语法:listname=[element1,element2,element3,...elementn]
  2. 创建空列表
    语法:listname=[]
  3. 创建数值列表
    可以使用list()函数直接将range()函数循环出来的结果转换成列表
print(list(range(0,10,1)))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  1. 删除列表
    方法:使用 del 语句将列表删除
    语法:del listname
    常见错误:删除列表前,一定要保证输入的列表名称是已经存在的
    注:Python自带的垃圾回收机制会自动销毁不用的列表
访问列表元素

方法:使用print()函数输出列表
输出整个列表:`print(listname)

verse1=["自古逢秋悲寂寥","我言秋日胜春朝","晴空一鹤排云上"]
print(verse1)
['自古逢秋悲寂寥', '我言秋日胜春朝', '晴空一鹤排云上']

输出单个列表元素:print(listname[1]),输出不包括中括号、字符串的引号

verse1=["自古逢秋悲寂寥","我言秋日胜春朝","晴空一鹤排云上"]
print(verse1[1])
我言秋日胜春朝

例:每日一贴

import datetime
verse1=["自古逢秋悲寂寥","我言秋日胜春朝","晴空一鹤排云上","便引诗情到碧霄","2019年05月21日","仔仔","我一直都在"]
print(verse1[datetime.datetime.now().weekday()])
便引诗情到碧霄

说明:datetime.datetime.now()方法获取当前日期,weekday()方法日期时间对象中获取星期,取值范围为 0~6,为0时代表星期一,6代表星期日

遍历列表
  1. 直接使用 for 循环实现
    语法:for item in listname:
    item用于保存获取到的元素值
    例:
verse1=["自古逢秋悲寂寥","我言秋日胜春朝","晴空一鹤排云上","便引诗情到碧霄"]
for item in verse1:
    print(item)
自古逢秋悲寂寥
我言秋日胜春朝
晴空一鹤排云上
便引诗情到碧霄
  1. 使用 for 循环和enumerate()函数实现
    可以实现同时输出索引值和元素内容
    语法:for index,item in enumerate(listname):
    例:
verse1=["自古逢秋悲寂寥",
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值