python怎么输出数据类型为整形的1、2、3、4、5、6_python学习笔记(二):python数据类型...-程序员宅基地

技术标签: python怎么输出数据类型为整形的1、2、3、4、5、6  

上一篇博客写了python的入门和简单流程控制,这次写python的数据类型和各种数据类型的内置方法。

一、数据类型是什么鬼?

计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。

二、整形和浮点型

整形也就是整数类型(int)的,在python3中都是int类型,没有什么long类型的,比如说存年龄、工资、成绩等等这样的数据就可以用int类型,有正整数、负整数和0,浮点型的也就是小数类型(folat)的,带小数点的

1

2

3

age = 18

b = -50

c = 5.222

三、布尔类型

什么是布尔类型,布尔类型就是真和假,只有这两种,True和Fasle,非真即假,除了True和False还有0和1,非0即真

1

2

a = True

b = False

四、字符串和字符串操作

上面说了存数字,那要是想存自己的名字呢,那用int类型的就不行了,不能一个人的名字叫数字吧,这样怎么办呢,就有另一种数据类型应运而生,就是字符串,它可以存任意类型的字符串,比如名字,一句话等等。

1

2

name = 'Sriba'

msg = 'Welcome to my blog.'

字符串还有很多内置的方法,对字符串进行操作,常用的方法如下,下面注释带有是否的,返回的都是一个布尔值:

1

2

3

4

5

6

7

8

9

10

name = 'my \t name is {name},age is {age}.'

print(name.capitalize())#大写

print(name.center(50,'-'))#50个-,把name放中间

print(name.endswith('u'))#是否以x结尾

print(name.expandtabs(30))#补\t的次数

print(name.find('n'))#查找字符串的索引

print(name.format(name='niuniu',age=18))#这个是格式字符串,再第一节的博客里面已经写了

print(name.format_map({'name':'niuniu','age':19}))#这个也是格式化字符串,后面跟的是一个字典,字典在后面也会写

print('abA123'.isalnum())#是否包含数字和字母

print('abA'.isalpha())#是否是英文字母

1

2

3

4

5

6

7

8

9

10

11

12

13

print('122'.isdigit())#是否是数字

print('aa'.isidentifier())#是否是一个合法的变量名

print('aa'.islower())#是否是小写字母

print('AA'.isupper())#是否是大写字母

print('Loadrunner Book'.istitle())#是不是一个标题,判断首字母是否大写

print('+'.join(['hehe','haha','ee']))#拼接字符串

print(name.lower())#变成小写

print(name.upper())#变成大写

print('\nmysql \n'.lstrip())#默认去掉左边的空格和换行

print('\nmysql \n'.rstrip())#默认去掉右边的空格和换行

print('\nmysql \n'.strip())#默认去掉两边边的空格和换行

p = str.maketrans('abcdefg','1234567')#前面的字符串和后面的字符串做映射

print('cc ae gg'.translate(p))#输出按照上面maketrans做映射后的字符串

1

2

3

4

5

6

7

8

#下面是反解

new_p = str.maketrans('1234567','abcdefg')

print('cc ae gg'.translate(new_p))

print('mysql is db.'.replace('mysql','oracle',1))#替换字符串

print('mysql is is db'.rfind('is'))#返回最右边字符的下标

print('1+2+3+4'.split('+'))#切割字符串,返回一个list

print('1+2+3\n1+2+3+4'.splitlines())#按照换行符分割

print('Abcdef'.swapcase())#大小写反转

五、列表和列表操作

上面说了字符串和整形,那现在要是想存一个班级的人的名字,这个班有200个人,怎么存呢,用字符串的话,那就是names = 'marry lily king .....'这样,但是这样存是可以存,那要是想取到某个人的名字怎么取呢,不能再去里面看一遍吧,那累死人了,为了解决这个问题,又有一种新的数据类型应运而生,那就是列表,这也是我们在以后的开发过程中,最常用的数据类型之一,列表也叫数组,列表定义,使用[]即可;列表里面可以再套列表,一个里面套一个列表,叫二维数组;一个里面套一个列表,里面的列表再套一个列表,这个叫三维数组,套几层就是几维,定义格式如下:

1

2

3

list1 = [1,2,3,4] #一个普通的数组

list2 = ['marry','lily',[50,'monkey']] #二维数组

list3 = ['name','sex',['lily',124,['aaaa','bbb']]] #三维数组

通过下标访问列表中的元素,下标从0开始计数,也就是说,比如说一个列表,有个5元素,那么它第一个元素下标就是0,第二个就是1,以此类推,字符串也有下标,和列表一样 对列表的操作,分以下几种增、删、改、查

增:

1

2

3

4

5

msg = '你好'

name = ['andashu','cc','niuniu']

name.append(msg)#从最后面开始插入

name.insert(1,msg) #从指定位置插入,这个1代表下标

print(name)

改:

1

2

3

msg = '你好'

name = ['andashu','cc','niuniu']

name[1] = 'baby' #修改指定位置的值

查:

1

2

3

4

msg = '你好'

name = ['andashu','cc','niuniu']

print(name[0])#获取第一个元素

print(name[-1])#-1代表最后一个元素

删:

1

2

3

4

5

6

msg = '你好'

name = ['andashu','cc','niuniu']

name.remove('baby')#删除指定的值

del name[0]#删除指定位置的值

name.pop()#不传入下标的话,删除最后一个值,传入下标删除指定位置的值

name.clear()#清空列表

列表操作,一些内置的方法:

1

2

3

4

5

6

7

8

9

msg = '你好'

name = ['andashu','cc','niuniu']

name2 = [1,2,3,4,['hehe','haha']]

print(name.index('cc'))#取索引

print(name.count('cc'))#取cc出现的次数

name.clear()#清空列表

print(name.sort())#排序,根据阿斯克码来排序

name.extend(name2)#扩展列表,也就是把name2的值加到name里面

name.reverse()#反转数组,会改变原数组的值

切片,切片也就是另一种方式获取列表的值,它可以获取多个元素,可以理解为,从第几个元素开始,到第几个元素结束,获取他们之间的值,格式是name:[1:10],比如说要获取name的第一个元素到第五个元素,就可以用name[0:6],切片是不包含后面那个元素的值的,记住顾头不顾尾;前面的下标如果是0的话,可以省略不写,这样写,name[:6],切片后面还有可以写一个参数,叫做步长,也就是隔多少个元素,取一次,默认可以不写,也就是隔一个取一次,切片操作也可以对字符串使用,和列表的用法一样,实例如下:

1

2

3

4

5

6

7

8

9

10

11

12

names = ['andashu','cc','niuniu','amy','lily']

names[1:4]  #取下标1至下标4之间值,包括1,不包括4

names[1:-1] #取下标1至-1的值,不包括-1

names[0:3] #取下标0至3的值,不包括3

names[:3] #取下标0至3的值,不包括3,和上面的效果一样,0可以省略不写

names[2:]#取从第二个下标开始的后面所有元素

#下面是加上步长的

nums = [1,2,3,4,5,6,7,8,9,10]

nums[::2]#这个代表取所有的元素,然后每隔2个元素取一个

>>>13579#输出的结果

nums[1:8:3]#代表取第二个元素开始,到第八个结束,隔3个取一次

>>>[2,5]#输出结果

六、元组

元组其实和列表一样,不一样的是,元组的值不能改变,一旦创建,就不能再改变了,比如说,要存数据库的连接信息,这个连接信息在程序运行中是不能被改变的,如果变了那数据库连不上了,就程序就完犊子了,这样的就可以使用元组了,元组呢,也提示别人,看到是元组的话,就说明这个值是不能被改变的,元组的定义方式是用(),小括号;元组只有两个方法,那就是count和index

1

mysql_coon = ('192.168.1.109','root','123456',3306,'my_db')#定义元组

七、字典

上面说了,整形、浮点型、字符串、列表和元组,下面说个新的数据类型,字典,字典也是我们开发过程中最常用的一种数据类型;想一个问题,现在要存整个北京市的所有人的信息,每个人有姓名、年龄、性别、家庭住址、学历等等,那要是用列表存的话,那就得定义N多个数组,然后存上每个人的信息,那累死人了。。。这时候又有一种新的数据类型出现了,那就是字典,dict,全称是dictionary,它具有极快的查找速度;字典是一种key-value的数据类型,比如说要存每个人的信息,那么每个人的编号就是key,value就是每个人的信息,这样的话,一个字典就能存所有人的信息了。字典的定义使用{},大括号,每个值用“,”隔开,key和value使用“:”分隔。

举个列子,如果用列表存每个人的信息的话,需要用两个列表,一个存人名,一个存信息:

1

2

names = ['marry','amy','lily']

infos = [[18,18612512981,'北京'],[20,18612512991,'山东'],[25,18612532981,'河南']]

给一个名字,如果要查他的对应信息,那就要先从names里面找到它的位置,然后再从infos中找到它的信息,如果这个列表越长,那么它的查询速度越慢。

如果用字典实现的话,只需要一个名字和信息对应的一个表,这样就很快的根据名字找到它对应的信息,无论这个表有多大,查找速度都不会变慢。

1

2

infos = {'marry':[18,18612512981,'北京'],'amy':[20,18612512991,'山东'],'lily':[25,18612532981,'河南']}

infos['marry'] #取marry的信息

为什么dict查找速度这么快?因为dict的实现原理和查字典是一样的。假设字典包含了1万个汉字,我们要查某一个字,一个办法是把字典从第一页往后翻,直到找到我们想要的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢。

第二种方法是先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢,这种就是字典的实现方式。

字典的特性:

字典是无序的,因为它没有下标,用key来当索引,所以是无序的

字典的key必须是唯一的,因为它是通过key来进行索引的,所以key不能重复,天生就去重

字典的增删改查:

增:

1

2

infos = {'marry':[18,18612512981,'北京'],'amy':[20,18612512991,'山东'],'lily':[25,18612532981,'河南']}

infos['andy']=[22,18712512981,'河北']#增加

修改:

1

2

infos = {'marry':[18,18612512981,'北京'],'amy':[20,18612512991,'山东'],'lily':[25,18612532981,'河南']}

infos['marry']=[38,18612512981,'北京']

删除:

1

2

3

4

infos = {'marry':[18,18612512981,'北京'],'amy':[20,18612512991,'山东'],'lily':[25,18612532981,'河南']}

infos.pop('marry')#标准的删除方法

del infos['marry']#使用del方法删除

info.popitem() #随机删除一个值

查询:

1

2

3

4

infos = {'marry':[18,18612512981,'北京'],'amy':[20,18612512991,'山东'],'lily':[25,18612532981,'河南']}

infos.get('maryy')#获取marry的信息,这种方式如果key不存在的话,会返回None

infos['marry']#获取marry的信息,这种方式如果key不存在的话,会报错

'marry' in infos #判断marry是否在这个字典中,返回True或者False

字典的内置方法:

1

2

3

4

5

6

7

dic = {'stu1':'cc','stu2':'andashu','stu3':'niuniu'}

print(dic.values())#打印所有value

print(dic.keys())#打印所有的key

print(dic.setdefault('stu1','fengluo'))#如果这个key存在的话,那就不动它,不存在的话,添加一个

dic2 = {'stu1':'sriba','stu10':'baidu'}

dic.update(dic2)#更新字典值,如果key存在的话,就更新,不存在的话就添加

print(dic.items())#字典转换成一个list

循环字典:

1

2

3

4

5

dic = {'stu1':'cc','stu2':'andashu','stu3':'niuniu'}

for k in dic:

print(k,dic[k])#打印key和value的值,推荐使用这种方式,速度快

for k,v in dic.items():

print(k,v)#打印key和value的值,这种方式不推荐,因为会把字典转换成列表,效率不高

八、数据运算

算数运算符

操作符

描述

例子

+

加法 - 对操作符的两侧增加值

a + b = 30

-

减法 - 减去从左侧操作数右侧操作数

a - b = -10

*

乘法 - 相乘的运算符两侧的值

a * b = 200

/

除 - 由右侧操作数除以左侧操作数

b / a = 2

%

模 - 由右侧操作数和余返回除以左侧操作数

b % a = 0

**

指数- 执行对操作指数(幂)的计算

a**b = 10 的幂 20

//

地板除 - 操作数的除法,其中结果是将小数点后的位数被除去的商

9//2 =  4 而 9.0//2.0 = 4.0

比较运算符

运算符

描述

实例

==

检查两个操作数的值是否相等,如果是则条件变为真

(a == b) 为false

!=

检查两个操作数的值是否相等,如果值不相等,则条件变为真

a != b) 为 true.

>

检查左操作数的值是否大于右操作数的值,如果是,则条件成立

(a > b) 不为 true.

<

检查左操作数的值是否小于右操作数的值,如果是,则条件成立

(a < b) 为 true.

>=

检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立

(a >= b) 不为 true.

<=

检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立

(a <= b) 为 true.

Python赋值运算符

运算符

描述

示例

=

简单的赋值运算符,赋值从右侧操作数左侧操作数

c = a + b将指定的值 a + b 到  c

+=

加法AND赋值操作符,它增加了右操作数左操作数和结果赋给左操作数

c += a 相当于 c = c + a

-=

减AND赋值操作符,它减去右边的操作数从左边操作数,并将结果赋给左操作数

c -= a 相当于 c = c - a

*=

乘法AND赋值操作符,它乘以右边的操作数与左操作数,并将结果赋给左操作数

c *= a 相当于 c = c * a

/=

除法AND赋值操作符,它把左操作数与正确的操作数,并将结果赋给左操作数

c /= a 相当于c = c / a

%=

模量AND赋值操作符,它需要使用两个操作数的模量和分配结果左操作数

c %= a 相当于 c = c % a

**=

指数AND赋值运算符,执行指数(功率)计算操作符和赋值给左操作数

c **= a 相当于 c = c ** a

//=

地板除,并分配一个值,执行地板除对操作和赋值给左操作数

c //= a 相当于 c = c // a

逻辑运算符

运算符

描述

示例

and

所谓逻辑与运算符。如果两个操作数都是真的,那么则条件成立。

(a and b) 为 true.

or

所谓逻辑OR运算符。如果有两个操作数都是非零然后再条件变为真。

(a or b) 为 true.

not

所谓逻辑非运算符。用于反转操作数的逻辑状态。如果一个条件为真,则逻辑非运算符将返回false。

not(a and b) 为 false.

身份运算符

运算符

描述

示例

is

is判断两个标识符是否引用自一个对象

x is y,如果id(x)等于id(y) ,返回True

is not

is not判断两个标识符是否引用不同的对象

x is not y,如果id(x)不等于id(y),返回True

九、模块初识

模块是导入别人已经写好的python文件,里面已经有一些写好的功能,可以直接拿来使用,使用import 关键字导入需要的模块,导入模块时,默认会在当前目录下去寻找该文件,如果当前目录下没有的话,回去python的环境变量中找,如果找不到就报错,下面有一些简单的python标准模块,os和sys模块:

1

2

3

4

5

6

7

8

9

import sys,os#导入sys模块和os模块

arg=sys.argv#获取传入的参数,第一个参数是文件名,返回的是一个list

sys.path#python的环境变量,返回的也是一个list

os模块是和操作系统相关的命令

os.system('ls')#执行操作系统命令,返回的是一个执行结果,成功或者失败,成功返回0

os.popen('ls')#这个也是执行操作系统的命令,和system区别就是,这个命令返回的是执行结果,也就是返回了什么东西,而不是返回的执行成功或者失败,读取内容需用read方法

os.popen('ls').read()

os.mkdir('test')#创建文件夹

os.path.sep#路径分隔符,根据不同的操作系统,分割符会变化

十、三元运算符

三元运算符就是在赋值变量的时候,可以直接给它加上判断,然后赋值

1

2

3

4

5

6

7

8

res = 值1 if 条件 else 值2

a = 5

b = 4

c = a if a>b else b #如果a大于b的话,c=a,否则c = b ,如果不用三元运算符的话,就得下面这么写

if a>b:

c = a

else:

c = b

当然三元运算符也可以用在列表和字典中,这么写的话,就比较简单了,不过如果搞不明白三元运算符的话,还是不用为好

1

2

3

4

5

6

nums = [1,2,3,4,5,6,7,8,9,10]

odd_num = [num for num in nums if num%2!=0]#循环nums,如果nums里面的值,不能被2整除的话,就写到odd_num这个list中,也就是算奇数,等于下面这么写

odd_num = []

for num in nums:

if num % 2 !=0:

odd_num.append(num)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39609354/article/details/111424479

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签