一、位运算
1。定义:基于二进制的运算 ------计算机的最小单位
注:计算机的底层都是基于位运算的
2.位运算
& 与运算
| 或运算
^ 异或
~ 取反
>> 右移
<< 左移
字节1byte = 8bit
1000 0000表示-128
为了解决负数运算问题------原码、反码、补码三个概念
原码:数值的标准的二进制位
反码:符号位不变,其余位取反
补码:反码加一
计算机底层的运算是基于补码
4.运算法则
#位运算:
#&:两真则真,一假则假
#|:两假为假,一真为真
#^:相反为真相同为假
#~:按位取反包含符号位
#>>:右移 除以2的n次方(右移的位)
#<<:左移 乘以2的n次方(左移的位)
二、三元运算符
三元运算符:条件成立时的代码 if 判断 else 条件不成立时的代码
例如:
a = int(input("请输入您的年龄:"))
print("恭喜你,你成年了")if(a > 18)else print("小屁孩,快去写作业")
三、结构
程序结构:顺序结构、选择结构、循环结构
选择结构:
关键字是if
(1)if…
#例:
# age = int(input("请输入你的年龄:"))
# if age > 18:
# print("你成年了,继续努力")
(2)if…else
# uname = input("请输入用户名")
# pwd = input("请输入密码")
# if uname =zhangsan and pwd = 123456:
# print("登录成功");
#else:
# print("登录失败")
(3)if…elif…else
#if……elif……else
#g = int(input("请输入你的高等数学成绩:"))
#if g < 60:
# print("你小子完蛋了")
#elif 80 <= g < 100:
# print("还不错,继续努力")
#else:
# print("你小子有猫腻")
(4)循环嵌套
例:今有物不知其数,三三数余二,五五数余三,七七数余二,求为何
num = int(input("请输入一个数:"))
if num % 3 == 2:
if num % 5 == 3:
if num % 7 == 2:
print("回答正确")
else:
print("num % 7 == 2 不满足")
else:
print("num % 5 == 3 不满足")
else:
print("num % 3 == 2 不满足")
四、字符串的切片
1.字符串的索引
正向索引:下标从0开始
负数索引:下标从-1开始
2.字符串的切片
格式:
sname[start:end:step]
sname:要操作的序列名称
start:表示切片的开始位置(包含自身,如果不去指定的话,默认从0开始
end:表示切片的结束位置(不包含自身),如果不指定的话,默认是序列的长度
step:表示切片的步长,如果省略,默认位1
切片
s[:] --->切片切的是整个字符串
例:
s = "nanhangjingcheng"
s[:7:2]:
nanhang :步长为2,--> nnag
s[::-1] : --->字符串反转
'gnehcgnijgnahnan'
五、list列表
1.容器:容器是可以存放多个元素的一种数据类型
2.python提供的容器:列表,集合,元组,字典
3.列表list
(1)结构: list [元素1,元素2,元素3,元素4…]
注:列表里面的元素数据类型可以不相同,而且列表可以相互嵌套
(2)列表的数组下标从0开始
例:
list = [1,2,3,4,"nanhangjingcheng",[7,8,9]]
print(list[1])
print(list[-1])
print(list[-1][1])
结果:
2
[7, 8, 9]
8
(3)list列表里面的数可以改变即可以进行重新赋值
(4)列表的加法与乘法
list_1 = [1,2,3]
list_2 = [4,5,6]
# 加法:
list_3 = list_1 + list_2
print(list_3)
结果:
[1, 2, 3, 4, 5, 6]
乘法:
list_4 = list_3 * 3
print(list_4)
print("我爱你"*10)
结果:
[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]
我爱你我爱你我爱你我爱你我爱你我爱你我爱你我爱你我爱你我爱你
(5)list常见的方法
append() :向列表尾部追加元素
insert(index,object) :向指定的位置追加元素
sort() :列表排序(只能排int类型的)字母按照ASCII值进行排序,类型不能混淆
index() :查找元素第一下次在列表中出现的位置,如果没有这个元素则会报错
reverse() :将列表元素的顺序翻转
remove() :通过元素来移除元素,如果元素不存在则抛出异常(报错)
count() :统计元素在列表中的个数
clear() :清楚元素
copy() :浅拷贝对象(拷贝)不等价于=(引用传递),在堆内存中进行对象拷贝
extend() :合并列表
pop() :与append()相反,删除列表最后一个元素,并返回值为这个元素,要删除指定位置的元素,用pop(i)方法,其中i是索引位置
课堂案例
今有物不知其数,三三数余二,五五数余三,七七数余二,求为何(用if…else…)
num = int(input("请输入一个数:"))
if num % 3 == 2 :
if num % 5 == 3 :
if num % 7 == 2 :
print("数字正确")
else:
print("num % 7 == 2不满足")
else:
print("num % 5 == 3不满足")
else:
print("num % 3 == 2不满足")
判断闰年
year = int(input("请输入年份:"))
if year % 4 == 0 :
if year % 100 == 0 :
if year % 400 == 0 :
print("是闰年!!!")
else:
print("year % 400 == 0不满足")
else:
print("year % 100 == 0不满足")
else:
print("year % 4 == 0不满足")
))
if year % 4 == 0 :
if year % 100 == 0 :
if year % 400 == 0 :
print(“是闰年!!!”)
else:
print(“year % 400 == 0不满足”)
else:
print(“year % 100 == 0不满足”)
else:
print(“year % 4 == 0不满足”)
![在这里插入图片描述](https://img-blog.csdnimg.cn/f1ad5159759d4408a3f5ceb46d5c0df1.png#pic_center)