python零基础简单学习(二)

本文档详细介绍了Python的基础运算符,包括算术、赋值、比较、逻辑和位运算,并通过实例解释了其用法。此外,还讲解了Python中的赋值运算符、比较关系运算符、逻辑运算符的短路特性以及位运算的规则。同时,提到了输入输出语句和算符优先级的概念。

开头提示:本文档仅为本人自学时整理,如果能帮到更多初学者也是极好的,不喜勿喷,有错的地方也请指正

一、算术运算符

一元运算符: -(取反)
二元运算符:+、 -、 *、 /、 %、 **、 //

# 加 +
a = 1
b = 2
print(a + b)

# 减 -
c = 5
print(c - a)

# 乘 *
print(a * b)

#除
print(c / b)

#取余
print(c % b)

#幂 **
print(c ** b)

#地板除法(整除) //
print(c // b)

字符串使用 + 和*运算符

# +号拼接
a = 'hello'
b = ' world'
print(a + b)
# *重复
print(a * 2)

二、赋值运算符

#简单赋值运算符
x = 1
#加赋值运算符
x += 1 #展开:x=x+1
#减赋值运算符
x -= 1 #x=x-1
#乘赋值运算符
x *= 2 #x=x*2
#除赋值运算符
x /= 2 #x=x/2
#取余数赋值运算符
x %= 2 #x=x%2
#幂赋值运算符
x **= 2 #x=x**2
#取整除赋值运算符
x //= 10 #x=x//10

三、比较关系运算符

#<、>、==、!=、>=、<=
'''
> :大于
< :小于
== :等于
!= :不等于
>= :大于或等于
<= :小于或等于
'''
java = 90
python = 70
c = 95
print("java成绩:"+str(java)+"Python成绩:"+str(python)+"C语言成绩:"+str(c))
print("java>python:"+str(java > python))
print("java != python:"+str(java != python))
print("java < python:"+str(java < python))
print("java > c:"+str(java > c))
print("java >= python:"+str(java >= python))
print("c <= python:"+str(c <= python))

四、逻辑运算符

* not :逻辑非
* and :逻辑与
* or :逻辑或
这里有一点值得我们注意,Python作为动态语言,与java中的与和或有一定的区别。
我们在java中存在两种与和两种或,分别是短路形式的和非短路形式的,&、&&、|、||
何为逻辑短路,就是当前一个条件已经足够使得我们的逻辑运算得到最终结果时,系统将不执行后一个条件语句
而在我们的Python中,得益于动态语言的特点,我们Python中的与和或均为短路与和短路或,也就是逻辑短路

五、位运算

1. ~ :位反运算,将x的值按位取反
2. & :位与运算,x与y位进行位与运算,只有对应位都是1时,才为1,否则为0
3. | :位或运算,x与y位进行位或运算,只有对应位都为0时,才为0,否则为1
4. ^ :位异或运算,x与y位进行位异或运算,只有对应位不同时,才为1,否则为0
5. >> :右移,x右移a位,高位采用符号位补位,
6. << :左移,x左移a位,低位采用0补位


位运算只支持整数类型,int类型在Python中占4个字节,也就是32位二进制数,正数我们用原码表示,负数我们用补码表示。

首先我们来介绍一下原码、反码、补码怎么转换

以4位二进制代码为例 这个是2 0010 如果为原码,则它的反码为:1101,补码则是在原码的基础上+1:1110 (-2)

他们的最高位为符号位,判断这个数的正负,当为0时,是正数,1时为负数

print(bin(2))
print(bin(~(2)+0b01))

'''
位与运算
1000
1100
------
1000
'''

'''
位或运算
1000
0100
------
1100
'''

'''
位异或运算
1001
0101
-----
1100
'''

'''
位取反运算
~1101
-----
 0010
'''

这里我们着重讲一下左移和右移,因为我们的二进制以2位单位,所以我们进行左移和右移操作时,相当于是乘以或除以2的n次方。

要注意左右移运算符不会修改原先变量的值

#左移运算符
a = 2
print(a<<2)
#右移运算符
print(a>>1)

六、其他运算符

同一性测试运算符

is 和 is not,是否为同一对象
和“==”的区别,==是用来判断值是否相等的

a = 2
b = 2
print(a==b)
print(a is not b)
print(a is b)
print(id(a))#这里我们可以看到两个变量指向同一个地址,满足同一性,所以a is b 为True
print(id(b))

print("---------------------------------")

class person:
    def __init__(self,name):
        self.name =name
    def __eq__(self, other):
        if self.name == other.name:
            return True
        else:
            return False

p1 = person("张三")
p2 = person("张三")
print(p1==p2)#这里我们需要注意,对象比较时,我们需要给他定义一个 == 的比较规则
print(p1 is not p2)
print(p1 is p2)
print(id(p1))
print(id(p2))

成员测试运算符

in 和 not in a是否在b中

#成员测试运算符
str = "how are you"
a = "you"
print(a in str)
print(a not in str)

list = [1,2,3,4]
print(1 in list)
print(5 in list)

七、算符优先级

() > 函数调用 f(x) > 分片[start : end : step] > 下标 [index] > . 引用类成员 > ** 幂运算 > ~ 位反 > 正负号 + - > * / % 乘除取余 > + - 加减 > 位移运算 >> << > & 位与 > ^ 位异或 > | 位或 > in ,not in, is, is not, <, <=, >, >=, <>, !=, == > not 逻辑非 > and 逻辑与 > or 逻辑或 > lambda表达式

这里简单扩展一下lambda表达式

def sum(x, y):
    return x + y

print(sum(4,6))


#lambda表达式写法
sum1 = lambda x,y:x+y  #参数:表达式
print(sum1(4,6))

八、输入输出语句

输入:input()

a = input("请输入x的值:")
b = input("请输入y的值:")
def sum(x,y):
    return x+y;

result = sum(a,b)
print("result:"+result)

输出:print()

print可以输出数字、字符串、表达式(有结果的展示结果值)
一个print默认占用一行,当有两个print时,会显示在上下,如果想在一行输出两个变量,可以用逗号隔开
这里讲一个特殊的输出方式,将输出的内容展示在文本文件中

fp = open(r'D:\codespace\Pycharm_code\pythonProject2\day02\demo08.txt','a+')
print("每一天都要开心快乐,成长是必经的旅途哟",file=fp)
fp.close()

(二)的部分就到这里了,后续会继续努力更新,如果有帮助到大家学习python的,我表示很开心,希望与各位IT大佬以及萌新们一同进步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

其实我也不懂

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

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

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

打赏作者

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

抵扣说明:

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

余额充值