Python 入门之变量、算术运算符、比较运算符、数据类型及位运算

Task:01 变量、运算符、数据类型及位运算

第一部分:基本概念

1、变量:

类似数学中定义的自变量,可同时定义变量的数据类型
注意:
1.变量名不能与Python库里的模块或者方法名相同,
2. 变量名可以包括字母、数字、下划线、但变量名不能以数字开头。
3.变量名最好有实际意义,方便代码的可读性,比如:用于存储用户名的字典变量,可以写成username;年龄:age等方便理解的自然语言;
3. Python 变量名是大小写敏感的,foo != Foo。

2、算术与比较运算符:

1.算术运算符:加减乘除、幂等熟悉即可;
2.逻辑运算符:and, or, not,
注意 = 是赋值符,与 == 等号的不同;
3.比较运算符:>=,<=,!= ,==;

3、位运算符:

这个是大家比较不熟悉的运算符,位运算符是针对二进制数据进行处理的运算。

操作符 名称 示例
~按位取反	~4 
& 按位与 4 & 5
说明:4的二进制为 100
5的二进制为 101
按位与 预算后为 100,输出结果为4;
| 按位或 4 | 5
^ 按位异或 4 ^ 5
“<< ” 左移 4 << 2 将对应数字4转为二进制表达100,左移两位位
10000
“>>“ 右移 4 >> 2
4、注意事项:

比较运算符:<,>,<=,>=,==,!=,is is not, in ,not in
is, is not 对比的是两个变量的内存地址
==, != 对比的是两个变量的值
比较的两个变量,指向的都是地址不可变的类型(str等),那么is,is not 和 ==,!= 是完全等价的。
对比的两个变量,指向的是地址可变的类型(list,dict,tuple等),则两者是有区别的。

第二部分 Python 代码实践

1、通过一个小编程熟悉变量

这是一个简单的猜数字游戏;
import random

def guess_num():
    num=random.randint(1,100)
    #print('您总共有10次猜数字的机会。\n')
    while True:
        guess_num=int(input("请输入0到100的整数: \n"))
        if guess_num==num:
            print("您猜对了,这个数字是:"+ str(num))
            break
        elif guess_num<num:
            print("您输入的数字小了,请重新输入")
        else:
            print("您输入的数字大了,请重新输入:")
 guess_num()
2、运算符应用练习
#数字运算符+,-,*,/  整除//, 取余数%;幂**
a=100
b=29
print('a+b='+str(a+b))
print('a-b='+str(a-b))
print('a*b='+str(a*b))
print('a/b='+str(a/b))
print('a%b='+str(a%b))
print('a**3='+str(a**3))
print('a//b='+str(a//b))

输出结果:

a+b=129
a-b=71
a*b=2900
a/b=3.4482758620689653
a%b=13
a**3=1000000
a//b=3

3、逻辑/比较运算符练习

#常见运算符练习: and/or/ is/in/ not in/</<print("a<50 and b>19 is true or not: "+str(a<50 and b>19))
print("a<50 or b>19 is true or not: "+str(a<50 or b>19))
print("not b is true or not:"+str(not b))
print("a>b is true or not:"+str(a>b))
print("a>=b is true or not:"+str(a>=b))
print("a==b is true or not:"+str(a==b))
print("a!=b is true or not:"+str(a!=b))
print("a<b is true or not:"+str(a<b))
print("a<=b is true or not:"+str(a<=b))

输出结果:

a<50 and b>19 is true or not: False
a<50 or b>19 is true or not: True
not b is true or not:False
a>b is true or not:True
a>=b is true or not:True
a==b is true or not:False
a!=b is true or not:True
a<b is true or not:False
a<=b is true or not:False

4、重难点 位运算符:

对于许多Python 新手来说,对二进制不是特别熟悉。所以在了解位运算符时需要,需要先复习熟悉一下二进制表达方法,以及通过编程了解各位运算符的意义。
按位取反 ~4
& 按位与 4 & 5
| 按位或 4 | 5
^ 按位异或 4 ^ 5
<< 左移 4 << 2
‘’ >> 右移 4 >> 2

在正式学习位运算之前,我们先进行二进制基础复习

二进制转化及基本知识复习
#方法bin(数字),将常见的10进制数字转化为二进制表示,100,表示4,1000表示8
#二进制第n位上的1,对应10进制的数值为2^(n-1)
print(bin(4)) #用二进制表示4,可表示为0b100
print(bin(5))#用二进制表示5,可表示为0b101=2^2+2^0
print(bin(6))#用二进制表示6,可表示为0b110=2^2+2^1
print(bin(8))#用二进制表示8,可表示为0b1000=2^3
print(0b100+0b101) #默认情况下输出的是10进制的数值9
print(bin(0b100+0b101)) #要想将输出的数据用二进制表示,请记得用bin()转化为二进制
print("________________")


其他运算符,例如下面几个运算符用于判断真假

操作符 名称 示例
in 存在 ‘A’ in [‘A’, ‘B’, ‘C’]
not in 不存在 ‘h’ not in [‘A’, ‘B’, ‘C’]
is 是 “hello” is “hello”
is not 不是 “hello” is not “hello”

print("A" in ['A','B',"C"])  # 输出True,注意字符有大小写之分
print("a" in ['A','B',"C"])  # 输出False,注意字符有大小写之分
print("____________________")

#~	按位取反 例如 ~4, 则输出的是-5, 即对4取反;
print("对数字4进行按位取反操作:\n")
print(bin(~4),~4)  
print(bin(~5),~5)
print(bin(~6),~6)
print(bin(~7),~7)
print(bin(~8),~8)
对应按位取反结果如下:我们能够发现,符号取反,数值加1
-0b101 -5
-0b110 -6
-0b111 -7
-0b1000 -8
-0b1001 -9
print(32&7)# & 按位与,即将各数字转化为二进制数值,返回对应位上数字相同的,若无相同返回0
print(6&5) #4
print(6&7) #6



print('_______我是低调的分割线_______')
print("--按位与&,按位或|,按位异或^,练习:")
print(bin(4 & 5), 4 & 5)  # 0b100 4
print(bin(4 | 5), 4 | 5)  # 0b101 5
print(bin(4 ^ 5), 4 ^ 5)  # 0b1 1
print('_______我是低调的分割线_______')

#按位左移,右移的操作,先将对应数字转化为二进制,然后整体左移或者右移
#例如:
print(bin(4 << 2), 4 << 2)  # 0b10000 16
print(bin(4 >> 2), 4 >> 2)  # 0b1 1
print(bin(6 << 2), 6 << 2) # 6 对应二进制为110, 左移两位为11000(即在右边补两个0print('__________________')
变量指向可变与不可变数据类型的区别
#注意赋值它本身的作用,是将变量指向某一类型数据,
#比较的两个变量均指向不可变类型。
a = "hello"
b = "hello"
c=b #将b指向的数据赋值给c, 并未将其指向也给c,故修改c的值不会改变b的值;
c='hello python'
print('b= '+b)
print(a is b, a == b)  # True True ,因为a,b 都指向不可变类型(字符串)
print(a is not b, a != b)  # False False
print(b is c, b == c)  # False False
print(b is not c, b != c)
print("____________________")
#比较的两个变量均指向可变类型。
e = ["hello"]
f = ["hello"]
print(e is f, e == f)  # False True
print(e is not f, e != f)  # True False
print("____________________")

‘’’

运算符的优先级

什么是一元运算符、二元运算符、三元运算符???这个基本概念很重要
1.一元运算符优于二元运算符。例如3 ** -2等价于3 ** (-2)。(乘除、幂,优于加减)
2.先算术运算,后移位运算,最后位运算。例如 1 << 3 + 2 & 7等价于 (1 << (3 + 2)) & 7。
3.逻辑运算最后结合。例如3 < 4 and 4 < 5等价于(3 < 4) and (4 < 5)。
‘’’

print(-3 ** 2)  # -9
print(3 ** -2)  # 0.1111111111111111
print(1 << 3 + 2 & 7)  # 0
print(-3 * 2 + 5 / -2 - 4)  # -12.5
print(3 < 4 and 4 < 5)  # True
print(1<<5)

#三元运算符
print("三元运算符及其表达方式:")
def small(x,y):
    if x < y:
        small = x
    else:
        small = y
    print(small)
small(10,20)
x,y=4,5 #给x,y 赋值
small=x if x<y else y #对if ...else 的三元操作改写
print(small)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值