学习笔记:
1.常见运算符:
下面两行代码等价
a = a + 1
a += 1
b = b - 1
b -= 1
c = c * 10
c *= 10
d = d / 5
d /= 5
2.地板除法(砍掉小数位):
10 // 8 == 1
3.幂运算:
3 ** 2 == 9
4.四则运算优先级问题:
先乘除,后加减,先算括号里的,负号(-)(一元操作符)先和数字连在一起,and为二元操作符
5.幂运算比其左侧的一元操作符优先级高,比其右侧的二元操作符优先级低。
6.比较操作符:<>=
7.逻辑操作符:and , or , not
8.非0的整数值都解释为ture
9.优先级问题:
幂运算(有一元运算符的特例) > 正负号 > 算数操作符 > 比较操作符 > 逻辑运算符(not > and > or)
10.短路逻辑:
3 and 4 = = 4,而 3 or 4 = = 3
11.写出0到100所有奇数:
num = 0
while num <= 100:
if (num % 2 == 1):
print(num , end = ' ')
num = num + 1
12.算出爱因斯坦阶梯问题:
x = 0
while not ((x%2==1) and (x%3==2) and (x%5==4) and (x%6==5) and (x%7==0)):
x += 1
print('题目的解为:',end = '');print(x)
#while后面如果要两个条件同时成立记得加括号,因为not的优先级比and高
13.悬挂else:
C语言的就近原则
Python有缩进,可以避免悬挂else
14.三元操作符:small = x if 条件 else y(里面的条件为真,把x的值给small,条件为假时,把y的值给small)
x,y = 4,5
if x , y:
small = x
else:
small = y
small = x if x < y else y
15.断言(assert):
当assert为假时,程序自动崩溃,为真时,忽略这条代码。什么情况下我们会需要这样的代码呢?当我们在测试程序的时候就很好用,因为与其让错误的条件导致程序今后莫名其妙地崩溃,不如在错误条件出现的那一瞬间我们实现“自爆”。
一般来说我们可以用Ta再程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。
assert 3 > 4
16.Python 有一个成员资格运算符:in,用于检查一个值是否在序列中,如果在序列中返回 True,否则返回 False。
name = '美树沙耶香'
'沙耶香' in name
True
#输出值
'纱耶香' in name
False
17.三元操作符的应用:
x,y,z = 6,5,4
#small = (x if x < y else y) if (x if x < y else y) < z else z
#判断x和y大小,输出的结果为x,y中较小的数,然后与z比较即可
small = x if (x<y and x<z) else (y if y<z else z)
print(small)
#else后面可以跟两个数
18.while条件(执行到某一位置时退出)
19.for循环:for 目标 in 表达式 :
>>> favor = 'sayaka'
>>> for i in favor:
print(i , end=' ')
s a y a k a
>>> member = ['巴麻美','美树沙耶香','鹿目圆','佐仓杏子','晓美焰']
>>> for each in member:
print(each , len(each))
巴麻美 3
美树沙耶香 5
鹿目圆 3
佐仓杏子 4
晓美焰 3
>>>
20.len:表示字符的长度
21.range(for循环的小伙伴):
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#默认从0开始,写10不包含10
22.组合使用:
>>> for i in range(2 , 10):
print(i , end = ' ')
2 3 4 5 6 7 8 9
#start会包含(2会包含在内),stop不包含(10不包含在内)
23.for的步进:
>>> for i in range(2 , 10 , 2):
print(i , end = ' ')
2 4 6 8
>>>
#步进即为每一次往后数几个数
24.break和continue:
break:终止循环,并跳出循环体:
bingo = '枫原万叶和可莉'
answer = input('下个池子复刻谁:')
#while answer != bingo:
#answer = input('博士,原神好玩吗?')
#print('所以旅行者你要快点攒原石哦')
while True:
if answer == bingo:
break
answer = input('博士,原神好玩吗?')
print('所以旅行者你要快点攒原石哦')
continue:终止本轮循环,并开始下一轮循环:
for i in range(10):
if i%2 != 0:
print(i)
continue
#如果i为奇数就把它打印出来,并跳出循环再来一遍
#example:第一次为0,不为奇数,那么+2打印,输出为2
#example:第二次为1,为奇数,直接打印
i += 2
print(i)
25.什么情况下我们要使循环永远为真?
用于游戏实现,因为游戏只要运行着,就需要时刻接收用户输入,因此使用永远为真确保游戏“在线”。操作系统也是同样的道理,时刻待命,操作系统永远为真的这个循环叫做消息循环。另外,许多通讯服务器的客户端/服务器系统也是通过这样的原理来工作的。所以永远为“真”虽然是“死循环”,但不一定是坏事,再说了,我们可以随时用 break 来跳出循环!
26.password system:
我的版本:
password = input('请输入开机密码(您共有3次输入机会):')
cishu = 0
while True:
if '*' in password:
password = input('您输入的密码含"*",请重新输入:')
continue
elif password == '040303':
panduan = 1
break
else:
print('密码错误')
cishu += 1
if cishu > 2:
panduan = 0
break
else:
print('您还有',3-cishu,'次机会',end = '')
password = input('请重新输入:')
continue
if panduan == 1:
print('密码正确,已开机')
if panduan == 0:
print('错误次数过多,已锁死')
范例:
1. count = 3
2. password = 'FishC.com'
3.
4. while count:
5. passwd = input('请输入密码:')
6. if passwd == password:
7. print('密码正确,进入程序......')
8. break
9. elif '*' in passwd:
10. print('密码中不能含有"*"号!您还有', count, '次机会!', end=' ')
11. continue
12. else:
13. print('密码输入错误!您还有', count-1, '次机会!', end=' ')
14. count -= 1
27.100-1000 的水仙花数:
我的
#for x in range(100,1000):
#if x == (x//100)**3 + ((x%100)//10)**3 + ((x%100)-(x%100)//10*10)**3:
#print(x)
范例:
for i in range(100, 1000):
sum = 0
temp = i
while temp:
sum = sum + (temp%10) ** 3
temp //= 10
if sum == i:
print(i)
#牛逼啊,这范例谁想的到
28.三色球问题:3红3黄6蓝,抓8个球的排列组合:
我的:
red = 3
while red:
yellow = 3
while yellow:
print('红 '*red , '黄 '*yellow , '绿 '*(5-yellow))
yellow -= 1
red -= 1
yellow = 3
while yellow:
print('黄 '*yellow , '绿 '*(8-yellow))
yellow -= 1
#首次用到循环套循环,太聪明了
#(while red , red -=1) == (for red in range(0,4)
范例:
print('red\tyellow\tblue')
#/t的意思是对齐表格各列
for red in range(0, 4):
#-=此处可以等效为for,for更简单
for yellow in range(0, 4):
for green in range(2, 7):
if red + yellow + green == 8:
#怎么让其成立:三个变量相加等于8
#注意,下边不是字符串拼接,因此不用“+”哦~
print(red, '\t', yellow, '\t', green)
代码速查:
1.while:
while + 条件:
while 为真时,执行循环内的内容
break:跳出循环
continue:跳出本次循环,直接进入下一次循环
2.断言:assert:
assert 3 > 4
输出为崩溃
3.成员资格运算符:in
name = '美树沙耶香'
'沙耶香' in name
True
4.三元操作符:
x if 条件 else y
条件为真:输出x
条件为假:输出y
5.for
for 目标 in 表达式
6.len:字符长度
len(string)
7.range
range(start,end,步进)