博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python数据类型概述
阅读量:3943 次
发布时间:2019-05-24

本文共 6860 字,大约阅读时间需要 22 分钟。

python的特点

高级:有高级的数据结构,缩短开发时间与代码量

面向对象:为数据和逻辑相分离的结构化和过程化编程添加了新的活力

可升级:提供了基本的开发模块,可以在它上面开发软件,实现代码的重用

可扩展:通过将其分离为多个文件或模块加以组织管理

可移植性:python是用C写的,又由于C的可移植性,使得 python可以运行在任何带有 ANSI C编译器的平台上

易学:python关键字少、结构简单、语法清晰

易读:没有其他语言通常用来访问变量、定义代码块和进行模式匹配的命令式符号

内存管理器:内存管理是由 python解释器负责的

python安装

yum -y install gcc make zlib  zlib-devel openssl openssl-devel libffi-devel bzip2-devel ncurses-devel gdbm-devel readline-devel xz-devel sqlite-devel tk-develwget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgztar -zxvf Python-3.7.4.tgzcd Python-3.7.4/./configure prefix=/usr/local/python3make && make installln -s /usr/local/python3/bin/python3 /usr/bin/python3ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

pycharm

支持的功能有

调试、语法高亮

Project管理、代码跳转

智能提示、自动完成

单元测试、版本控制

下载地址:

https://www.jetbrains.com/pycharm

分为收费的专业版和免费的社区版

交互接收器

[root@666 ~]# python3Python 3.7.4 (default, Nov 19 2019, 00:35:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linuxType "help", "copyright", "credits" or "license" for more information.>>>

语句块缩进

python代码块通过缩进对齐表达代码逻辑而不是使用大括号

缩进表达一个语句属于哪个代码块

缩进风格

1或2:可能不够,很难确定代码语句属于哪个块

8至10:可能太多,如果代码内嵌的层次太多,就会使得代码很难阅读

4个空格:非常流行,范罗萨姆支持的风格

aaa:    bbb    ccc    dd    e

缩进相同的一组语句构成一个代码块,称之代码组

首行以关键字开始,以冒号:结束,该行之后的一行或多行代码构成代码组

如果代码组只有一行,可以将其直接写在冒号后面,但是这样的写法可读性差,不推荐

aaa: bbb

注释及续行

首要说明的是:尽管 Python是可读性最好的语言之一,这并不意味着程序员在代码中就可以不写注释和很多UNⅨ脚本类似, python注释语句从#字符开始注释可以在一行的仼何地方开始,解释器会忽略掉该行#之后的所有内容一行过长的语句可以使用反斜杠\分解成几行
aaa# bbb# cccaaa # bbb,ccc

同行多个语句

分号;允许你将多个语句写在同一行上但是些语句不能在这行开始一个新的代码块因为可读会变差,所以不推荐使用

输出语句

获取帮助

>>> help(print)

使用方式

>>> print('Hello World!')Hello World!>>> print('Hello'+'World!')HelloWorld!>>> print('Hello','World!')Hello World!>>> print('Heloo','World!',sep='***')Hello***World!>>> print('Heloo '+'World!',sep='***')Hello World!>>> print('usr','local','bin','python',sep='/')usr/local/bin/python>>> print('','usr','local','bin','python',sep='/')/usr/local/bin/python>>> print('Heloo','World!',sep='***',end='')Heloo***World!>>> >>> print('abc',end='\n')abc>>> print('abc',end='\n###\n***\n')abc###***>>> print('abc','bcd',end='\n###\n***\n')abc bcd###***

pythhon 字符串拼接

+ 先拼接在输出, 分次输出,使用分隔符分开sep 设置分隔符end 关键字用于输出完成以后追加的字符,默认 \necho abc | od -An -tx1
input 等待用户输入获得帮助>>> help(input)使用方式(注意,返回值一定是字符类型)>>> num input("Number:Number: 20)>>>num+10Traceback (most recent call last):  File "
", line 1, in
TypeError: can only concatenate str (not "int") to str########################################## 练习创建名为ogin.py的程序文件程序提示用户输入用户名用户输入用户名后,打印欢迎用户#!/usr/local/bin/python3username = input ("请输入用户名")print ("欢迎使用用户名", username)##########################################

python变量

变量定义

变量名称约定

第一个字符只能是大小写字母或下划线后续字符只能是大小写字母或数字或下划线区分大小写python是动态类型语言,即不需要预先声明变量的类型

推荐采用的全名方法

变量名全部采用小写字母简短、有意义多个单词间用下划线分隔变量名用名词,函数名用谓词(动词+名词)类名采用驼峰形式

变量赋值

变量的类型和值在赋值那一刻被初始化变量赋值通过等号来执行>> counter = 0>> name = bobpython也支持增量赋值>>>n += 1		#等价于n=n+1>>>n *= 1		#等价于n=n*1>>> i++File 
, line 1 i++ ^Syntax Error: invalid syntax################################ 练习print('-' * 20)print('| heloo woder! |')print('-' * 20)###############################

运算符

* 标准算术运算符+ - * / // / % *** 比较运算符< <= > >= == != <>* 逻辑运算符and not or################################ 练习>>> 3 + 2 5>>> 5 - 23>>> 3 * 515>>> 10 / 25.0			# 默认全部使用小数>>> 10 // 25>>> 10 // 33			# 它把小数给你切了>>> 20 // 36>>> 19 // 101>>> 10 % 3	# % 除完了取余数1>>> 10 % 42>>> 10 % 50>>> 3 ** 2	# 3的平方是99>>> 3 ** 3	# 3的立方是2727# 3的几次密>>> (2 + 3) * 10 / 2 ** 36.25>>> 2 < 3True		# 成功>>> 3 <= 2False		# 失败>>> aa = input()12>>> aa == 12False		# 为啥?失败,因为你输入的是字符串>>> aa == '12'Trueor (或) and (与) not (非)>>> 1 <= 2 and 5 != 6True>>> 1 <= 2 or 5 != 5True>>> not 1 == 1False###############################

数字

基本数字类型int :有符号整数bool:布尔值    True : 1    False : 0float :浮点数complex :复数    :练习        int('3.2')        # 会报错        >>> int('32')        32        >>> float(33)        33.0        >>> float('3.2')        3.2        >>> int(3.2)        3        >>> bool(0)        False        >>> bool(-1)        True        >>> complex(1+2j) ** 2        (1+2j)        >>> complex(1j) ** 2        (-1+0j)

数字表示方式

数字表示方式数字以0o或0O开头表示为8进制数数字以0x或0X开头表示16进制数数字以0x或0X开头表示16进制数

字符串

定义字符串

1.python中字符串被定义为引号之间的字符集合2.python支持使用成对的单引号或双引号3.无论单引号,还是双引号,表示的意义相同4.python还支持三引号(三个连续的单引号或者双引号) ,可以用来包含特殊字符5.python不区分字符和字符串

字符串切片

  • 使用索引运算符[ ]和切片运算符[ : ]可得到子字符串
  • 第一个字符的索引是0 , 最后一个字符的索引是-1
  • 子字符串包含切片中的起始下标,但不包含结束下标
起始位置 <= 字符串获取范围 < 终止位置要显示的字符串长度 = 终止位置 - 起始位置	p y t h o n    0 1 2 3 4 5py_str[起始位置:终止位置:步长]>>> py_str = 'python'>>> py_str[0]'p'>>> py_str[2:4]'th'>>> py_str[2:]'thon'>>> py_str[:4]'Pyth'>>> astr = '123456789'>>> astr = [::2]# 提出集数'13579'>>> astr = [1::2]# 提出偶数'24680'

字符串连接操作

  • 使用+号可以将多个字符串拼接在一起
  • 使用*号可以将一一个字符串重复多次
>>> py_str = 'python'>>> is cool = 'is Cool'>>> print is Cool

工厂函数int float bool |str

定义列表

  • 可以将列表当成普通的"数组” 它能保存任意数量任意类型的python对象
  • 像字符串一样,列表也支持下标和切片操作
  • 列表中的项目可以改变
>>> alist = [1,2,3,4,5,"python","aa","bb","cc"]>>> alist[1,2,3,4,5,"python","aa","bb","cc"]>>> alist[:5][1,2,3,4,5]>>> alist[-3:]['aa','bb','cc']>>> alist[5][-2:]'on'>>> alist = ["hello","world"]>>> alist['hello'],['world']>>> alist[1]'world'>>> alist[1] = 'lyy'>>> alist['hello','lyy']

列表操作

  • 使用in或not in判断成员关系
  • 使用append方法向列表中追加元素
>>> teacher=["yy"]>>> teacher['yy']>>> teacher.append("rka")>>> teacher['yy', 'rka']>>> teacher+=["dd"]>>> teacher['yy', 'rka', 'dd']>>> 'qq' in teacherFalse>>> 'qq' not in teacherTrue>>> 'dd' in teacherTrue>>> 'd' in teacherFalse>>> 'd' in teacher[2]True

元组的定义及操作

  • 可以认为元组是"静态”的列表
  • 元组一旦定义,不能改变
>>> teacher = ('yy', 'rka', 'dd')>>> teacher('yy', 'rka', 'dd')>>> teacher[1:2]('rka',)>>> teacher[2] = 'qq'Traceback (most recent call last):  File "
", line 1, in
TypeError: 'tuple' object does not support item assignment>>> teacher + ("qq",)('yy', 'rka', 'dd', 'qq')>>> teacher += ("qq",)>>> teacher('yy', 'rka', 'dd', 'qq')# 这个写法容易让我们误解
>>> alist = [1,2,3]>>> id(alist)139848167139736

字典

字典的定义及操作

  • 字典是由键值(key-value)对构成的映射数据类型
  • 通过键取值,不支持下标操作
]# ss -ant |awk '{A[$1]+=1}END{for(a in A)print A[a]}']# ss -ant]# ss -ant |awk '{A[$1]++}END{for(a in A) print A[a],a}'>>> A["LISTERN"] = 0>>> A["LISTERN"] += 1>>> A["LISTERN"] += 1>>> A["LISTERN"] += 1>>> A["ESTAB"] = 0>>> A["ESTAB"] += 1>>> A["ESTAB"] += 1>>> A{
'ESTAB': 2, 'LISTEN': 3}

数据类型比较

  • 按存储模型分类

    标量类型:数值、字符串

    容器类型:列表、元组、字典

  • 按更新模型分类:

    可变类型:列表、字典

    不可变类型:数字、字符串、元组

  • 按访问模型分类

    直接访问:数字

    顺序访问:字符串、列表、元组

    一映射访问:字典

int		整数float	浮点bool	布尔str		字符串	字符串切片    py_ str[起始位置:终止位置:步长]    	起始位置 <= sub_ str < 终止位置    字符串拼接    	py_ str += new_str    字符串重复若干次    	py_ str *= 20list	列表	子对象获取使用切片语法    	py_list[index]        py_list[起始位置:终止位置:步长]    添加对象到列表    	py_list.append (新的对象)        py_list += [新的对象]    列表是可以改变的    	py_list[index] = 新对象tuple	元祖	元祖使用()    元祖里所有读操作和列表一样    元祖是不可变对象    	py_tuple[index] =新对象 [报错]dict	字典	字典使用 {
} 字典是key:value 键值对格式,可变对象 字典不支持下标和切片语法 字典调用直接使用py_dict["key"] 列表是有序的,字典是无序的

函数

print		向标准输出发送数据		sep		分隔符,默认是空格    	end		结束符,默认是换行input		从标准输入读取字符串

转载地址:http://chnwi.baihongyu.com/

你可能感兴趣的文章
My Love - Justin Timberlake 贾斯汀 汀布莱克
查看>>
[Spring AOP] 基于AspectJ的@AfterReturning注释示例(附参考书目)
查看>>
The Big Bang Theory歌词
查看>>
Eclipse自动注释模版
查看>>
《非诚勿扰2》台词
查看>>
《班扎古鲁白玛的沉默》仓央嘉措
查看>>
《十诫诗》仓央嘉措
查看>>
《那一世》仓央嘉措
查看>>
《我问佛》仓央嘉措
查看>>
Maven中指定得AspectJ依赖无法添加得解决方案
查看>>
Spring3注释装配的最佳实践
查看>>
Mac Vi常用键
查看>>
jchardet字符编码自动检测工具
查看>>
使用Maven Archetype生成工程报错的解决
查看>>
System.getProperty()系统参数
查看>>
Linux系统下批量删除.svn目录
查看>>
大数据行业应用趋势
查看>>
Mac + Rails3 + MongoDB的Demo工程搭建
查看>>
隐藏于Python内的设计之禅彩蛋
查看>>
VSCode配置C/C++环境
查看>>