4.千峰教育布尔&list与条件循环语句与turtle--自制随堂笔记

布尔值:
一个布尔值只有True、False两种值

b1 = True
b2 = False
print(b1, b2)

空值:是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊值。

n = None
print(n)

储存五个人的年龄,求他们的平均年龄

age1 = 18
age2 = 19
age3 = 20
age4 = 21
age5 = 22
print((age1 + age2 + age3 + age4 + age5) / 5)

思考:要储存100个人的年龄
解决:使用列表
本质:是一种有序的集合

创建列表
格式:
列表名 = [列表选项1, 列表选项2, 列表选项3, ······列表选项n]

# 创建了一个空列表
list1 = []
print(list1)
# 创建带有元素的列表
list2 = [18, 19, 20, 21, 22]
# 注意:列表中的元素数据可以是不同类型的
list3 = [1, 2, "sunck", "good", True]
print(list3)

列表元素的访问
注意不要越界(下标超出了可表示的范围)
取值 格式:列表名[下标]

list4 = [1,2,3,4,5]
print(list4[2])
# 替换
list4[2] = 300
print(list4)

创建带有元素的列表

list2 = [18,19,20,21,22]
index = 0
sum = 0
# 嵌套最好不要超过三层
while index < 5:
	sum += list2[index]
	index += 1
	if index == 5:
		print("平均年龄: %d" % (sum / 5))

注意:列表中的元素可以是不同的类型

list3 = [1, 2, "sunck", "good", True]
print(list3)

列表操作:
列表组合

list5 = [1,2,3]
list6 = [4,5,6]
list7 = list5 + list6
print(list7)

列表的重复

list8 = [1,2,3]
print(list8 * 3)

判断元素是否在列表中

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

列表截取

list10 = [1,2,3,4,5,6,7,8,9]
print(list10[2:6])
print(list10[3:])
print(list10[:5])

二维列表

list11 = [[1,2,3], [4,5,6], [7,8,9]]
print(list11[1][1])

列表方法
append 在列表中末尾添加新的元素

list12 = [1,2,3,4,5]
list12.append(6)
list12.append([7,8,9])
print(list12)

在末尾一次性追加另一个列表中的多个值

list13 = [1,2,3,4,5]
list13.extend([6,7,8])
print(list13)

在下标处添加一个元素,不覆盖原数据,原数据向后顺延

list14 = [1,2,3,4,5]
list14.insert(2, 100)
list14.insert(2, [200, 300])
print(list14)

pop(x=list[-1])
移除列表中指定下标处的元素(默认移除最后一个元素),并返回删除的数据

list15 = [1,2,3,4,5]
list15.pop()
list15.pop(2)
print(list15.pop(1))

remove 移除列表中的某个元素第一个匹配的结果

list16 = [1,2,3,4,5,4,5,4]
list16.remove(4)
print(list16)

清除列表中所有的数据

list17 = [1,2,3,4,5]
list17.clear()
print(list17)

从列表中找出某个值第一个匹配的索引值

list18 = [1,2,3,4,5,3,4,5,6]
index18 = list18.index(3)
# 圈定范围  从下标数为3到下标数为7
index19 = list18.index(3, 3, 7)
print(index18, index19)

列表中元素个数

list20 = [1,2,3,4,5]
print(len(list20))

获取列表中的最大值

list21 = [1,2,3,4,5]
print(max(list21))

获取列表中的最小值

list22 = [1,2,3,4,5]
print(min(list22))

查看元素在列表中出现的次数

list23 = [1,2,3,4,5,3,4,5,3,3,5,6]
print(list23.count(3))

从列表中删除指定元素

list23 = [1,2,3,4,5,3,4,5,3,3,5,6]
num24 = 0
all = list23.count(3)
while num24 < all:
	list23.remove(3)
	num24 += 1
print(list23)

倒序

list25 = [1,2,3,4,5]
list25.reverse()
print(list25)

排序 升序

list26 = [2,1,3,5,4]
list26.sort()
print(list26)

拷贝
浅拷贝 引用拷贝

list27 = [1,2,3,4,5]
list28 = list27
list28[1] = 200
print(list28)
print(list27)
print(id(list28))
print(id(list27))

出自千峰教育课上图片
–出自千峰教育课上图片
深拷贝 内存拷贝

list29 = [1,2,3,4,5]
list30 = list29.copy()
list30[1] = 200
print(list29)
print(list30)
print(id(list29))
print(id(list30))

--出自千峰教育课上图片–出自千峰教育课上图片

将元组转换成列表

list31 = list((1,2,3,4))
print(list31)

输入五个数,取第二大
方法一:

listNum = []

num = 0
while num < 5:   # 限定了输入五个数
	val = int(input())
	listNum.append(val)
	num += 1
print(listNum)

# 升序排序
listNum.sort()
count = listNum.count(listNum[len(listNum) - 1])
c = 0
while c < count:
	listNum.pop()
	c += 1
print(listNum[len(listNum) - 1])

方法二:

listNum = []

num = 0
while num < 5:
	val = int(input())
	listNum.append(val)
	num += 1
print(listNum)
if listNum[0] >= listNum[1]:
	max = listNum[0]
	sec = listNum[1]
else:
	max = listNum[1]
	sec = listNum[0]

index = 2
while index < len(listNum):
	if listNum[index] >= sec:
		sec = listNum[index]
	if listNum[index] >= max:
		sec = max
		max = listNum[index]
	
	index += 1
print(sec)

条件控制语句

if-elif-else语句
格式:
if 表达式1:
语句1
elif 表达式2:
语句2
elif 表达式3:
语句3
······
elif 表达式n:
语句n
else: # 可有可无
语句e

逻辑:
当程序执行到if-elif-else语句时,首先计算“表达式1”的值,如果“表达式1”的值为真,则执行“语句1”,执行完“语句1”跳过
整个if-elif-else语句,如果“表达式1”的值为假,计算表达式2的值;如果“表达式2”的值为真,则执行“语句2”,执行完“语句2”跳过
整个if-elif-else语句,如果“表达式2”的值为假,计算表达式3的值;如此下去直到某个表达式的值为真才停止,如果没有一个真的表达式
且有else,则执行“语句e”

age = int(input())



if age < 0:
	print("娘胎里")
elif age <= 3:
	print("婴儿")
elif age <= 7:
	print("儿童")
elif age <= 18:
	print("童年")
elif age <= 30:
	print("青年")
elif age <= 40:
	print("壮年")
elif age <= 50:
	print("中年")
elif age <= 100:
	print("老年")
elif age <= 150:
	print("老寿星")
else :
	print("老妖怪")

elif ---- else if
每个el都是对它上面所有表达式的否定

测试题:
女神说:
1,sunck is a good man
very good
2, sunck is a nice man
very nice
3, sunck is a handsome man
very handsome
4, 你是好人
我们真不合适
5,我希望我们之间存在纯友谊
我们之间也就只能有友谊了
6,你好坏呀
我感觉我们很合适

死循环:
表达式永远为真的循环

while 1:
print("sunck is a good man")

使用else语句
while 表达式:
语句1
else:
语句2

逻辑:
在条件语句(表达式)为False时执行else中的“语句2”

a = 1
while a<= 3:
	print("sunck is a good man!")
	a += 1
else:
	print("very very good")
print("you are right")

for 语句
格式:
for 变量名 in 集合:
语句

逻辑:
按顺序取“集合”中的每一个元素赋值给“变量”,再去执行语句,如此循环往复,直到取完“集合”中的元素截止

for i in [1,2,3,4,5]:
	print(i)

range([start, ]end[, step]) 函数 列表生成器
start默认为0,start默认为1
功能:
生成数列

a = range(10)
print(a)

for x in range(10):
	print(x)

for y in range(2, 20, 2):
	print(y)

同时遍历下标和元素
index, m = 下标,元素

for index, m in enumerate([1,2,3,4,5]):
	print(index, m)

sum = 0
for n in range(1, 101):
	sum += n
print(sum)

break语句:
作用:
跳出for和while循环
注意:
只能跳出距离他最近的那一层循环
不能跳出if!!!

for i in range(10):
	print(i)
	if i == 5:
		# 结束这个循环
		break



num = 1
while num <= 10:
	print(num)
	if num == 3:
		break
	num += 1
	# 注意循环语句可以有else语句,break导致循环截止,不会执行else下面的语句
	else:
		print("sunck is good man")

continue语句
作用:
跳过当前循环中的剩余语句,然后继续下一次循环

注意:跳过距离最近的循环


for i in range(10):
	print(i)
	if i == 3:
		continue
	print("*")
	print("&")

num = 0
while num <10:
	print(num)
	if num ==3:
		num += 1
		continue
	print("*")
	print("&")
	num += 1

打印99乘法表

num = 1
while num < 10:
	for i in range(1, 10):
		if num < i:
			break
		if num != i:
			print("%d * %d" % (i, num),end = " ")
		else:
			print("%d * %d" % (i, num))
	num += 1

输入两个数,求这两个数的最大公约数

num1 = int(input())
num2 = int(input())
if num2 > num1:
	a = num2
	b = num1
	if a % b == 0:
		print("最大公约数为 %d" % b)
	else:
		
		list1 = [b, a % b]
		while 1:
			if list1[(len(list1) - 2)] % list1[(len(list1) - 1)] == 0:
				print("最大公约数为 %d" % list1[(len(list1) - 1)])
				break
			else:
				list1.append((list1[(len(list1) - 2)] % list1[(len(list1) - 1)]))
else:
	if num1 % num2 == 0:
		print("最大公约数为 %d" % num2)
	else:
		
		list2 = [num2, num1 % num2]
		while 1:
			if list2[(len(list2) - 2)] % list2[(len(list2) - 1)] == 0:
				print("最大公约数为 %d" % list2[(len(list2) - 1)])
				break
			else:
				list2.append((list2[(len(list2) - 2)] % list2[(len(list2) - 1)]))

输入一个字符串,将字符串中的大写字母转换成小写,小写字母转换成大写

num = str(input("请输入字符串:"))

print(num.swapcase())

随机生成一个6位数的验证码(大写,小写,和数字)

import random
a = random.choice(range(9))
b = random.choice(range(9))
c = random.choice("abcdefghigklmnopqrstuvwxyz")
d = random.choice("abcdefghigklmnopqrstuvwxyz")
e = random.choice("QWERTYUIOPLMKJNHBGVFCDXSAZ")
f = random.choice("QWERTYUIOPLMKJNHBGVFCDXSAZ")

list1 = [a,b,c,d,e,f]
random.shuffle(list1)
print(list1)

小海龟
是一个简单的绘图工具
提供一个小海龟,可以把它理解为一个机器人,只能听得懂有限的命令

绘图窗口的原点(0,0)在正中间,默认海龟的方向是右侧

运动命令
forward(d) 向前移动d长度
backward(d) 向后移动d长度
right(d) 向右转动多少度
left(d) 向左转动多少度
goto(x,y) 移动到坐标为xy的位置
speed(speed)笔画绘制的速度[0,10]

笔画运动命令
up() 笔画抬起,在移动的时候不会绘图
down() 笔画抬起,移动画图
setheading()改变海龟的朝向
pensize() 笔画的宽度
pencolor(colorstr)笔画的颜色
reset() 恢复所有设置,清空窗口,重置turtle状态
clear() 清空窗口,不会重置turtle
circle(r,steps = e) 绘制一个圆形,r为半径,e为次数
begin_fill()
fillcolor(colorstr)
end_fill()

其他命令
done() 程序继续执行
undo() 撤销上一次动作
hideturtle()隐藏海龟
showturtlr()显示海龟
screensize(x,y)屏幕尺寸

正方形


矩形


正方体


五角星


奥运五环


围棋棋盘


国际象棋棋盘


导入turtle库

import turtle
turtle.screensize(40000,400)
turtle.speed()
turtle.forward(100)
turtle.right(45)
turtle.forward(100)
turtle.goto(-100,-200)
turtle.up()
turtle.goto(-100,100)
turtle.down()
turtle.pencolor("red")
turtle.pensize(10)
turtle.forward(30)
turtle.setheading(50)

turtle.reset()
turtle.clear()
turtle.circle(50,steps = 18)

turtle.goto(100,50)
turtle.begin_fill()
turtle.fillcolor("blue")
turtle.circle(50,steps = 10)
turtle.end_fill()
turtle.forward(50)
turtle.undo()
turtle.hideturtle()

turtle.done()
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值