Python的六大数据类型

Python的六大数据类型

什么是编程?

​ 就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。

为什么要学习Python?

  • 1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
  • 2.易于阅读:Python代码定义的更清晰。
  • 3.易于维护:Python的成功在于它的源代码是相当容易维护的。
  • 4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
  • 5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
  • 6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
    -7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
  • 8.数据库:Python提供所有主要的商业数据库的接口。
  • 9.GUI编程: Python支持GUI可以创建和移植到许多系统调用。
  • 10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。

编译型与解释型语言

编译型语言:

编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等

解释型语言:

解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执 行一次都要翻译一次。因此效率比较低。比如Basic语言,专门有一个解释器能够直接执行Basic程 序,每个语句都是执行的时候才翻译。(在运行程序的时候才翻译,专门有一个解释器去进行翻译,每个语句都是执行的时候才翻译。效率比较低,依赖解释器,跨 平台性好.)

两者各有利弊

​ 前者由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,像C/C++、Pascal/Object Pascal(Delphi)等都是编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等

Python语法规则

Python文件的后缀名是.py

python.exe hello.py        #调用解释器执行hello.py文件

Python可以同时输出多行语法

print('hello python')
print('hello python')
缩进要保持一致,中间可以有空行

什么是变量?

变量可以看成是存放数据的容器,容器里面可以装各种数据。

命名规则

首先,我们必须给变量取一个合适的名字,就好像每个人都有自己的名字一样,否则就难以区分了。 在VB6中,变量的命名必须遵循以下规则:

(1)变量名必须以字母或下划线打头,名字中间只能由字母、数字和下划线“_”组成;

(2)变量名的长度不得超过255个字符;

(3)变量名在有效的范围内必须是唯一的。有效的范围就是引用变量可以被程序识别、使用的作用范围。

(4)变量名不能是VB中的保留字(关键字),也不能是末尾带类型说明符的保留字,但可以把保留字嵌入变量名, 关键字是指VB6语言中的属性、事件、方法、过程、函数等系统内部的标识符。

Python 保留字符

andexecnot
assertfinallyor
breakforpass
classfromprint
continueglobalraise
defifreturn
delimporttry
elifinwhile
elseiswith
exceptlambdayield

Python中的数据类型

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);

  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

Number(数字):


  intfloatboolcomplex(复数)
 #强制类型转换
>>> age = int(input("请输入您的年龄:"))
请输入您的年龄:345
>>> type(age)
<class 'int'>
可以同时输出多个变量,输入的内容直接的连接符号可以使用sep来指定,如果不指定,则会使用空格连接,
>>> print(num1,num2,sep='+')
12+3.14

String(字符串):

Python中的字符串用单引号 ’ 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。


字符串的格式化输出:
#  %
>>> name = 'tom'
>>> age = 45
>>> '名字叫:%s,年龄为%s' % (name,age)
'名字叫:tom,年龄为45'
>>> '名字叫:%s,年龄为%s' % (name)


#format,format是根据位置参数从传递的。位置参数的值从0开始
>>> '名字叫{name},年龄为{age}'.format(name='lisi',age=67)
'名字叫lisi,年龄为67'

>>> '名字叫:{0},年龄为{1}'.format(name,age)
'名字叫:tom,年龄为45'
>>> '名字叫:{1},年龄为{0}'.format(name,age)
'名字叫:45,年龄为tom'
>>> '名字叫:{1},年龄为{1}'.format(name,age)
'名字叫:45,年龄为45'

# f str
>>> f'姓名为:{name},年龄为{age}'
'姓名为:tom,年龄为45'

字符串的截取

字符串是下标索引,字符串的下标索引有两种:

正数下标:正数下标从左往右。从0开始。最后一个字母的下标是len(str)-1

负数下标:负数下标从右往左,从0开始,最后一个字母的是-len(str)

>>> str1 = 'helloworld'
>>> str1
'helloworld'
>>>
>>>
>>> str1[9]
'd'
>>> str1[0]
'h'
>>>


#截取一段时,根据元素下标截取,冒号左右两边写元素下标,注意这里是一个左闭右开的
>>> str1
'helloworld'
>>> str1[4:6]
'ow'
>>> str1[4:7]
'owo'
>>>

#截取某个下标对于的元素之后所有内容时,可以不写最后的元素对应的下标
>>> str1[1:]
'elloworld'
>>>

#步长
>>> str1[2:8:2]
'loo'
>>> str1
'helloworld'
>>> str1[2:8:3]
'lw'
>>>

字符串常见函数

len(string) 返回字符串长度

count(str, beg= 0,end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

capitalize()  将字符串的第一个字符转换为大写(同title()方法)

center(width, fillchar) 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。	
find(str, beg=0 end=len(string)) 检测 str 是否包含在字符串中 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1

replace(old, new [, max]) 把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。

split(str="", num=string.count(str))num=string.count(str))str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num 个子字符串

index(str, beg=0, end=len(string)) 跟find()方法一样,只不过如果str不在字符串中会报一个异常

isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False

isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False

isdigit() 如果字符串只包含数字则返回 True 否则返回 False

islower() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

isspace() 如果字符串中只包含空格,则返回 True,否则返回 False.	

istitle()方法检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。

lower() 转换字符串中所有大写字符为小写。

max(str) 返回字符串 str 中最大的字母。

min(str) 返回字符串 str 中最小的字母。

startswith(str, beg=0,end=len(string)) 检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。

List(列表):

- 列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。列表是写在方括号[]之间、用逗号分隔开的元素列表。
  和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
    #定义了一个空列表
list1 = []

#列表中每一个值称之为一个元素,中间使用逗号隔开,列表中每一个元素可以是任意数据类型
list2 = [34,'hello',[34,56,67]]

列表的下标索引规则和字符串一致

>>> list2 = [45,67,['sfsa','2342']]
>>> type(list2)
<class 'list'>
>>> list2[1]
67
>>> list2[-1]
['sfsa', '2342']
>>> list2[-1][-1]
'2342'
>>> list2[-1]
['sfsa', '2342']
>>> list2[-3]
45
>>> list2[0]
45

列表的操作


#列表元素的改变,改变的时候是根据下标索引来的,先通过下标索引选中,然后直接给赋值

>>> list2
[45, 67, ['sfsa', '2342'], 'sf', 45, 5, 6, 7]
>>> list2[3]
'sf'
>>> list2[3] = 'cp'
>>> list2
[45, 67, ['sfsa', '2342'], 'cp', 45, 5, 6, 7]

#删除下标对于的某个值
>>> list2
[45, 67, 'hello', 'cp', 45, 5, 6, 7]
>>>
>>>
>>> del list2[3]
>>> list2
[45, 67, 'hello', 45, 5, 6, 7]

#删除列表
del list2

#清空列表
>>> list1 = [34,56,67,23]
>>> list1.clear()
>>> list1
[]

列表常见函数

list.append(obj) 在列表末尾添加新的对象

list.count(obj) 统计某个元素在列表中出现的次数

list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

list.index(obj) 从列表中找出某个值第一个匹配项的索引位置,索引从0开始

list.insert(index, obj) 将对象插入列表

list.pop(index) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

list.remove(obj) 移除列表中某个值的第一个匹配项

list.reverse() 反向列表中元素,倒转

list.sort([func]) 对原列表进行排序

Tuple(元组)

元组和列表类似,不同之处在于元组不可修改,元组使用小括号,列表使用方括号。
每个元素中间使用逗号隔开,可以存放任意类型的数据
tup1 = (34,"hello",(45,56,67),['world',"miss"])

元组的下标索引

正数:从左往右,从0开始,最后一个元素下标len(tup1)-1

负数:从右往左,从-1开始,最后一个元素下标-len(tup1)

截取操作
>>> tup1
(34, 'hello', (45, 56, 67), ['world', 'miss'])

>>> tup1[1]
'hello'
>>> tup1[-3]
'hello'
>>> tup1[1:3]
('hello', (45, 56, 67))
>>> tup1[-3:-1]
('hello', (45, 56, 67))

常见函数

len(tuple) 计算元组元素个数。

max(tuple) 返回元组中元素最大值。

min(tuple) 返回元组中元素最小值。

tuple(seq) 将列表转换为元组。

Set(集合)

特点:无序的不重复的,集合中元素不能重复的特性可以用来去重

集合定义
s = {23,45,56,56}

set([34,56,67,34])

集合常见操作

1.添加一个元素
s.add(12)

2.删除一个元素
s.remove('aa')

3.删除整个集合
del (s)

4.长度计算
len(s)

集合运算

a = t | s           # t 和 s的并集

b = t & s         # t 和 s的交集

c = t – s          # 求差集(项在t中,但不在s中)

d = t ^ s         # 对称差集(项在t或s中,但不会同时出现在二者中)

Dictionary(字典)

字典是除了列表最为灵活的数据类型

#字典中可以是有多个键值对,中间使用逗号隔开,字典中键是不能重复的,键所对应的值可以是任意数据类型
d1 = {"键1""值",'键1':"值2"}

操作字典

d1 = {"39":["张三","李四"],"40":["wangjiu","tom"]}
#查看键所对应的值
d1['40']

#修改键所对应的值
d1['40'] = 'helloworld'

#如果字典中的键重复了会怎么办?这时候后面的键所对应的值会更新前面的值


del dict['second']         删除键值为second的键值对

dict.clear()                     清空字典

del  dict                        删除字典

字典常见函数

radiansdict.clear() 删除字典内所有元素

radiansdict.copy() 返回一个字典的深复制

radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

radiansdict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值

radiansdict.keys() 以列表返回一个字典所有的键

radiansdict.setdefault(key, default=None) 和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default

radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里

radiansdict.values() 以列表返回字典中的所有值

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

patmos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值