一.运算符

运算符、变量:存储的是数据对应的内存地址   基本数据类型  int float bool str
 ""   ''  """  """   bool :默认所有的非0数字都是True  int(True)  1

算数运算符


 = :赋值运算符   a+=1   a = a + 1  -=

比较运算符   最终的结果是布尔值
 等于  ==
 print(256==256)

 不等于  !=
 print(1 != 1)
 print(2>1)
 print(2>=1)
 print(2<1)
 print(2<=1)

 逻辑运算符  and:逻辑与  两边为真才为真   or:一真则真   not:取反

 print(2>1 and 1==2)
 print(2>1 or 1==2)
 print(not 2>1)

 成员运算符  检测某个数据是否在某个序列中  [1,2,3,4]   in    not in
 print("zhangsan" not in [2,3])


 位运算符   二进制的运算   0  1     半导体    二极管


 10+11

 0000 1010
 0000 1011
 ----------
 0001 0101

 5+(-4)
 数据的二进制的最左边第一个二进制位作为符号位  1  负数  0  正数
 1000 0100
 0000 0101
 ---------
 1000 1001    -9


 科学家   原码  反码  补码    负数基于补码的运算

 原码:十进制数字对应的二进制表示
反码 :  符号位不变,其余为取反
补码 = 反码+1
 


 &  按位与 两位都为1,则为1


 print(10 & 4)
 |  有1则1
 print(10 | 4)
 0000 1010
 0000 0100
 --------
 0000 1110

 ^   不相同,则为1


 print(10^11)
 0000 1010
 0000 1011
 ----------
 0000 0001


 ~:按位取反  对数据中所有的二进制位全部取反
 


 <<   不需要考虑符号位的,左移几位,右边补几个0
>>   考虑符号位,如果本身是负数,则右移之后,左边补1   本身是正数,则补0


1000 1000
 1111 0111
1111 1000

 1111 1110

1111 1101
1000 0010


 print(11>>2)
 print(-8>>2)
 5  + -4

 -127 ---  127   254   -0:-128

 11111111  255  254 1000 0000 (-0)  0000 0000(+0)

 身份运算符   is   is not


 a = "zhangsan !"
 b = "zhangsan !"
 print(a == b)
 print(a is b)
 print(id(a),id(b))


 is   判断内存地址是否相同的   == 判断值是否相同的


 小整数常量池  :  python优化,吧常用的数值存储再常量池中,代码中但凡用到,都是同一个内存地址 -5~256
字符常量池  :  长度较短,没有特殊字符,没有空格的字符串,也会存储再常量池中。

简单的计算器   用户输入num1、num2和运算符(+|-  * / )   你返回  a+b=c类型的打印


eval()函数   把用字符串表示大的python表达式执行
 num1 = input("请输入num1:")
 num2 = input("请输入num2:")
 a = input("+  -  *  /")
 c = eval(num1+a+num2)
 print(num1,a,num2,"=",c)


二. 字符串的格式化输出
 a + b = a+b

练习题:

 案例2:员工输入了自己的工资金额,要求判断按照当前RMB面额,给员工以最少的钞票数量进行之付

 > 用户输入:5399
 >
 > 输出:x张100,y张50,z张20, m张10,n张5,o张1块
 >
 > 要求:支付钞票数量最少

 // %

money = int(input("请输入工资数额:"))
 5399//100   53

 5399 % 100 = 99

 99 // 50 = 1
 99 % 50 = 49

b = money // 100
w = (money%100)//50
er = ((money%100)%50) // 20
shi = (((money%100)%50)%20)//10
yi = ((((money%100)%50)%20)%10)//1

print(f"{b}张100,{w}张50,{er}张20,{shi}张10,{yi}张1")

字符串的格式化输出

username=input("请输入用户名:")
passwd=int(input("请输入密码:"))

 print("用户名是:",username,",mima是:",passwd)

 %操作符
 %s  字符串   %d  整数   %f  浮点数
 print("用户名是:%s,密码是:%.2f"% (username,passwd))

 print("用户名是:{0},密码是:{1},确认密码:{1}".format(username,passwd))


 print(f"用户名是:{username},mima是:{passwd}")   推荐使用

更多推荐