day3- python变量和运算符

变量和运算符

一、昨天知识点回顾

python是解释性语言

1、基础语法

1)注释
2)标识符要求
3)关键字
4)语句
5)缩进
6)数据和数据类型
int,float,str,bool
输入输出函数 ->print();input()

2、进制

1)基数;位权;表示方法

print(oct(100))   #0o144

进制转换
1)手动转换方法:辗转取余法、累计求和;二进制、八进制和十六进制的转换
2)自动转换方法:print(\bin()\oct()\hex())

3、原码、反码和补码

计算机存数据存的是数字的补码
1)原码:符号位+真值
2)反码(负数才有反码):符号位不变,其余变反
3)补码(负数才有补码):反码基础上加一

二、变量

1、变量的定义

语法:变量 = 数据

说明:
变量名 - 自己命名
1)、标识符,不能是关键子,不能数字开头,见名知意,
2)、满足PEP8的命名规范(所有字母小写,多个单词之间用下划线隔开),
3)、不使用系统提供的类型名、函数名和模块名

= --> 赋值符号,固定写法

数据 -->任何有结果的表达式,包括:独立数据、运算表达式(除了赋值运算)、函数调用表达式。

2、变量的使用

使用变量就是使用变量中保存的数据。

print('年龄:',age)
print(x)
print(10 + 20 + age)
str1 = 'hello word!'
print(str1[6])
print('abcd'[2])

在这里插入图片描述

3、修改修改变量中的数据(重新给变量赋值)

变量 = 新值(赋值类型不限)

age = 22
print(age,'岁达到结婚年龄!')   #22 岁达到结婚年龄!
age = 'hello'
print(age)      #hello

4、同时定义多个变量/同时给多个变量赋值

1)、同时给不同的变量赋不同的值:

变量名1,变量名2,变量名3,…= 数据1,数据2,数据3,…

a,b,c = 1,2,3
print(b)         #2
print(a,b,c)     #1 2 3

x = 100
y = 200
x,y = y,x        #交换变量的值
print(x,y)       #200 100

x1 = 1
x2 = 2
x3 = 3
x1,x2,x3 = x3,x1,x2   #交换变量值
print(x1,x2,x3)   #3 1 2
2)、同时给不同变量赋相同的值:

变量1 = 变量2 = 变量3 = … = 数据

a1 = a2 = a3 = 30
print(a1,a2,a3)   #30 30 30

注:前面没有赋值定义过的变量不能使用

三、变量赋值的原理

1、定义变量给变量赋值的原理

1)先在堆中储存(申请储存空间大小由被储存数据大小决定)
2)将数据保存在内存区域中
3)让变量和数据关联(变量保存数据储存的地址)

2、id函数

id(变量) - 获取变量中关联的数据再内存中的地址

num = 10
print(id(num))    #140707488919584

num = 20
print(id(num))    #140707488919904

**注:**变量中存储的是数据存储的地址,重新给变量赋值后地址改变成新数据的存储地址。

四、数字运算符

python支持的运算符:数学运算符,比较运算符,逻辑运算符,赋值运算符,位运算符

数学运算符:+(加),-(减),*(乘),/(除),%(取余,取模),//(整除),**(幂运算)
1)+(加),-(减),*(乘),/(除)与数学中一样的用法
2)% -取余
 数字1 % 数字2
print(5 % 2)        #2.5
3)// - 整除(求商取商的整数部分:向下取整/向小取整)
应用:取定长数字最高位
num = 511
print(num//100)    #3
 4)** - 幂运算:m**n计算m的n次方
print(3 ** 2)    #9
print(12+3*4//5-6**2)     #-22

五、比较运算符

比较运算符(关系运算符):>,<,==,>=,<=,!=
注:1、所有比较运算的结果都是是bool类型
2、数字数据不能和字符串数据比较

print(10 > 5)   #True
print(10 < 5)   #False

python支持比较运算符的连写来表示范围

x = 10
print(0 < x <10)   #True
print(3 < 4 > 2)   #True

六、逻辑运算符

python中的逻辑运算符:and(逻辑与),or(逻辑或),not(逻辑非)

1、and

1)运算规则:
操作对象都是布尔值:两个都是True结果才是True,只要有一个为False结果就是False

2)应用场景:希望两个或多个条件同时满足才能执行,就使用逻辑与,与并且的意思相同

**例:**写出学生是否能拿奖学金,要求:绩点超过4,操评分高于85,同时满足?

grade = 4.5
score = 90
print('是否能拿奖学金:',grade > 4 and score > 85)    #True

2、or

1)运算规则
a、操作对象都是布尔值:两个中只要有一个条件为True就为True,全为False结果才是False,
2)应用场景:希望两个或者多个多个条件只要有一个满足就可以使用逻辑或运算,相当于或者的意思。

例:写出学生是否能拿奖学金,要求:绩点超过4或者操评分高于90。

grade = 4.5
score = 80
print('是否能拿奖学金:',grade > 4 or score > 90)    #True

**例:**写出判断指定年是否是闰年的条件:1)能被四整除但是不能被100整除 2)直接能被400整除

year = 2012
m1 = year % 4 == 0     #能被4整除
m2 = year % 100 != 0   #不能被100整除
m3 = year % 400 == 0   #能被400整除
print('是否为闰年:',(m1 and m2) or m3)    #True
# print('是否为闰年:',year % 4 == 0 and year % 100 != 0 or year % 400 == 0)  #True

3、not

1)运算规则:True变False,False变True

not True  ->False   一句话不是对就是错,不是错就是对
not False  ->True

2)应用场景:不满足某个条件就执行什么,就用not。
例:写出num是否不能同时被3和7整除。

num = 63
print('是否不能被3和7整除:',not(num % 3 == 0 and num % 7 == 0))   #结果False

4、当操作对象不是布尔值的时候

注:其他数据的布尔值确定方法–所有为0为空的数据都为False,其他都是True

逻辑运算符语法上可以操作任何数据

用法解释:

数据1 and 数据2 -> 如果数据1的布尔值是True,结果是数据2;如果数据1的布尔值是False,结果就是 数据1。

数据1 or 数据2 -> 如果数据1的布尔值是True,结果是数据1;如果数据1的布尔值是False,结果是数据2。

5、短路操作

在逻辑运算中的and和or在一些特殊情况下会出现短路操作,造成的原因:表达式1 and 表达式2 -->如果表达式1是False,那么表达式2不会执行。在有些情况下需要执行表达式二,由于and的特点就会形成短路,执行不到。

def fun():
    print('执行函数')
# print(True and fun())    #会打印‘执行函数’
print(False and fun())     #就执行不了fun()函数
print(True or fun())      #就执行不了fun()函数

七、赋值运算符

1、赋值运算符:

=、+=、-=、*=、/=、%=、//=、**=

1)复合赋值运算符左边的变量必须是赋值过的变量。
2)所有赋值运算符的右边都可以是任意有结果的表达式。

“=” 的用法(赋值符号)

a = 10     #给a赋值10
age = 18   #给age赋值18

+=-=*=/=%=//=**=
a += 100    #表示a = a + 100  -->a = 110
print(a)

a /= 2     #同上表示a = a/2   -->a = 55

其余赋值运算符原理同上。

2、运算符的优先级

数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)。

**   >   *,/,%,//   >   +,-

八、位运算符

1、什么是位运算符

位运算符:操作最底层的运算符(直接操作数据在内存中存储的补码,特性决定了它的特点)。

特点:效率高,内存消耗少。

位运算运算符:&(按位与)、|(按位或)、^(异或)、~(按位取反)、>>(右移)、<<(左移)

1、“&”(按位与)的原理

数字1 & 数字2 -> 两个都是1结果就是1,否者结果为0
特点:某一位上的数和1与可以对这一位上的数进行保存,和0与会与这一位进行

print(5 & 9)
'''
5:0000 0101(补)
9:0000 1001(补)
5 & 9 --->0000 0001 ----> 1

-5:10000101(原)  -  11111011(补)
-9:10001001(原)  -  11110111(补)
-5 & -9  -->  11110011(补) - 11110010(反) - 10001101(原) - 13
'''
print(-5 & -9)

应用:可以用来判断数字的奇偶性(让被判断的数和1进行按位与运算,结果如果是0说明是偶数否者是奇数)

'''
10101011 & 00000001 ->00000001 ->为奇数
'''

2、“|” (按位或)的原理

数字1 | 数字2 - ->只要有一个是1,结果就是1,两个都是0结果才是0
例:

7 | -16
'''
7:00000111
-16:10010000(原)  -  11101111(反) - 11110000(补)
00000111         7为正数的源码、反码和补码相同
11110000(补)    6的补码
--------
11110111(补)    7| -16

7|-16 -->  11110111(补) --> 11110110(反) --> 10001001  --> -9
'''
print(7|-16)   #-9

3、“^”(异或)原理

数字1 ^ 数字2 - 不同为1,相同为0(通常用作加密处理)

print(18 ^ 9)   #27
print(27 ^ 9)   #18

'''
18   00010010
9    00001001
18 ^ 9  -->  00011011  --> 27

27   00011011
9    00001001
27 ^ 9  -->  00010010  -->18
'''

18异或19会得到27,27再异或9又会得到18。

4、“~”按位取反 - 0变1,1变0

用法:~ 数字

'''
27      00011011
~27 --> 11100100
'''

5、“>>“右移,“<< ”左移

#数字1 >> 数字2      -->数字1 // 2**数字2
#数字1 << 数字2      -->数字1 * 2**数字2

print(100 << 2)     #100*2**2 == 400
print(100 >> 2)     #100//2**2 == 25

'''
原理:
右移:以9为例
9   00001001   --> 右移一位 --> 00000100 --> 4 == 9//2**1

左移:以9为例
9   00001001   --> 左移一位 --> 00010010 --> 18 == 9*2**1
'''
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python常用的运算符包括算术运算符、比较运算符、赋值运算符、逻辑运算符和位运算符等。算术运算符包括加法(+)、减法(-)、乘法(*)、除法(/)、取余(%)和幂运算(**)等。比较运算符用于比较两个值的大小,包括等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)等。赋值运算符用于给变量赋值,包括简单赋值(=)、加法赋值(+=)、减法赋值(-=)等。逻辑运算符用于连接和操作布尔值,包括逻辑与(and)、逻辑或(or)和逻辑非(not)。位运算符用于对二进制数进行位操作,包括按位与(&)、按位或(|)、按位异或(^)和按位取反(~)等。以上是Python常用的运算符。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python运算符](https://blog.csdn.net/Zer02T/article/details/103264418)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Day4 Python课程学习内容](https://blog.csdn.net/FyCcheng/article/details/109398137)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值