Python day03

Python语法

一、python几个概念

1.1 表达式
  • 表达式,是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合
  • 表达式特点
    表达式一般仅仅用于计算一些结果,不会对程序产生实质性的影响
    如果在交互模式中输入一个表达式,解释器会自动将表达式的结果输出
1.2 语句
  • 一个语法上自成体系的单位,它由一个词或句法上有关连的一组词构成
  • 语句的执行一般会对程序产生一定的影响,在交互模式中不一定会输出语句的执行结果
1.3 程序(program)
  • 程序就是由一条一条的语句和一条一条的表达式构成的。
1.4 函数(function)

• 函数就是一种语句,函数专门用来完成特定的功能
• 函数长的形如:xxx()
• 函数的分类:

1.4.1 内置函数 : 或者内建函数,就是由语法规定存在的函数,这些函数,包含在编译器的运行时库中,程序员不比单独书写代码实现它,只需要调用既可。
1.4.2 自定义函数 : 由程序员自主的创建的函数 当我们需要完成某个功能时,就可以去调用内置函数,或者自定义函数

• 函数的2个要素

参数
返回值

2、标识符
2.1 关键字
  • python一些具有特殊功能的标识符,这就是所谓的关键字关键字,是python已经使用的了,所以不允许开发者自己定义和关键字相同的名字的标识符

and 用于表达式运算,逻辑与操作
as 用于类型转换
assert 断言,用于判断变量或条件表达式的值是否为真
break 中断循环语句的执行
class 用于定义类
continue 继续执行下一次循环
def 用于定义函数或方法
del 删除变量或者序列的值
elif 条件语句 与if else 结合使用
else 条件语句 条件语句,与if,elif结合使用。也可以用于异常和循环使用
exceptexcept 包括捕获异常后的操作代码,与try,finally结合使用
exec 用于执行python语句
for 循环语句
finally 用于异常语句,出现异常后,始终要执行finally包含的代码块。与try,except结合使用
from 用于导入模块,与import结合使用
global 定义全局变量
if 条件语句,与else,elif结合使用
import 用于导入模块,与from 结合使用
in 判断变量是否存在序列中
is 判断变量是否为某个类的实例
lambda 定义匿名函数
not 用于表达式运算,逻辑非操作
or 用于表达式运算,逻辑或操作
pass 空的类,函数,方法的占位符
print 打印语句
raise 异常抛出操作
return 用于从函数返回计算结果
try 包含可能会出现异常的语句,与except,finally结合使用
while 循环语句
with 简化Python的语句
yield 用于从函数依次返回值

2.2 标识符概念
  • 开发人员在程序中自定义的一些符号和名称。标识符是自己定义的,如变量名 、函数名等
  • 组成:由26个英文字母大小写,数字 0-9 符号 _$
  • 标识符的规则:

1.标识符中可以包含字母、数字、_,但是不能使用数字开头 例如:name1 name_1 _name1 1name(不行)
2.Python中不能使用关键字和保留字来作为标识符

  • 命名方式

• 驼峰命名法
1、小驼峰式命名法: 第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName、aDog
2、大驼峰式命名法: 每一个单字的首字母都采用大写字母,例如:FirstName、LastName
• 下划线命名法
不过在程序员中还有一种命名法比较流行,就是用下划线“_”来连接所有的单词,比如 get_url buffer_size

二、变量

2.1 变量的概念

• 变量是计算机内存中的一块区域,存储规定范围内的值,值 可以改变,通俗的说变量就是给数据起个名字。
• 变量命名规则

1、变量名由字母、数字、下划线组成要符合标识符的命名规范
2、数字不能开头
3、不能使用关键字

  • 注意 : 两个对象相等和两个对象是同一个对象是两个概念
s1 = {'Jerry':'python'}
import copy
s2 = copy.deepcopy(s1)
print(s2)  # {'Jerry':'python'}

print(id(s1),id(s2))
print(s1==s2)  # 运行:35810760 35811192
               #      True
2.2 变量的运算
  • 变量的运算就是正常的四则运算 ,需要注意的是在运算过程中含有浮点数,那么它返回的就是一个浮点数类型

三、变量在内存中的原理

3.1 引用变量
  • 两个引用指向同一个int数据
a = 10
b = 10
print(id(a),id(b))  # 1422355760 1422355760

结果:地址一样

  • 两个引用指向同一个str数据
list1 = [1, 2, 3]
list2 = [1, 2, 3]
print(id(list),id(list2)) # 1421907248 35734152

结果:地址不一样

3.2 拷贝
list1 = [1, 2, 3]
list2 = list1.copy()
print(id(list1),id(list2)) # 35721096 35734152

结果:地址不一样

四、运算符

4.1.1 运算符的概念
  • 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”
4.1.2 运算符的分类
  • 算术运算符
  • 赋值运算符
  • 比较运算符(关系运算符)
  • 逻辑运算符
  • 条件运算符(三元运算符)
4.2 算术运算符
  • 加法运算符 表现形式 +
  • 减法运算符 表现形式 -
  • 乘法运算符 表现形式 *
  • 除法运算符 表现形式 /
  • // 整除,只会保留计算后的整数位,总会返回一个整型
  • % 取模,求两个数相除的余数
  • ** 幂运算,求一个值的几次幂
4.3 赋值运算符

赋值运算符的特殊写法 x = x + 3 其实是和 x - += 3 是一样的

  • += (x+= 3 相当于 x = x + 3 )
  • -= (x -= 3 相当于 x= x - 3 )
  • *= (x = 3 相当于 x = x 3 )
  • **= (x **= 3 相当于 x = x ** 3 )
  • /= (x /= 3 相当于 x = x/ 3 )
  • //= (x //= 3 相当于 x = x // 3 )
  • %= (x %= 3 相当于 x= x % 3 )
4.4 比较运算符
  • 比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False
  • 比较左侧值是否大于右侧值

  • = 比较左侧的值是否大于或等于右侧的值

  • < 比较左侧值是否小于右侧值
  • <= 比较左侧的值是否小于或等于右侧的值
  • 特殊的比较方式

1、== 比较两个对象的值是否相等
2、 != 比较两个对象的值是否不相等
3、 is 比较两个对象是否是同一个对象,比较的是对象的id
4、 is not 比较两个对象是否不是同一个对象,比较的是对象的id

4.5 逻辑运算符

4.5.1 not 逻辑非
  • not可以对符号右侧的值进行非运算,对于布尔值,非运算会对其进行取反操作,True变False,False变True
4.5.2 and 逻辑与
  • and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
  • 与运算是找False的,如果第一个值为False,则不再看第二个值
4.5.3 or 逻辑或
  • 或运算两个值中只要有一个True,就会返回True
  • 或运算是找True的
4.5.4 非布尔值的与或运算
  • 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
  • 非布尔值与运算的规则

与运算是找False的,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值

  • 非布尔值或运算的规则

或运算是找True的,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值

4.6 条件运算符(三元运算符)

在这里插入图片描述
条件运算符在执行时,会先对条件表达式进行求值判断
如果判断结果为True,则执行语句1,并返回执行结果
如果判断结果为False,则执行语句2,并返回执行结果
语法: 语句1 if 条件表达式 else 语句2

4.7 运算符的优先级

运算符优先级参照表
在这里插入图片描述

五、常见问题总结

5.1 f’'方法格式化字符串的书写
a = '刘亦菲'
b = '志玲姐姐'
print(f'hello, {a}, {b}')

运行结果:hello, 刘亦菲, 志玲姐姐

5.2 字符串可以随机输出打印吗?
import random
list1 = ['刘亦菲', '周慧敏', '关之琳']
s = random.randint(1,2)
print('我喜欢你',list1[s])

运行结果:我喜欢你 周慧敏

5.3 格式化浮点型数据的时候怎么让它精确小数位
f = 3.1415926
print('%.3f'%f)
输出结果:
3.142

空值浮点型的精确度即在%.数字即可,记住小数点一定要加

5.4 整形和浮点型数据不能够获取长度,也就不支持len函数
5.5 使用条件运算符取出三个数之间的最大值
a = 10
b = 30
c = 50
方法一:
m = a if a > b and a > c else b if b > c else c
方法二:
m = (a if a > b else b) if (a if a > b else b) > c else c
print(m)

六、课后作业

  1. a,b = 6, 8 我想让a=8 b=6我该怎么办?用2种方式实现
    在这里插入图片描述
    在这里插入图片描述
    2.完成字符串的逆序以及统计
    ●设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
    ●打印出字符串长度
    ●使用切片逆序打印出字符串
    在这里插入图片描述
    3.要求从键盘输入用户名和密码,校验格式是否符合规则,如果不符合,打印出不符合的原因,并提示重新输入
    ●用户名长度6-20,用户名必须以字母开头
    ●密码长度至少6位,不能为纯数字,不能有空格
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yyhzt666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值