吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1176|回复: 19
收起左侧

[学习记录] 代码小白的Python学习之路

[复制链接]
nocofffe 发表于 2023-7-26 20:24
本帖最后由 nocofffe 于 2023-7-26 20:39 编辑

30 days Python

引言

本人为一个编程小白,针对自己的学习情况发帖子记录自己的学习生活,以此激励和锻炼自己学习能力以及写文章的能力。

Days 05 Tuple

5.1 元组的定义

元组的每一笔数据称元素,元素可以是整数、字符串或列表等,这些元素放在小括号() 内彼此用逗号隔开,可以使用print()函数将元组名称当作变量名称打印即可。

5.2 优势

与列表最大的差异是,元组的元素值元素个数不可更改,有时又被称为不可改变的列表。

元组对比列表的优点:

1、可以更安全的保护数据,程序设计中有些数据可能永远不会改变,将他储存在元组中,可以被安全地保护,例如:图像处理时对象的长、宽或每—像素的色彩数据,很多是元组数据类型。

2、元组(tuple)结构比列表(list)简单占用较少的系统资源,程序执行时速度比较快。

了解了上述元组的优点后’未来设计程序,如果确定数据可以不更改,就尽量使用元组数据类型。


5.3 元组切片

<img src="C:\Users\hp-pc\Desktop\1690275906066.png" style="zoom:70%;" />

列表切片(用于对比)

"""
list[start:end]   =>读取索引从start到end-1
list[:end]        =>读取索引从最前面到end-1
list[:-n]         =>读取索引,不含最后n名
list[-n:]         =>获取列表最后n名
list[:]           =>获取所有元素
list[start:end:step]
list[::-1]        =>获得列表的颠倒排序,但原列表未改变
"""

5.4 遍历元组

# 用for遍历元组
keγs=("ic!", 'xabb',9099) #定义元组元素是字符串与数字
for  key in keγs:
    print(key)
ic!
xabb
9099

5.6 元组中使用enumerate对象

drinks = ["coffee","tea","wine"]                #借用Day03代码
enumerate_drinks = enumerate(drinks)
list02 = list(enumerate_drinks)
print("转成列表输出,初始索引值为 0=",list02[0] )    #list();tuple()可以转化成列表、元组
tuple02 = tuple(enumerate(drinks,10))               
print("转成列表元组,初始索引值为 10=",tuple02 )
print("转成列表元组,初始索引值为 10=",tuple02[1] )
转成列表输出,初始索引值为 0= (0, 'coffee')
转成列表元组,初始索引值为 0= ((10, 'coffee'), (11, 'tea'), (12, 'wine'))
转成列表元组,初始索引值为 0= (11, 'tea')

5.7 多重指定、打包与解包

在程序开发的专业术语中,我们可以将列表、元组、字典、集合等称容器,在多重指定中,等号左右两边也可以是结构相同的容器。

#解包
x, y= (10, 20)              #元组的解包
[a, [b, c]] = (1, (2, 3))

#多重指定(在Day03学列表中学过)
d,e,*f = 1,2,3,4,5          ##等号左边变量较少,可以用*表达式,将多余的右边打包给*变量成为一个列表
运行结果:x=10, y=20, a =1, b=2, c=3
d=1, e=2, f=[3,4,5]
5.7.1 zip(lterable)方法打包多个对象
names = ("Jacky","Eric","Geogy")
olds = (18 ,21 , 24)
zipdata = zip(names, olds)
player = list(zipdata)
print(zipdata)          # 输出的是:<zip object at 0x0000017BC22A1988>
print(player)           # 需要转化成列表[('Jacky', 18), ('Eric', 21), ('Geogy', 24)]

lterable必须是多个可迭代对象!! 若lterable里面的对象长度不相等,则转化成列表后,zip对象元素数量将是对象中元素最少个数

5.7.2 zip(*lterable)相当于unzip对象
name , old = zip(*player)
print("names =",name)           # names = ('Jacky', 'Eric', 'Geogy')
print("old =", old)             # old = (18, 21, 24)

5. 8 元组生成式(tuple generator)

x = (n for n in range(3))   #与day03 列表生成式类似
xlst = list(x)
print(xlst)                 #(0, 1, 2)

5.9 Else

元组的其他操作 功能
max(tuple) /min(tuple) 找tuple中最大/最小值
sum(tuple) 元素为数字情况求元组内元素之和
len(tuple) 返回元组元素个数
商,余数 = divmod(除数,被除数) 除法,返回值为元组(商,余数)

5.10 小测验

T1. 假设有n=4个数据,计算均值、方差、标准差 vals=(5,6,9,8)
mean_vals = sum(vals) / len(vals)
var_vals = ((val - mean_vals)**2 for val in vals)
vars = sum(tuple(var_vals)) / len(vals) #这里分母如果用 len(tuple(var_vals))会报错,generator对象不会记住所拥有的内容,第二次使用会成为空元组
dev = pow(vars,0.5)
print("平均值为{},方差为{},标准差为{}".format(mean_vals,vars,dev))
#平均值为7.0,方差为2.5,标准差为1.5811388300841898
T2. 计算地球到月球的时间,dist = 384400km speed = 1225 马赫速度= 1225/hour
dist = 384400
dayspeed = 1225*24
time = divmod(dist,dayspeed)
print("总共需要{}天,{}小时".format(time[0],time[1] / 1225))
#总共需要13天,1.7959183673469388小时

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
wapjsx + 1 + 1 我很赞同!
reaiwuai + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| nocofffe 发表于 2023-7-26 20:25
我是用markdown直接复制后发出的,为啥格式这么糟糕?
acs 发表于 2023-7-27 06:14
wqf02 发表于 2023-7-27 09:07
RedWolfT 发表于 2023-7-27 09:49
支持,我也初学python,来看看巩固一下知识点,希望能一直坚持下去
鹿鸣 发表于 2023-7-27 10:25
来学习一下
raysunn 发表于 2023-7-27 10:32
编程小白跟你一起学
gaozhan8899 发表于 2023-7-27 10:40
小白和你一起学Python
 楼主| nocofffe 发表于 2023-7-27 19:24
gaozhan8899 发表于 2023-7-27 10:40
小白和你一起学Python

加油加油
 楼主| nocofffe 发表于 2023-7-27 19:27
sgf227 发表于 2023-7-27 05:24
我觉得学习这件事情需要坚持,希望之后也能看到你的每天打卡。

是这样的,贵在坚持!每天抽空学一点!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-6-5 03:15

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表