python进阶 - day2

python进阶之路

Day2

hello world!今日是python学习的第二天,我将会在下面文章对基础语法进行一些介绍,主要为给变量赋值的基本原理介绍、运算符的相关学习等。

1.给变量赋值的基本原理介绍

​ 当给变量赋值的时候,会先在内存中开辟空间保存数据(开辟的内存空间的大小由数据来决定),然后将数据对应的内存空间和变量进行关联,重新给变量赋值的时候,又会重新开辟新的空间保存新的数据(开辟的内存空间的大小由新数据来决定),然后再将新数据对应的内存空间和变量重新进行关联。

​ 总的来说,根据数据分配内存空间,可以有效避免溢出问题。在赋值时,会在新的内存区域创造新的内存空间以对应新的数据。旧的数据会自动清除。

​ 与c/java不同的是,在python中同一个变量赋不同的值其地址会发生改变,如下:

num = 100
print(id(num))# 140733696413040
num = 'abc'
print(id(num))# 1254624370864

​ 代码中所用的id函数用来获取变量的地址,其语法为:id(变量)

2.运算符

​ 在python中,运算符主要分为四种,分别是:数学、比较、逻辑、赋值,下面会主要讲述这四种运算符的相关内容。

2.1数学运算符

​ 在python中,数学运算符主要有:+(加),-(减),*(乘),/(除),%(取模、取余),

//(整除),**(幂运算)

1) + 、-、*、/ 这四种运算符与数学中的没有区别,如下
print(1+1)# 2
print(4-3)# 1
print(2*4)# 8
print(9/2)# 4.5 注:除法运算要注意一点,其运算的结果为浮点数
2)% - 取模,取余(求余数)
print(5%2)

​ 应用1:判断整数的奇偶性:根据整数对2取余的结果是否是0来判断这个数是否是偶数。

print(10 % 2)
print(15 % 2)

​ 应用2:取整数的低位数

num = 899
print('个位数为:',num % 10)# 9
3)// - 整除(除法运算后,商向下取整(小))
print(5 / 2)# 2.5
print(5 // 2)# 2
print(-5 // 2)#-3

​ 应用:取整数的高位数

num = 234
print(num // 100)

​ 练习:将num=234中的十位数取出来:

num = 234
print('十位数为:',num // 10 % 10)

​ 方法2:

print(num % 100 // 10)
4) ** - 幂运算:x**y - 求x的y次方
print(2 ** 3)
print(16 ** 0.5)
2.2比较运算符:>,<,==,>=,<=,!=(不等于)

​ 所有的比较运算符的结果都是布尔值。

print(10 > 20)#False
print(100 == 100)#True

​ python中的比较运算符支持表示范围的连写方式

age = 18
print(10 <= age <= 28)
2.3逻辑运算符:and(与),or(或),not(非)

​ 实际开发过程中,逻辑运算符的运算对象一般都是布尔值,结果也是布尔值

2.3.1 and - 逻辑与运算

​ 运算规则:真真为真,其余为假。
​ True and True - True
​ True and False - False
​ False and True - False
​ False and False - False
​ 应用:如果希望多个条件同时满足,那么就使用and加条件进行连接,相当于生活中的并且。

​ 练习:定义两个变量分别保存一个学生的绩点与操评分,最后根据分数的值打印这个学生是否能拿奖学金,
​ (条件:绩点不低于3.5,操评分大于90,是否能拿奖学金:True/False)

gpa = float(input('请输入绩点:'))
score = int(input('请输入操评分:'))
print('奖学金获得结果:',gpa >= 3.5 and score > 90)
2.3.2 or - 逻辑或

​ 运算规则:假假为假,其余为真。
​ True and True - True
​ True and False - True
​ False and True - True
​ False and False - False
​ 应用:多个条件中只要有一个满足条件,那么就是 or 将多个条件进行连接;相当于生活中的或者。

​ 练习:判断一个数是否能够被3或者7整除

​ (xxx能被3或者7整除:True/False)

num = int(input('请输入一个数:'))
print('能被3或者7整除的结果:',num % 3 == 0 or num % 7 == 0)
2.3.3 not - 逻辑非

​ 运算对象:not 条件
​ not True - False
​ not False - True

age = 20
print('是否成年;', not age>=18)

​ 练习:判断一个数是否不能同时被3或者7整除

​ 分析:正向写有三种情况:a。能被3整除,不能被7整除。

​ b。不能被3整除,能被7整除。

​ c。不能被3整除,不能被7整除。
​ 反向写只要将同时被3与7整除的情况否掉即可。

num = int(input('请输入一个数:'))
print('该数是否不能同时被3或者7整除:', not (num%3==0 and num%7==0))
print('该数是否不能同时被3或者7整除:', not num%21==0)

​ 练习2:判断指定的年是否是闰年(能被4整除不能被100整除或者能被400整除)

year = int(input('请输入年份:'))
print('该年是否是闰年:', (year % 4 == 0 and year % 100 != 0) or year % 400 == 0)
2.3.4 逻辑运算符的运算对象不是布尔的情况分析

​ 表达式1 and 表达式2 - 如果表达式1的布尔值是True,那么整个运算结果为表达式2的值
​ 如果表达式1的布尔值是False,那么整个运算结果为表达式1的值
​ 注意:0与空值的布尔值为False
​ 表达式1 or 表达式2 - 如果表达式1的布尔值是True,那么整个运算结果为表达式1的值
​ 如果表达式1的布尔值是False,那么整个运算结果为表达式2的值

print(7 and 8)# 8
print(7 or 8)# 7

​ 数据的布尔值怎么确定? 所有为0与空的布尔值为False(0,0.0,【】,{},(),None),其余都为True。

print(not 7) # False
2.3.5 短路操作

​ 表达式1 and 表达式2 - 如果表达式1的布尔值为False,表达式2不会在执行。
​ 表达式1 or 表达式2 - 如果表达式1的布尔值为True,表达式2不会在执行。

'''
False and name >= 10
True and name>=10 (程序运行时会出错)
'''
2.4 赋值运算符:=,+=,-=,*=,/=,%=,**=,//=

​ 所有的赋值运算符最终的目的都是为了给变量赋值,所以赋值运算符左边必须是变量。

2.4.1 =

​ 变量 = 数据 - 将右边的数据赋给左边的变量。

2.4.2 复合的赋值运算符

​ 变量 += 数据 - (变量=变量+数据)将变量中的数据取出来与指定的数据相加求和,然后将这个和重新赋值给变量。
​ 注意:复合的赋值运算符的左边必须是已经赋值过的变量。

num = 2
num +=10
print(num)
2.5运算符的优先级

​ 数学>比较>逻辑>赋值
​ 数学优先级:** > *,/,%,// > +,-
​ 有括号先算括号里面的
​ and的优先级比or高

print(7 or 8 and 9) # 先算or:9,先算and:7
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值