Python基础语法笔记(面向过程·上)

这是我在自学Python时结合网课和教材做的笔记,发出来供大家交流学习。鉴于是直接copy+paste自我的typora笔记本,因此代码块缩进可能略有问题,望见谅。

一、 Python简介

解释型语言

交互式语言

面向对象语言

1.5 输出函数print()

(1)输出内容:

1.数字(不带引号)

print(520)

2.字符串(加单引号或双引号)

print('helloworld')

3.含有运算符的表达式

print(3+1)#进行运算,输出结果4

(2)将内容输出的目的地:

1.显示器

2.文件

fp = open('D:/txt.txt','a+')
print('helloworld',file=fp)
fp.close()

注意:盘符存在;使用file=fp

(3)输出形式:

1.换行

2.不换行

print('hello','world','python')

1.6 转义字符与原字符

转义字符:反斜杠+想要实现的转义功能的首字母

为什么需要转义字符:

1.字符中含有反斜杠、单引号、双引号等有特殊用途的字符时

2.字符串中包含换行、回车、水平制表符或退格等无法直接表示的特殊字符时

换行:\n

回车:\r

退格:\b

水平制表符:\t

对\t的说明:一个制表位是4个字符,一个\t只会补齐该制表位剩余的位置。

原字符:不希望转义字符起作用。在字符串前加\r

print(r'hello\nworld')

注意:最后一个字符不能是一个反斜杠(两个可以)

二、 标识符和数据类型

2.1 二进制与字符编码

bit 位 8bit=1byte(字节)

1024byte = 1KB

1024KB = 1MB

ASCII码表(用1个字节表示一个字符)-256个状态

Unicode编码:几乎包含了全世界的字符(用2个字节表示一个字符)—UTF-8

2.2 Python中的标识符和保留字

保留字:赋予特定意义,给对象命名时不能使用

查看保留字:

import keyword
print(keyword.kwlist)

标识符:变量、函数、类、模块和其他对象起的名字

规则:

1.可以用:字母、数字、下划线

2.不能以数字开头

3.不能是保留字

4.严格区分大小写

2.3变量的定义和使用

变量名+赋值运算符+值 如:name = ‘maria’

变量由三部分组成:

1.标识:对象所存储的内存地址 用内置函数id(obj)获取

2.类型:对象的数据类型 用内置函数type(obj)获取

3.值:对象所存储的具体数据 用print(obj)打印输出

2.4 变量的多次赋值

当多次赋值之后,变量名会指向新的空间

(变量中储存的实际上是ID)

2.5 Python中常见的数据类型

整数类型 int

浮点数类型 float

布尔类型 bool True,False

字符串类型 str

2.6 数据类型-整数类型

正数、负数、0

不同进制表示方式:

十进制->默认

二进制->0b开头

八进制->0o开头

十六进制->0x或者0X开头

2.7 数据类型-浮点类型

整数部分+小数部分

浮点数存储不精确性

解决:导入模块decimal

from decimal import Decimal
print(Decimal('1.1')+Decimal('2.2'))

2.8 数据类型-布尔类型

表示真假

可以转化成整数进行计算

True = 1

False = 0

2.9 数据类型-字符串类型

“不可变的字符序列”

可以使用单引号’‘双引号""三引号’’’ ‘’'或""" “”"定义

单引号和双引号定义的字符串必须在一行

三引号定义的字符串可以在多行

2.10 类型转换-str()与int()函数

为什么需要数据类型转换?将不同数据类型的数据拼接在一起

将其他类型转换成str:str()–也可直接用引号

将其他类型转换成int:int()–文字类和小数类的字符串类型无法转换;float转换时抹零取整

2.11 类型转换-float()函数

将其他类型转换成float:float()–文字类字符串无法转换;整数转换后末尾加.0

2.12 Python中的注释

注释:对代码功能进行解释说明的标注性文字,提高可读性

注释内容被解释器忽略

三种类型:

单行注释:#开头

多行注释:三引号(其实没有单独的多行注释标记)

中文编码声明注释(Python3中就不需要指定了)在文件开头加上中文声明注释,用来指定源码文件的编码格式。如#coding:gbk->通过这行代码改变中文编码

默认存储编码:UTF-8

三、 input和运算符

3.1 input函数的使用

作用:接收来自用户的输入

返回值类型:str

值的存储:使用‘=’对输入的值进行存储,存储到变量中

变量 = input(‘提示语’)

3.2 input函数的高级使用

input与类型转换合用:

a = int(input())

3.3 运算符-算术运算符

1.标准算术运算符:+、-、*、/ //(整数除)

2.取余运算符(取模):%

3.幂运算符:**

两个整数或两个负数整数除和取余都是正数(负负得正)

一正一负的整数除:向下取整 如:-9//4=-3 9//-4=-3

一正一负的取余:余数=被除数-除数*商 如:-9%4=3 9%-4=-3

3.4 运算符-赋值运算符(=)

执行顺序:从右往左(先算等号右侧,再赋值)

1.支持链式赋值:a=b=c=20 创建一个整数对象,然后将其地址赋给a,b,c三个引用

2.支持参数赋值:+=、-+、*=、/=、//=、%=

a+=b 就是a=a+b,以此类推

3.支持系列解包赋值:a,b,c=20,30,40 即:a=20;b=30;c=40 要求等号左右两侧个数相同,否则报错 创建多个整数对象,将其地址分别赋给多个引用

好处:便于变量交换 a,b=b,a

3.5 运算符-比较运算符

对变量或表达式的结果进行大小、真假的比较,返回布尔类型(True/False)

1.>,<,>=,<=,==,!=

2.’=‘是赋值运算符,’=='是比较运算符

一个变量由三部分:标识、类型、值组成,比较运算符比较的是值(value)

3.比较对象的标识(id)使用’is’ ‘is not’

print(a==b)#比较a与b的值
print(a is b)#比较a与b的标识
lst1=[11,22,33,44]
lst2=[11,22,33,44]
print(lst1==lst2)#True
print(lst1 is lst2)#False

3.6 运算符-布尔运算符

对于布尔值之间的运算

1.and 两个运算数都为True,结果才为True

2.or 只要有一个运算数为True,结果就为True

3.not 取反,操作数为布尔类型。True的not是False,False的not为True

4.in和not in:in表示在其中,not in表示不在其中

3.7 运算符-位运算

将数据转成二进制进行计算

1.位与&:对应数位都是1,结果数位才是1,否则是0

2.位或|:对应数位都是0,结果数位才是0,否则是1

3.左移位运算符<<:高位溢出舍弃,低位补0—左移一位相当于*2

4.右移位运算符>>:低位溢出舍弃,高位补0—右移一位相当于/2

3.8 运算符中的优先级

1.算术运算(先幂运算,再乘除,后加减)

2.位运算(先算移位,再算与,最后算或)

3.比较运算

4.布尔运算(先and,再or)

5.赋值运算符

有括号,就先算括号

四、 顺序结构和分支结构

4.1 程序的组织结构-顺序结构

程序的三种基本结构:顺序结构、选择结构(if语句)、循环结构(while语句和for…in语句)

顺序结构:程序从上到下顺序执行代码,没有任何判断和跳转

4.2 对象的布尔值

一切皆对象,所有对象都有一个布尔值

获取对象布尔值:bool()函数

以下对象布尔值为False:False、数值0、None、空字符串、空列表、空元组、空字典、空集合

其他对象布尔值均为True

4.3 分支结构-单分支结构

选择结构:程序根据判断条件的布尔值选择性执行部分代码

单分支结构:

if 条件表达式:

​ 条件执行体

4.4 分支结构-双分支结构

if 语法表达式:

​ 条件执行体1

else:

​ 条件执行体2

4.5 分支结构-多分支结构

if 条件表达式1:

​ 条件执行体1

elif 条件表达式2:

​ 条件执行体2

elif 条件表达N:

​ 条件执行体N

[else:](else可省略)

​ 条件执行体N+1

4.6 分支结构-嵌套if的使用

if 条件表达式:

​ if 内层条件表达式:#只有条件表达式1成立时才需要判断

​ 内层条件执行体1

​ else:

​ 内层条件执行体2

else:

​ 条件执行体

4.7 条件表达式

条件表达式:if……else的简写

语法结构:x if 判断条件else y

4.8 pass语句

什么都不做,只是一个占位符,用在语法上需要语句的地方

语法不会报错。

五、 循环结构

5.1 range函数的使用

内置函数range()

用于生成一个整数序列

创建range对象的三种方式:

1.只有一个参数:range(stop):创建一个[0,stop)之间的整数序列,步长为1

用于查看range对象中的整数序列:

r = range(10)
print(list(r))

2.给了两个参数:range(start,stop):创建一个[start,stop)之间的整数序列,步长为2

3.给了三个参数:range(start,stop,step):创建一个[start,stop)之间的整数序列,步长为step

返回值是一个迭代器对象。

用in与not in判断整数序列中存在/不存在指定的整数-eg:print(10 in r)

range类型的优点:不管range对象表示的整数序列有多长,所有range对象占的内存空间是相同的。(只需要存储start,stop,step)。只有用到range对象时,才会去计算序列中的相关元素。

常用range函数作为for循环遍历的对象。

5.2 while循环

循环结构:反复做同一件事情

分类:1.while循环 2.for…in循环

while循环的语法结构:

while 条件表达式:

​ 条件执行体

与单分支结构if相似(都是先判断条件表达式),但有区别:

· if是判断一次,条件为True执行一行。

· while是判断N+1次(最后一次判断不成立),条件为True执行N次。

四步循环法:

1.初始化变量

2.条件判断

3.条件执行体(循环体)

4.改变变量

总结:初始化的变量与条件判断的变量与改变的变量为同一个

5.3 while练习:计算1-100之间的偶数和

sum = 0
a = 1
while a<=100:
    if a%2==0:#或者直接写成if not bool(a%2)   
        sum += a
        a += 1
    print(sum)

5.4 for_in循环

in表达从字符串、序列等中依次取值,又称为遍历。

for_in遍历的对象必须是可迭代对象(字符串、序列等,包括range)

语法结构:

for 自定义变量 in 可迭代对象:

​ 循环体

如果不需要自定义变量,可以写成下划线_:

for _ in range(5):
    print("人生苦短,我学Python")

用for循环计算1-100之间的偶数和:

sum = 0
for i in range(1,101):
    if i%2==0:    
        sum += i
print(sum)

5.5 for_in循环练习题:100到999之间的水仙花数

for i in range(100,1000):
    ge = i%3
    shi = i//10%10    
    bai = i//10    
    if ge**3+shi**3+bai**3==i:   
        print(i)

5.6 流程控制语句break

break:用于结束循环结构,通常与分支结构if一起使用(非正常结束)

5.7 流程控制语句continue

continue:用于结束当前循环,结束下一次循环。通常与分支结构if一起使用

输出1-50之间所有5的倍数:

for i in range(1,51):
    if i%5!=0:   
        continue    
    print(i)

5.8 else语句

三种用法:

1.if……else…… if条件不成立时执行else

2.while……else…… 没有碰到break时执行else

3.for……else…… 没有碰到break时执行else

5.9 嵌套循环

在循环结构中又嵌套另外的完整循环结构,其中内层循环作为外层循环的循环体执行。

输出三行四列的矩形:

for i in range(1,4):
    for j in range(1,5):    
        print('*',end='\t')#不换行输出    
    print()#打印行

九九乘法表:

for i in range(1,10):
    for j in range(1,i+1):    
        print(i,'*',j,'=',i*j,end='\t')    
    print()

5.10 二重循环中的break和continue

二重循环中的break和continue用于控制本层循环,不影响外层循环

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值