day-03 变量和运算符

变量就是在程序中用来保存数据的容器

1.申明变量(定义变量)-假申明
语法:
变量名=值
说明:
变量名-要求:标识符(关键字不能用来命名)
规范:a.遵守PEP8的命名规范(名字所有字母都小写,如果多个单词组成,单词之间用下划线隔开)
student_name
b.见名知义(看到名字就知道意思)
= - 赋值符号(将=右边的值赋给左边的变量)
值 - 可以是任何有结果的表达式 如 234 变量-10+20,调用函数表达式

age = 18
name = '小明'

变量必须先申明(赋值)再使用
使用变量就是使用变量中保存的值

print(age)

同时申明多个变量,并且赋一样的值

num1=num2=num3=10
print(num1,num2,num3)

同时申明多个变量,并且赋不一样的值。(变量的个数要和值的个数保持一致)
x, y,z = 10, 20, 30
print(x, y, z)```

给同一个变量赋值,后赋的值会覆盖先赋的值

num4=4
num4=8
print(num4)
num4='li zheng li wo ai ni '同一个变量可以存储不同类型的值
print(num4)

2.申明变量和给变量赋值的本质
结论:
python中所有的变量存的都是数据在内存中的地址。不管存的什么内存地址大小一样
用一个变量给另外一个变量赋值,实质是将变量中的地址赋给另一个变量
使用变量的时候,是使用变量中地址对应的值
C 中申明变量:
类型 num=10
int num=10

python中申明变量:(随便什么类型都行)

num=100
num='afthbvcxvsdv
num5=413423595639847638759285986123758274385728437528735827
print(num5)

3,变量的三要素:值,地址,类型
值:变量中存的地址对应的值
地址:变量中存储的地址
类型:变量中存的地址对应的值的类型

name1='小明'
name2=name1
print(name1)
print(id(name1),id(name2))#   id(变量)获取变量中存储的地址
print(type(name1))

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

一、数学运算符:+,-,,/,%,//,*

+:加法, -:减法, *:乘法, /:除法, %:取余数(求余数), //:整除, **:幂运算(求多少次方)

print(10+20)
print(10-20)
print(10*20)
print(10/20)
%-取余

应用1:获取一个整数的最低的一位或者几位的值
应用2:判断一个数能否被另外一个数整除 (num1 % num2)

print(10%3)
获取一个数的个位数
num = 4873658583
print(num % 10) #3
print(num % 1000)#583

// - 整除(求商,获取商的整数部分)
负数整除的时候,如果商是负的小数,(小数点后的值大于0),最后的结果是整数部分减一
print(5 // 2) #2
print(53682349198259//563876583)
print(3.9//3) #1.0
num=765
print(num//100) #取num的百位上的值

**-幂运算

x**y - 求x的y次方

print(210) #2的10次方
print(9
0.5) #9开平方
print(8**(1/3))#8开3次方

二、比较运算符:> , < , ==(等于) , !=(不等于) , >= , <=

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

print(100>10)
print(3<1)

三、逻辑运算符 : and, or, not
逻辑运算符的运算对象都是布尔值,运算符结果也是布尔值

and(逻辑与运算)
值1 and 值2:判断值1和值2 是否为真。如果值1和值2都为True,结果才是True,只要有一个False结果都是False

逻辑与运算相当于生活当中的’并且‘,当多个条件需要同时满足就用and链接在一起
grade = 99; score = 89
要求考试成绩大于90并且表现分大于95才能拿奖学金

print('是否获得奖学金',grade>90 and score>95)

or (逻辑或运算)
值1 or 值2:如果值1和值2中一个是True,结果就是True,两个都是False,结果才是Fasle
逻辑或运算,相当于生活中的或者,当多个条件中至少有一个条件满足就使用or将多个条件连在一起

print('是否拿奖学金',grade>90 or score>95)

not(逻辑非运算)
not 值:如果值是Ture,结果就是False.如果值是False,结果就是Ture
用法:对某个条件进行否定

age=21
是否能够进入网吧的条件:年龄不少于十八
print('是否能进入网吧',not age<18)
print('是否能进入网吧',age>18)
and or not 都是关键字

赋值运算符:= ,+= ,-= ,= ,/= ,%= ,//= ,*=

赋值符号的左边必须是变量;组合的赋值运算符的左边的变量必须已经赋值
所有的赋值运算符最终都会进行赋值操作

= 直接将右边的结果赋给左边的变量
num=5

+= ,-= ,= ,/= ,%= ,//= ,*=

变量 += 值 相当于 变量 = 变量 + 值
变量 -= 值 相当于 变量 = 变量 - 值
变量 *= 值 相当于 变量 = 变量 * 值
变量 /= 值 相当于 变量 = 变量 / 值

num1=1
num1 += 10 num1=num1 + 10 = 10
print(num1)
num1%=22
print(num1)

运算符的优先级

数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
优先级高的先算(有括号先算括号)
数学运算符中 ** > * / % //

num =10+20 > 25 and True < 2

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

位运算是针对二进制中的每一位进行的相关操作
数字1 & 数字2 (二进制的每一位进行与运算,运算的时候如果都为1,结果就是1,否则就是0)
11010 & 00111 = 00010
1&1=1
与的特点: 一位上的数如果和1与,就会保留这一位上的数,如果和0与,就会置0
与运算的应用:快速判断一个数是否是偶数(最优解答)
将数字和1 与,如果结果是0就说明这个数是偶数,如果结果是1,就说明这个数是奇数

print(3&2) # 3(原码)=0011 2(原码)=0010 3 & 2 = 0011 & 0010 = 0010
print(4&1)
print(6&1)
print(8&1)
print(3&1)
print(571&1)

按位或运算: 数字1 | 数字2 (如果有一位是1,结果就是1,两个都是0,结果才是0)
1|1=1
1|0=1
0|1=1
0|0=0
3|2=011|010=

print(-3|-20)

按位取反 ( 数字 ) 将每一位取反,1变0,0变1 。
~1=0
~0=1

print(~2)

按位异或
数字1 ^ 数字2 每一位相同为0,不同为1
判断两个数是否相同
1^1--0
1^0--1
0^0--1
112--0101100010=01001(补码)=9

print(11^2)
num=10
print(num^10)

左移
数字 << n(位数)--左移指定位数就是在二进制的后面加指定个数个0

右移>>n(位数)--将数字的二进制位向右移指定位数(将低位删除指定位数)
相当于:数值1//(2**n)
20>>
10100>>1=1010=10
10100>>2=101=5
10100>>3=10=2
10100>>4

1.什么是字符串(str)
字符串是python中一种常用的有序但是不可变的容器类的数据类型,可以同时存储多个字符。属于序列
使用单引号或双引号或者双括号将任意字符括起来,就是字符串常量
'glkjdfgkjfgkjl沙发哈4223235'

字符:字符串中的每一个单元。注意python中只有字符概念,没有字符类型

字符串中的内容
普通字符:包含数字字符,字母,普通的符号:
转义字符:通过反斜杠将一些字符转化成有特殊功能或者特殊意义的字符
\n---换行
\t---制表符
'---表示一个普通单引号
"---表示一个双引号
\---表示一个
注意:一个转义字符代表一个字符

print('fdsfsfsdfsdf\tfjkddl')
print('sdasfafa\tfsadfdf')

阻止转义:在字符串前面加r/R,可以阻止转义字符转义

print(r'1231231\t34234')
print(0x13&0x17)
print(2&3)

你可能感兴趣的:(day-03 变量和运算符)