当前位置: 首页 > wzjs >正文

免费发布信息网站大全有哪些广州竞价托管代运营

免费发布信息网站大全有哪些,广州竞价托管代运营,建设网站的目的是什么,微信小程序个人网站开发目录 一、数据类型 1、基本数据类型 2、组合数据类型 二、介绍两个函数 1、 isinstance函数 2、len函数 三、Python指针 1、指针 2、is运算符和的区别 3、列表的指针 四、函数参数的传递 1、例子一 2、例子二 五、字符串详解 1、转义字符 2、字符串的切片 3、字…

目录

一、数据类型

1、基本数据类型

2、组合数据类型

二、介绍两个函数

1、 isinstance函数

2、len函数

三、Python指针

1、指针

2、is运算符和==的区别

3、列表的指针

四、函数参数的传递

1、例子一

2、例子二

五、字符串详解

1、转义字符

2、字符串的切片

3、字符串的分割

①初级分割

②高级分割

4、字符串函数

5、字符串编码

6、字符串格式化

六、元组

1、元组的一些特点

2、元组元素的指针

3、元组赋值

4、元组的大小比较

七、用元组取代复杂分支结构


一、数据类型

在Python中主要有两种数据类型

1、基本数据类型

基本的数据类型包括:int(整型),float(浮点型),complex(复数)

2、组合数据类型

组合的数据类型包括:str(字符串),tuple(元组),list(列表),dict(字典),set(集合)

二、介绍两个函数

1、 isinstance函数

isinstance(x,y)函数用于查询数据x是否含有类型y

a = "1233456"
print(isinstance(a,str))
print(isinstance(a,int))

2、len函数

len()函数用来求组合数据类型的元素个数(长度)

a = ["123" , "hello" , "scy"]
b = "hello!!!"
print(len(a))
print(len(b))

三、Python指针

Python中,指针是一个非常重要的概念,在很多的编程语言中,都会涉及到指针,或者类似于指针的概念,而它之所以叫做指针,那么它就会像一个箭头一样,必然会指向某个地方。

1、指针

在Python中,所有的变量都是指针,也就是说,Python中所有可赋值的东西,即出现在赋值符号“=”左边的东西,都是指针

并且我们还要注意几点:

①指针即代表着内存单元的地址

②我们可以把Python的指针理解为一个“箭头”,所有的变量都是箭头,指向了内存的某个地方

③对变量进行赋值的本质,就是让这个变量(箭头)指向某个地方

当我们对变量进行赋值时,就是相当于让变量指向某处:

a = 3
b = 4

在内存中,就是这样:

当我们用一个变量对另一个变量进行赋值时,就是相当于让两个变量指向了同一个地方:

a = b

在之前的文章我们提到过,这里的“a = b”的含义相当与“把b的值赋给a”,也就是说此时a和b都等于“4”了,那么它在内存中就会变成:

2、is运算符和==的区别

当a is b 为True时,说明a和b是指向同一个地方

当a == b 为True时,说明a和b指向的地方放着相同的东西,但是a和b不一定指向相同的地方

当我们使用a = b 时,会使得a 和 b 指向同一个地方

下面我们来写一个代码证明一下:

a = [1,2,3,4]
b = [1,2,3,4]
print(a == b )
print(a is b)

我们这串代码在内存中应该是这样的:

所以结果就是:

注意!

对于int、float、complex、str、tuple类型的变量a和b,只需要关注a==b是否成立即可,因为这些数据本身不会更改,不会出现a的数值改变了,b的数值也跟着改变。

对于list、dict、set类型的变量a和b,a==b和a is b的结果都需要关注,因为这些数据本身会改变,改变了a指向的内容,b也许也会改变

3、列表的指针

列表的元素也可以赋值,因此也是指针,所以前面那张图更准确的来说应该是这样的:

四、函数参数的传递

函数参数的传递方式都是传值,也就是说形参是实际参数的一个拷贝,函数的参数也是指针,形参和实参指向了同一个地方,对形参赋值(让形参指向别的位置),不会影响实参

1、例子一

下面我们来看一个例子:

def Swap (x,y) :tmp = xx = yy = tmpreturn x,y
a = 4
b = 5print(Swap(a,b))
print(a,b)

我们来仔细观察这两个输出:

我们发现在这个Swap函数中,a和b的数值确实是被调换了,但是当我们输出a和b本身的数值的时候,发现本身没有改变,我们下面用一张图来解释一下:

当我们执行了tmp = x之后:

当我们再执行x = y 时,此时x的那个红箭头就指向了“5”,当我们再执行y = tmp的时候,就是让y的红色箭头指向了“4”,此时,我们就实现了参数的互换。

但是当我们用变量a和b去调用参数时,相当于把参数a和b附在了x和y上面,然后在函数体内部x和y实现了转换时,输出的“Swap(a,b)”实现了转化。

但是根据上述的步骤我们发现,从始至终a和b本身的值都没有发生变化

2、例子二

当我们在函数执行的过程中,改变了形参指向的地方的内容,则实参所指向的地方的内容也会发生改变:

def Swap (x,y) :tmp = x[0]x[0] = y[0]y[0] = tmpreturn x,y
a = [4,5]
b = [6,7]print(Swap(a,b))
print(a,b)

我们来看一下输出的结果:

我们发现直接输出a和b他们的数值居然也发生了变化,我们来看一下下面的图:

当我们执行了tmp = x [0]

当我们再执行x[0] = y[0] 时,x[0]变成了“6”,当我们执行y[0] = tmp时,y[0]变成了“4”,相信你们已经发现了区别,我们这次并没有改变红色的箭头(指针),而是改变了这些指针所指向的位置的内容,这时这两个就都会被改变了。

五、字符串详解

1、转义字符

我们在输入print(“......”)中的文字或符号时,可能会想输出一些特殊的符号,但是这些符号可能会被编译器识别为其他的字符,导致我们输出了不符合的东西,那么我们该怎么输入呢:

我们先来看几个简单的转义字符:

转译前转译后
\n换行
\t制表符
\"双引号
\\斜杠

我们现在来看看代码:

print ("hello\nworld\thello\"world\"yes\\")

输出:

我们有时候不希望“\”实现被转译的功能,想让他就当作一个普通字符输出,那么我们可以在“引号”前面加一个字母r

print (r"hello\nworld\thello\"world\"yes\\")

我们可以发现,里面所有的转义符都不起作用了

2、字符串的切片

字符串的切片,也叫子串(即字符串某连续的一部分

我们在Python中会用a[x:y]来对字符串进行切片,会从a[x]切到a[y](不包含a[y]的那个字符)那一部分的子串

注意!

①字符串切片是一个左闭右开的区间

②a[x: ]:终点省略就是一直取到最后一个字符

③a[ :y]:起点省略就是从第一个字符开始取

④a[x : y : z]:会从a[x]切到a[y](不包含a[y]的那个字符),但是是每z个字符取一个,最后拼起来,若z为负数,就代表倒着取

⑤x和y可以都省略,就代表从头取到尾,或者从尾取到头(看z的正负)

⑥字符串切片的用法也适用于元组和列表

3、字符串的分割

①初级分割

在之前我们提到过,我们在Python中,可以用x.split()函数对字符串x进行分割,但是我们函数的括号里是什么都没有的,这就意味着我们是默认用空白字符(空格、制表符、换行符、回车符等)来对字符进行分割的,我们其实可以在()中添加一个字符,用这个字符来作为分割符,两个相同的分隔符之间会被分割出来一个空串

看一个例子:
 

s = "helloxxxworldxxx!!!xxx!!!"
a = s.split("xxx")
print(a)

我们用“xxx”作为分割符,对字符串s进行分割:

它会根据分隔符,把字符串进行分割,并把各个子串放到一个列表中输出。

②高级分割

在上面的分割方法中,我们只能让某一固定的字符or子串作为分隔符,对字符串进行分割,或者用那几个空白字符,但是如果我们想要把一个文章进行分割,那么就需要根据文章里面所有的标段符号来进行分割,所以我们需要同时针对多个字符作为分隔符来分割文章:

我们在这里会导入re包来进行这个操作:

例子:

import rea = "hello,my name is Sue! Good morning ! hello : world ?? "
b = re.split(':|,|!|\?' ,a)
print(b)

我们把字符串a中的所有的标点作为分隔符来进行分割

来看看效果:

4、字符串函数

在Python中有很多关于字符串的函数:

s.count(x):求字符串s中x出现的次数

len(s):求字符串s的长度

s.upper()  /  s.lower():把字符串中的字符转化大写 / 小写

s.find(x)  /  s.index(x):查找字符串s中是否含有x

①rfind()和rindex()函数用于用字符串的尾部开始查找

②虽然这两个都是关于查找的函数,但是略有一点不同,即在于这两个函数在遇到错误时的返回值不同

我们下面来用代码看一下:

先用find函数来查找一个字符串中不包含的子串:

s = "hello world!"
a = s.find("scy")
print(a)

find函数发现字符串中不包含所要查询的子串时,会返回-1

当我们用index函数进行同样的操作时,我们会发现有不一样的结果:

s = "hello world!"
b = s.index("scy")
print(b)

程序最终会报错!

利用这个特点我们可以结合前面说到的异常处理,用try和except,这样当报错时进行对应的代码执行

s = "hello world!"try :b = s.index("scy")
except Exception as e :print(e)    #将异常对象存储在变量e中

输出:

③find函数还可以从指定的起点查找:

s = "hello world!"
a = s.find("he" , 2)
#从下角标为2的元素开始查找he子串
print(a)
#输出为-1

s.replace(x,y):把字符串s中的x都替换成y

isdigit():判断字符串是否是数字

islower() / isupper() :判断字符串中是不是都是小写 / 大写

startswith() /  endswith():判断字符串是否以某一个子串开头or结尾

strip():去除字符串头尾的空白字符

lstrip():去除字符串左端的(头部的)空白字符

rstrip():去除字符串右端的(尾部的)空白字符

5、字符串编码

字符串的编码在内存中的编码是Unicode的,写入文件时,可能是gbk或者utf-8

ord():字符转化为编码

chr():编码转化为字符

6、字符串格式化

我们下面会介绍两种格式化方法:

①使用format

a = "hello {0} {1:10}, you get ${2:0.4f}".format("Mr.","Mike",6.2)
print(a)

输出:

{0}代表选取后面下角标为0的元素

{1:10}代表选取下角标为1的元素,并且总共要占10个字符宽度(宽度是10),不足10个就用空格补全

{2:0.4f}代表选取下角标为2的元素,宽度是0,并且要保留四位小数

②使用%

print("Today is %s. %d." %('May' , 21))

六、元组

元组和列表在很多地方都有相似之处,我们下面会来详细的了解一下元组:

1、元组的一些特点

一个元组是由数个逗号分割的值组成,前后可加括号

a = 123456 , 000 , "hello"

这就是一个简单的元组,和列表相似,里面可以是数字,也可以字符串

如果我们想创建一个空元组,直接写一个括号即可

注意在代码中区分字符串和元组,如果末尾有逗号,就是元组,没有就是字符串,如果区分错误,可能会导致我们某些数据分析错误

来看一个简单的例子:

a = "hello" ,
b = "hello"
print(type(a))
print(type(b))
print(len(a))
print(len(b))

输出:

可以看到,仅仅是一个逗号的差别,就是两个不同的数据类型,因为数据类型的不同,所以他们的某些数据也会不一样,比如说测量其长度(见上)

我们可以用之前遍历查找列表中的元素一样,对元组的元素进行查找,但是元组有以下的一些特殊之处:

元组不能修改,即不可增加,删除元素,不可对元素进行赋值,不可改变元素的顺序

a = 123456 , 000 , "hello"
a[0] = 5

像上面的这个例子,最终会导致程序报错,因为元组中的元素是不可以被修改的

我们虽然不能修改元组的元素,但是我们可以用加号把两个元组进行连接

2、元组元素的指针

我们现在已经知道,元组中的元素不可修改,但是我们现在要详细的对这句话进行解析!

这里说的元素不可修改,指的是不能改变元组的元素的指向(就相当于箭头),但是变元组元素指向的内容是可能被修改的

首先,我们先要知道,元组内部是由若干元组组成,这些元素不仅可以是数字,字符,甚至可以是一个列表,甚至是一个元组

我们来看一个简单的例子:

a = (123456 , 000 , "hello" , [2,"scy"])
a[3][1] = "scyscy"
print(a)

上面的元组中,最后一个元素是一个列表,众所周知,列表是可以更改的,所以我们对这个列表进行更改,就相当于改变了这个元素的指针所指向位置的内容,但是没有改变指针,所以这个最后是会被执行成功的!

3、元组赋值

在给元组赋值时,我们要注意元组和指针的关系:

来看一个简单小例子:

x = (1 ,2 ,3)
b = x
print(b is x)   #判断是不是指向了同一个地方
#————————第一部分————————————
x += (100,) #相当于新建了一个元组
print(x)
print(b)
#————————第二部分————————————

我们先看看第一部分是内存中是怎样体现的:

当我们执行了第二部分的“x += (100,)”时,就相当于在内存中创建了一个新的地址,里面有(1,2,3,100)这个内容,而x的指针也将会指向这个内容:

我们再来看看内部的变化:

4、元组的大小比较

两个元组比大小,就是把每个元组的元素逐个比对,比如a元组的第一个元素和b元组的第一个元素进行比较,直至分出胜负

如果对应的元素不可比较,就会报错:

print((1,'a',12) < (1,'b',17))
print((1,'a') < (1,'a',13))
print((2,'a') > (1,'b',13))
print((2,'a') < ('ab','b',13))

前三个运行结果都是True

最后一个会报错(无法比较)

七、用元组取代复杂分支结构

假如我们现在想写一个根据输入对应的数字,来输出星期几的程序,如果我们想用if分支语句,需要写好几个分支,如果代码和情况更复杂,就会变得更加难写,我们可以用元组来代替分支语句:

weekdays = ("星期一" , "星期二" , "星期三" , "星期四" , "星期五" , "星期六" , "星期日")n = int(input())
if n > 7 or n < 1 :print("错误!!!!!!!!!!!!")
else :print(weekdays[n-1])

以上就是Python组合数据类型的第一部分(刷新纪录,太多字了):)

http://www.dtcms.com/wzjs/45526.html

相关文章:

  • 做网站维护需要学什么抖音seo推广外包公司好做吗
  • 优质的成都网站建设推广合肥网站优化排名推广
  • 省级别网站建设方案网络软文广告
  • 网站代运营性价比高网站seo诊断报告怎么写
  • seo产品推广福州排名seo公司
  • 网站建设详细报价免费刷推广链接的网站
  • WordPress网站404公益页面西安网络推广公司
  • 什么是网站单页电子商务主要干什么
  • 家庭宽带做网站稳定互联网十大企业
  • 襄阳做网站公司有哪些百度搜索引擎优化方案
  • 已有域名 wordpress西安seo引擎搜索优化
  • 开网站做赌博赚钱吗关键词分类
  • 为什么要建设就业指导网站公关
  • 电脑版qq在线登录网页入口安卓排名优化
  • wordpress入侵教程广州seo推荐
  • 2023年最新法定传染病有哪些公司网站seo外包
  • 企业如何做好网站运营管理互联网广告投放
  • 如何网站公司小程序企业邮箱
  • 后台java语言做网站全国最新疫情最新消息
  • 做网站的软件公司电商运营公司
  • 上海企业网站排名优化c++线上培训机构哪个好
  • 织梦修改网站标题seo营销网站的设计标准
  • 石首建设局网站泰州网站建设优化
  • 城市分类信息网站建设宁波seo搜索优化费用
  • 网页的优化与发布sem优化服务公司
  • 阿里云服务器怎么部署网站百度com百度一下你
  • 咋样查看网站用什么编程语言做的企业宣传册模板
  • 用什么网站做框架图湖南网络优化服务
  • 网站建设维修服务流程电商代运营十大公司排名
  • 深圳市政府网站建设公司惠州百度seo