"""
list 列表
问题 :定义五个人年龄 最后求出他们的平均年龄
"""
age1=10
age2=18
age3=50
age4=5
age5=30
print((age1+age2+age3+age4+age5)/5)
"""
如果存储1000个年龄求他们的平均年龄:
解决:使用列表
列表本质: 是一种有序的集合
创建列表
格式: 列表名 = [列表选项1, 列表选项2, ..., 列表选项n]
"""
#创建空列表
list1 = []
#创建有元素的列表
#列表中的元素的数据类型可以不同
list2 = [1,2,3,45,4,5,4,"good",True]
"""
列表元素的访问
1.取值: 列表名[下标]
2.替换修改 列表名[下标] = 数值
"""
print(list2[2])
list2[2] = 1000
print(list2)
#注意 下标不要超过列表的界限
#列表的操作
list3 = [1,2,3]
list4 = [4,5,6]
print(list3+list4) #得到的是一个新的列表
#列表重复
print(list4*3)#也是得到一个列表
#in not in
print(1 in list3)
print(1 not in list3)
#列表截取(切片)
list5 = [1,2,3,4,5,6,7,8,9,4,5,6,2]
print(list5[2:7])
print(list5[2:-1])#-1表示的是最后一个元素的下标。
#二维列表: 列表元素是一维列表 本质:本质就是一维列表 在内存里储存就是列表
"""列表中的方法"""
#append(object) 在列表的末尾加入一个元素
list=[1,2,3,4,5,5,9,7,1,2,3,5]
list.append(6)
#只能在末尾添加一个元素。
# extend(seq) 在列表末尾一次追加多个元素
list.extend([9,8,7,])
#insert(index,obj) 将元素插入列表
list.insert(2,100)
#将元素右移,不会覆盖
#pop(obj=list[-1]) 默认删除的是-1
list.pop()#可以写进去下标。
#remove(obj) 移除列表中的某个值的第一个匹配项
list.remove(8)
print(list)
#clear() 清空列表
list.clear()
print(list)
#index() 找出列表中匹配项第一个下标
list6 = [1,2,1,2,3,4,5,6,2,3]
print(list6.index(2))
#len(list) 返回列表中元素的个数
#count() 统计某个元素在列表中出现的次数
print(list6.count(2))
#max() min() 返回列表中元素的最大值,最小值
#reverse() 倒叙列表中的元素
print((list6.reverse())) #可以改变内容
#sort([func]) 排序 默认升序排列
print(list6.sort())
#list(seq) 转为列表 字符串,元组,集合 等。
from copy import copy,deepcopy
#copy 拷贝
'''
浅拷贝和深拷贝
深浅拷贝的区分在于列表中是否有其他对象列表'''
"""
==:判断的是值
is:判断的是内存地址
"""
a = [1,2,1,[1,2,1]]
b = a
print(a == b)
print(id(a),id(b))
print(a is b)
#浅拷贝:只拷贝表层元素
#copy
b = copy(a)
#深拷贝:在内存中重新创建所有子元素
#deepcopy
c = deepcopy(a)
print(a == b)
print(c == a)
print(a is b)
print(a is c)
print(id(a), id(b), id(c))
print(id(a[3]), id(b[3]), id(c[3]))
"""
tuple 元组
"""
#本质:也是一种有序集合,
#特性:1.与列表非常类似 2.一旦初始化就不能修改 3.使用小括号。
#创建元组: 元组名 = (元组选项1,元组选项2,...,元组选项n)
t1 = ()
#定义带元素的元组 语速类型可以不同
t2 = (1,2,3,"good",True)
print(t2)
#定义含有一个元素的元组的时候要注意加个,
t3 = (1,)
print(t3)
#元组元素的访问
#取值 元组名[下标],不能超过下标,可以使用负数
t4 = (1,2,3,4,5)
print(t4[2])
print(t4[-2])
#修改元组, 我们不能修改其中的元素 但是能修改元素内的列表
t5 = (1,2,3,[1,2,3])
t5[3][1] = 100 #根据下标修改
print(t5)
#元组的操作 和列表的操作基本相同
#元组的组合
#元组的重复
#元组截取(切片)
#元组的方法
#len(tuple) 返回元组的元素个数
#index 查找拿到下标 count
#max(tuple)
#min(tuple)
#tuple(seq) 转为元组
"""
条件控制语句"""
"""
if 语句
if-else 语句
if-elif-else 语句
格式:
if 表达式1:
语句1
elif 表达式2:
语句2
....
elif 表达式n:
语句n
else:
语句e
逻辑:当程序执行if-elif-else语句时,首先计算表达式1的值,
如果表达式1为真,执行语句1,执行完语句1结束整个语句
向下执行,如果表达式1的值为假,则计算表达式2的值,为真 执行语句2
同上。
如果所有的表达式都为假,则执行else内的语句。
精髓:每一个elif都是对上边所有表达式的否定。
"""
"""
循环语句 while for
"""
"""
while :
格式:
while 表达式:
语句
逻辑:当程序执行到while语句时,首先计算表达式的值,如果表达式的值为假,则跳过整个while语句
想继续向下执行,如果表达式的值为真,则执行语句,执行完语句在执行表达式的值。,进行循环知道表达式的值为假为止。
"""
#打印十次输出
index = 0
while index < 10:
print("hello_world")
index += 1
#求1+2+3。。。+100的和
index = 1
sum=1
while index < 100:
index += 1
sum += index
print(sum)
#死循环 表达式永远为真的循环。
"""
while使用else 语句
格式:
while 表达式:
语句1
else:
语句2
逻辑:在表达式的值为Flase时,执行else中的语句2.
"""
a = 1
while a < 5:
print("hello world")
a += 1
else:
print("world _ hello")
"""
for 语句
格式:
for 变量 in 集合:
语句
逻辑:当程序执行到for语句时,按顺序取集合中的每个元素赋值给变量,
再执行语句,循环直到取完集合中的元素为止
"""
for x in [1,2,3,4,5]:
print("x = %d"%x)
#range([beg=0, ]end[, step]) 列表生成器,beg 开始的数字默认从0开始 end:结束的数字不包含在内,step: 步长 默认为1.
for x in range(1, 6):
print("x = %d"%x)
sum = 0
for x in range(1, 101):
sum += x
print("sum = %d"%sum)
#同时遍历下标和元素
for index, x in enumerate([1,2,3,4,5]):
print(index, x)
#enumerate 返回的是一个元组
#如果变量是一个的话 就得到的是元组 两个就分别得到值
#原理 a, b = (1, 2)
"""
pass语句:
作用: 当语句要求不希望任何命令或代码来执行
说明: pass语句是一个空操作,在执行时没有任何相应。最终会有用的,但是暂时写不出来。
使用在: if语句 while语句 for语句 函数 类 等位置。
break语句
作用:跳出循环
for x in [1,2,3,4,5,6]
if x == 3:
break
print("x = %d"%x)
注意:只能跳出距离最近的循环。 循环语句中的else语句,表达式错误循环导致循环终止时被执行,但循环被break终止时,else不执行
continue语句
作用:跳过本次循环语句中的生于语句,然后继续下一次循环
for x in [1,2,3,4,5,6]
if x == 3:
continue
print("x = %d"%x)
"""
"""
字典:
使用键—值对(key — value)的形式存储数据,具有极快的查找速度
特性:
1.字典的key必须唯一
2.key必须是不可变对象 字符串、整数、元组等都是不可变的对象
但是 列表是可变的,不能作为key
3.key 一般为字符串
思考 :保存一个学生的基本信息(姓名,性别,年龄,身高,体重。)
解决: 使用字典
"""
#创建字典 存储一个学生的基本信息
#格式 {key1:value1,key2:value2}
stu={"name":"sunck", "age":18, "sex":"男",
"height": 173.5, "weight": 75}
#元素的访问
#获取 字典名[key] 字典.get[key]
print(stu["name"])#获取的键不存在会报错
print(stu.get("score"))#一般都是用get来获取
#添加
stu["score"] = 89.90
stu["height"] = 180#如果键不存在则增加属性否则覆盖原数据。
#删除
stu.pop("score")#删除指定的项
print(stu)
#遍历
for key in stu:#拿到的是键
print(stu[key])
for value in stu.values():#拿到的是值
print(value)
for key, value in stu.items():#拿到的是键和值
print(key,value)
#字典的是无序的
for index,key in enumerate(stu):#拿到的是元组
print(index, key)
"""
比较 list 和dict
dict:
优点:查找和插入的速度极快,而且不会随着key的增多而降低效率
缺点:需要占用大量的内存,内存浪费过多
list:
优点:占有内存小,浪费内粗你少
缺点:查找和插入的时间会随着元素的增加而增加
"""
"""
set:集合
与dict类似,是一组Key的集合(不存储value)
本质:无序和无重复的集合
"""
#创建:需要用一个list或者tuple作为输入集合
#注意:列表中的重复元素会被过滤掉
s1 = set([1,2,3,4,5])
print(s1)
#应用:列表去重
numlist = [1,2,3,4,5,6,7,8,9,7,8,5,6,5,1,2,0,3,1,2]
#numlist = list(set(numlist))
print(numlist)
#添加
#插入list、字符串、元组的每个元素
s2 = set([1,2,3,4,5])
s2.update([7,8,9])
s2.update("hello_world")
s2.update((6,7,8))
#不能直接插入数字
s2.update(range(9))
print(s2)
#删除
s3 = set([1,2,3,4,5])
print(s3.pop())#从左侧开始删除
s3.remove(3)#删除指定元素,如果元素不存在会报KEyError的异常
print(s3)
#遍历
s4 = set([6,5,2,3,1])
for key in s4:
print(key)#遍历是按照顺序的
for index, key in enumerate(s4):
print(index,key)#索引没有意义。
#交集和并集
s5 = set([1,2,3,4])
s6 = set([3,4,5,6])
#交集
print(s5 & s6)
#并集
print(s5 | s6)
"""
list 、 tuple 、string-> set #list和tuple中的元素不能存在可变对象
set()
tuple 、 set 、string-> list
list()
list 、 set 、string-> tuple
tuple()
"""
"""
turtle模块绘图
是一个简单的绘图工具
import turtle
提供了一个小海龟,类似一个机器人,能偶听懂一些简单的命令
#绘图窗口的原点(0,0)在正中间,默认向右侧移动
操作命令:
1.运动命令
forward(x) 向前移动, x代表距离
backward(x) 向后移动,x代表距离
right(degree)向右转动degree度
left(degree)向左转动degree度
goto(x,y) 将笔画(小海龟)移动到坐标(x,y)的位置
speed([speed]) 笔画绘制的速度,范围在[0,10]之间的整数
2.笔画控制命令
up() : 让笔画抬起,移动时不绘制图形
down(): 让笔画落下,落下后再移动绘制图像
setheading(degree): 海归的朝向,degree代表角度
reset() : 恢复设置,清空窗口,重置trutle为起始状态
clear(): 清空窗口,
pensize(width) 笔画的宽度
begin_fill() 开始填充
fillcolor(color) 绘制图形的填充颜色
end_fill() 结束填充
dot(radius,color) 画点
circle(redius,extent) 绘制一个圆形,redius为半径,extent为次数,画圆就不必写第二个参数。
3.其他命令
undo() 撤销上一个turtle的动作,只撤销一个动作
hideturtle() 隐藏箭头
showturtle() 显示箭头
write(str, font = (font-name, font-size, font-type))
screensize(x,y) 设置屏幕的宽高。
"""
import turtle
turtle.forward(100)
python基础学习30天——3
猜你喜欢
转载自blog.csdn.net/qq_37235798/article/details/81384849
今日推荐
周排行