作业:
除3余2,除5余3,除7余2
pwd = int(input("请输入数字:"))
if pwd%3==2 and pwd%5==3 and pwd%7==2:
print("正确")
else:
print("错误")
if的嵌套
例子:
g = int(input("请输入一个数字:"))
if g%3 == 2:
if g%5 == 3:
if g%7 == 2:
print("正确")
else:print("g%7 == 2 不满足")
else:print("g%5 == 3 不满足")
else:print("g%3 == 2 不满足")
判断是不是闰年
除以4余数为0除以100余数为0除以400余数为0
g = int(input("请输入一个年份:"))
if g%4 == 0:
if g%100 == 0:
if g%400 == 0:
print("是闰年")
else:print("g%4 == 0 不满足,不是闰年")
else:print("g%100 == 0 不满足,不是闰年")
else:print("g%400 == 不满足,不是闰年")
笔记:
三目运算符
三元运算符:条件成立时的代码 if 判断 else 条件不成立时的代码
程序结构:
循序结构:
选择结构:
if 关键字
最简单的if语句:
if表达式:
代码块
else:
代码块
例子
除3余2,除5余3,除7余2
pwd = int(input("请输入数字:"))
if pwd%3==2 and pwd%5==3 and pwd%7==2:
print("正确")
else:
print("错误")
if的嵌套
字符串切片:sanme[start:end:step]
sname:要操作的序列名称
start:表示切片的开始位置(包含自身),如果不去指定的话,默认从0开始
end:表示切片的结束位置(不包含自身(左闭右开(包含左边不包含右边))),如果不指定的话,默认是序列的长度
step:表示切片的步长,如果省略,默认为1
s[:] 切开的是整个字符串
nanhang:步长为2 nnag 0123456
s=nanhangjincheng
0123456789
-3-2-1
正向索引s[0:5]---->nanha(左闭右开)
负向索引s[-3:-1]--->en(左闭右开)
s[::-1]:字符串反转
s[-1:-3:-1]---->ne
例子
判断这句话是不是回文
例子:上海是海上
s = input("请输入一句话:")
if s[:] == s[::-1]:
print("这句话是回文")
else:
print("no")
列表:list [元素1,元素2,元素3,元素4,]
例子:[1,2,3,"hhahudhau",[3,4,5]]
列表里的元素数据类型可以不相同,列表可以相互嵌套
列表的数组下标从0开始
list列表里边的数可以改变 重新赋值
列表里的加法和乘法
例子
list = [1,2,3,4,"jidasjida",[7,2,1,3]]
print(len(list))
list[1] = "jidasjida"
print(list)
list_1 = [1,2,3,4]
list_2 = [2,4,3,4]
list_3 = list_1 + list_2
print(list_3)
print("觉得我"*10)
append()向链表尾部追加元素
onsert(位置,追加的元素)向指定位置追加元素
sort()列表排序(只能排int)字母按照ASCII之进行排序,类型不能混淆
index:查找元素第一次在列表中出现的位置,如果没有这个元素则会
reverse():将列表元素顺序翻转
remove():通过元素来移除元素,如果元素不存在则抛出异常
count():统计元素在列表中的个数
clear():清除元素
copy():浅拷贝对象(拷贝)不等价于 = (引用传递),在堆内存中进行对象拷贝
extend():合并列表
pop():与append()相反删除最后一个元素
del():删除=
例子del(list[1])
del[list[1]]
循环结构:
8,位运算:基于二进制的运算
计算机的底层基于位运算的
& :两真则真,一假则假
|:两假则假,一真则真
例子:8|9
8 0000 1000
| 9 0000 1001
-------------------
0000 1001
9
^:(异或)相反为真,相同为假
例子:8^9
8 0000 1000
^ 9 0000 1001
-------------------
0000 0001
1
~:按位取反,包含符号位
~2:0000 0010 ---->1111 1101(补码-1)---->1111 1100(反码符号位不变,其余位按位取反)---->1000 0011(原码)
>> :右移: 除以2的n次方(右移的位)
例子:
8>>2: (8右移2位) 0000 1000
0000 0010 (2)
<< :左移 :乘以2的n次方
+例子
8<<2: (8左移2位) 0000 1000
0010 0000 (32)
字节1byte = 8bit
二进制负数相加
8位的首位作为符号位 1代表负数 0代表正数
-3+2
1000 0011
+0000 0010
------------
为了解决负数运算问题-----原码,反码,补码三个概念
原码 :数值的标准的二进制
反码 :符号位不变,其余位取反
补码 :反码+1
-3 原码 反码 补码
1000 0011 1111 1100 1111 1101
2 0000 0010
-----------------------------------
1000 0001 1111 1110 1111 1111
(符号位不变)
-1
正数不存在反码,补码,计算机底层的运算基于补码
-3+4
-3 原码 反码 补码
1000 0011 1111 1100 1111 1101
4 0000 0100
-----------------------------------
• 1 0000 0001 (溢出直接砍掉)
• 0000 0001(正数不存在反码,补码)
•