草庐IT

【python笔记】第四节 序列类型初始

摆烂阳 2023-04-08 原文

💕💕💕 博主昵称:摆烂阳💕💕💕
🥰点击跳转到博主主页
👩‍💻博主研究方向:web渗透测试 、python编程
📃博主寄语:希望本篇文章能给大家带来帮助,有不足的地方,希望友友们给予指导

————————————————

人生苦短,我学python


一、序列简介

数值类型:可以表示数值

int 整型 = 整数

float 浮点型 = 小数

bool 布尔型 = 用于判断/也可以作为数值进行运算

序列类型:存储多个数据的一种数据类型

str 字符串 -> 数字 字母,特殊符号,中文等数据

list 列表

tuple 元组

序列是指可以存放多个数值的连续内存空间,这些值是按照一定顺序排列,可以通过每个值所在位置的下标访问它

二、列表和元组

列表是python一种数据类型,list是一个有序可以装各种数据类型的容器。

list的创建:

直接使用[]括起来,各个元素使用英文逗号分隔开

name_list = ['摆烂阳', '从不吃晚饭',  True, 123, 1.1]

print(name_list)

range() 函数 : 可以根据给定的参数来生成整数序列, 返回的迭代器

迭代器是需要转换成列表才能查看

具体语法:

range(start,stop) # start 和 stop 代表2个参数
# start 开始
# stop 结束
# 注意:包头不包尾,从start开始到stop结束 [start,stop)
#  start <= x < stop , x ∈ z

# 生成 1~1000 的列表
n = list(range(1, 1001))  # 由于不包尾,所以1001取不到,只会取到1000
print(n) 
0
# 生成 0 ~ 100 之间的偶数



range(start,stop,step=1)
# start 开始
# stop 结束
# step 步长
# 生成 0 ~ 100 之间的偶数
li = list(range(0, 104, 2))
print(li)

# 输出 1 ~ 100 中 7的倍数
# 第一步 确定头尾
# 第二步 跨步
li2 = list(range(0, 101, 7))
print(li2)


# 凡是有 固定的 差值的 整数,都可以使用range生成


如果希望生成降序的整数序列,步长可以改为负数
# 10 ~ 1 列表
li = list(range(10, 0,-1))  # 10头   0尾
print(li)

# 生成列表 8 6 4 2 0
s = list(range(8,0,-2))
print(s)

元组跟列表基本一样,都可以用来存储多个数据,最大的区别是列表可以修改,而元组是不行,元组最大特色是不能修改

元组的创建

() 英文括号括起来,每个元素用逗号隔开

111 = (1,2,3,4,"摆烂阳")
print(111)
print(type(111))

配合range()函数,再用tuple类型转换

t = tuple(range(1,101))
print(t)

三、 序列类型基本操作

序列类型:list,tuple,str

1、下标

1.1正向下标

在序列类型中每一个元素都会存在一个下标,下标是从左往右默认从0开始。可以通过下标去提取元素

语法格式:

# 提取方式:序列[下标]

# 注意这里是 []


只有函数的后面才跟()


s = "Python"  # 下标 = 第几个 - 1

print(s[3])
print(s[4])
print(s[5])
print(s[6]) # 访问元素时不可以超过最大下标,超过则报错


嵌套列表的提取,比方说提取 摆
lis = [2, 4, 6, ["摆","烂"], 8]
mj = lis[3]  #  mj = ["摆","烂"]
print(mj[0])

1.2 反向下标

反向下标和正向下表不同的地方在于反向下标是从右至左开始,右边第一位的值为-1

s = "python3"
# 此时提取 t
# 正向 2  反向 -5
print(s[2]) # print(s[-5])

2、切片

在Python中, 切片 (slice) 是对序列型对象 (如 list, string, tuple)的一种高级索引方法。 普通索引只取出序列中 一个下标 对应的元素,而切片取出序列中 一个范围 对应的元素,这里的范围不是狭义上的连续片段。

如果想截取序列中的一段序列,就可以使用切片

例如:

L = ["稿子", "斧头", "铁锹", "AK47", "98K", "锄头"]
# 提取出 枪械武器类别 到新列表中
# 切片语法  序列[start:stop:step]

# 和range有点相似,同样是包头不包尾

L = ["稿子", "斧头", "铁锹", "AK47", "98K", "锄头"]
print(L[3:5])
s = "hello world!"

# hello
# 1.先确定h的下标  0
# 2.再确定o的下标  4  # 不包尾 + 1
print(s[0:5])

# hlo
# 1.先确定头的下标 0
# 2.再确定尾的下标 4+1
# 3.在确定步长 2
print(s[0:5:2])


s = "hello world!"

print(s[:])  # 头部参数如果没写,默认是从头开始切
                # 尾部参数如果没写,默认切到底

    
s = "hello world!"
# 反转序列类型
print(s[::-1]) # 如果说步长是负数的话,头就是右边,尾就是左边

3、成员运算符

in : 属于

not in : 不属于

运算符描述实例
in如果在指定的序列中找到值返回 True,否则返回 False。x 在 y 序列中 , 如果 x 在 y 序列能找到,则返回 True。
not in如果在指定的序列中没有找到值返回 True,否则返回 False。x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
s = "Hello My friend"

print("H" in s)

print(" " in s)  # 字符串中 空格也算做一个字符

print("h" in s)  # False

print("ll" in s)  # True
print("fr " in s) 
print("Hlo" in s) # 不行 得连续

4、序列运算

序列类型 只能做 加法 和 乘法

序列的相加 就是 两边 拼接

序列的相乘 就是 重复和自己拼接

s1 = "摆烂阳"
s2 = "从不吃晚饭"

list1 = ["摆烂阳"]
list2 = ["从不吃晚饭"]

print(s1 + s2)  # 直接拼接
print(list1 + list2)  # 直接合并

print(list1 * 5) # ['摆烂阳', '摆烂阳', '摆烂阳', '摆烂阳', '摆烂阳']

5、序列常用内置函数

什么是内置函数

python官方提供好的功能,可以直接拿来使用,比如print,input

函数功能
len()计算序列的长度,即返回序列中包含多少个元素。
max()找出序列中的最大元素。
min()找出序列中的最小元素。
sum()计算元素和。
sorted()对元素进行排序。

学内置函数主要学这2点

1.函数的功能
2.函数的参数

5.1 len()

len(seq): 计算序列的长度,即返回序列中包含多少个元素

seq:序列

s = "hello,world"
print(len(s))

li = [1,2,3,4,"摆烂阳"]
print(len(li))

5.2 max()和min()

max(seq) 找出序列中的最大元素。

min(seq) 找出序列中的最小元素。

seq:序列
li = [2, 4, 0, 6, 3, 5]
print(max(li))
print(min(li))

5.3 sum()

sum(seq): 求序列元素的和

seq:序列
    
li = [2, 4, 0, 6, 3, 5]
print(sum(li))

5.4sorted()

sorted(seq) 对元素进行排序。

升序 sorted(seq)

降序 sorted(seq,reverse=True)

li = [2, 4, 0, 6, 3, 5]


print(sorted(li))
print(sorted(li,reverse=))

本章小结

本文是本人以前笔记,博主主页跳转链接如果有哪里不对的话欢迎各位大佬指出问题,本人也是初学python,希望可以和各位朋友一起学习进步。

点击跳转到博主python专栏:
如果有喜欢web安全的朋友,请在web渗透专栏中进行查看,点击跳转到博主web渗透专栏

有关【python笔记】第四节 序列类型初始的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby-on-rails - 未初始化的常量 Psych::Syck (NameError) - 2

    在我的gem中,我需要yaml并且在我的本地计算机上运行良好。但是在将我的gem推送到ruby​​gems.org之后,当我尝试使用我的gem时,我收到一条错误消息=>"uninitializedconstantPsych::Syck(NameError)"谁能帮我解决这个问题?附言RubyVersion=>ruby1.9.2,GemVersion=>1.6.2,Bundlerversion=>1.0.15 最佳答案 经过几个小时的研究,我发现=>“YAML使用未维护的Syck库,而Psych使用现代的LibYAML”因此,为了解决

  3. ruby - Infinity 和 NaN 的类型是什么? - 2

    我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串

  4. ruby - 检查方法参数的类型 - 2

    我不确定传递给方法的对象的类型是否正确。我可能会将一个字符串传递给一个只能处理整数的函数。某种运行时保证怎么样?我看不到比以下更好的选择:defsomeFixNumMangler(input)raise"wrongtype:integerrequired"unlessinput.class==FixNumother_stuffend有更好的选择吗? 最佳答案 使用Kernel#Integer在使用之前转换输入的方法。当无法以任何合理的方式将输入转换为整数时,它将引发ArgumentError。defmy_method(number)

  5. ruby-on-rails - 未在 Ruby 中初始化的对象 - 2

    我在Rails工作并有以下类(class):classPlayer当我运行时bundleexecrailsconsole然后尝试:a=Player.new("me",5.0,"UCLA")我回来了:=>#我不知道为什么Player对象不会在这里初始化。关于可能导致此问题的操作/解释的任何建议?谢谢,马里奥格 最佳答案 havenoideawhythePlayerobjectwouldn'tbeinitializedhere它没有初始化很简单,因为你还没有初始化它!您已经覆盖了ActiveRecord::Base初始化方法,但您没有调

  6. ruby-on-rails - ActionController::RoutingError: 未初始化常量 Api::V1::ApiController - 2

    我有用于控制用户任务的Rails5API项目,我有以下错误,但并非总是针对相同的Controller和路由。ActionController::RoutingError:uninitializedconstantApi::V1::ApiController我向您描述了一些我的项目,以更详细地解释错误。应用结构路线scopemodule:'api'donamespace:v1do#=>Loginroutesscopemodule:'login'domatch'login',to:'sessions#login',as:'login',via::postend#=>Teamroutessc

  7. ruby - Ruby 有 `Pair` 数据类型吗? - 2

    有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳

  8. ruby - 查找字符串中的内容类型(数字、日期、时间、字符串等) - 2

    我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s

  9. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  10. ruby - 这两个 Ruby 类初始化定义有什么区别? - 2

    我正在阅读一本关于Ruby的书,作者在编写类初始化定义时使用的形式与他在本书前几节中使用的形式略有不同。它看起来像这样:classTicketattr_accessor:venue,:datedefinitialize(venue,date)self.venue=venueself.date=dateendend在本书的前几节中,它的定义如下:classTicketattr_accessor:venue,:datedefinitialize(venue,date)@venue=venue@date=dateendend在第一个示例中使用setter方法与在第二个示例中使用实例变量之间是

随机推荐