一、整型(int),int的作用

1、创建int类型并赋值

n = 10

或者

n = int(10)   #只要是类名加括号,都会去执行类中的 __init__()方法

n = 10,实际内部会去执行 n=int(10),实际又会去执行类中的 __init__()方法

n = int() #定义整数0

b1 = int('0b100',0)  #二进制转化为十进制
b2 = int('0b100',2) #二进制转化为十进制
print(b1,b2) #4 4
class MyInt(object):
def __init__(self):
print("INIT")
def __call__(self, *args, **kwargs):
print("CALL") obj = MyInt() #打印输入INIT,自动回去调用类中的init方法
obj() #打印输出CALL,自动回去调用类中的call方法

2、int地址优化

n1 = 123
n2 = 123
print(id(n1)) #id()是查看变量或对象的内存地址,结果打印:1713990656
print(id(n2)) #id()是查看变量或对象的内存地址,结果打印:1713990656
#说明n1和n2是共用的同一个内存地址 #python2.7中-5-257是共用的同一内存地址,但是 n1=111111 n2=n1也是共用同一内存地址
#python3中所有的整形都是共用同一内存地址 #这是python对内存地址的优化

3、把其他类型转换为int类型

st = '10' #定义一个数字字符串
n = int(st) #将字符串转换为int
print(type(n)) #输出<class 'int'>,说明转换为int类型

二、字符串类型,(str)的作用

1、创建str类型并赋值

st = 'hello world!'

或者

st = str('hello word!')

st = str() #定义空字符串

2、将其他类型转化为字符串类型

num = 123  #int类型
st = str(num) #将int类型转换为str类型
print(type(st)) #输出<class 'str'>,说明转换为str类型

三、bytes类型

1、创建bytes类型并赋值

byt = b'\xe5\xad\x99'

或者

byt = bytes(b'\xe5\xad\x99')

2、将其他类型转换为bytes类型

st = '孙'
byt = bytes(st,encoding='utf-8') #将字符串类型转换为字节型
print(byt) #输出b'\xe5\xad\x99',说明成功转换为字节型

同样可以将字节类型转化为字符串类型:

st = '孙'
byt = bytes(st,encoding='utf-8') #将字符串类型转换为字节型
print(byt) #输出b'\xe5\xad\x99',说明成功转换为字节型
st_back = str(byt,encoding='utf-8') #将字节类型转换回字符串类型
print(st_back)

四、列表类型(list)

1、创建列表类型

lis = [11,22,33,44,55,66]

或者

lis = list([11,22,33,44,55,66])

lis = lis() #定义空列表

2、将其他类型转化为列表类型list(),括号里面是可迭代的,实际是for循环每个迭代的元素然后写进列表

1)将字符串转化为l列表类型

name = '王二麻子'
name_list = list(name) #将字符串转化为列表
print(name_list) #输出['王', '二', '麻', '子']

2)将元组转化为字典类型

num = (11,22,33,44,55,66)
num_list = list(num) #将元组转化为列表
print(num_list) #输出[11, 22, 33, 44, 55, 66]

3)将字典转化为列表

a、将key值转化为列表

dic = {'key1':'zhangsan','key2':'lisi','key3':'wangwu'}
dic_list = list(dic) #将字典转化为列表
print(dic_list) #输出['key1', 'key2', 'key3'],因为for循环时默认的就是循环keys

b、将字典values转化为列表

dic = {'key1':'zhangsan','key2':'lisi','key3':'wangwu'}
dic_list = list(dic.values()) #将字典转化为列表
print(dic_list) #输出['zhangsan', 'lisi', 'wangwu']

c、将items转化为列表

dic = {'key1':'zhangsan','key2':'lisi','key3':'wangwu'}
dic_list = list(dic.items()) #将字典转化为列表
print(dic_list) #输出[('key1', 'zhangsan'), ('key2', 'lisi'), ('key3', 'wangwu')]

五、元组(tuple)

1、元组和列表基本功能一样,但其主要特性为:元组的元素不可修改,但元组的元素的元组可以修改

例如:将下面元组中的字典中加入"k2":123

t = (11,22,['zhangsan',{'k1':'v1'}])

t = (11,22,['zhangsan',{'k1':'v1'}])
t[2][1]['k2']=123
print(t) #返回(11, 22, ['zhangsan', {'k1': 'v1', 'k2': 123}])

六、字典(dict)

1、字典的创建

di = {'key1':123,'key2':456}

di = {}   di = dict()

dic = dict(key1=123,key2=456) #会输出{'key1': 123, 'key2': 456}

2、字典的转换

li = [11,22,33,44,55,66]
dic = dict(enumerate(li,1))#输出{1: 11, 2: 22, 3: 33, 4: 44, 5: 55, 6: 66}

3、fromkeys简介

dic = {'key1':123,'key2':456,'key3':567}
di = dic.fromkeys(dic) #di={'key1': None, 'key2': None, 'key3': None}
di['key1']='aaa' #di={'key1': 'aaa', 'key2': None, 'key3': None}
dic = {'key1':123,'key2':456,'key3':567}
new = dic.fromkeys(['key1','key2','keys3','key4'],'aa') #new = {'key1': 'aa', 'key2': 'aa', 'keys3': 'aa', 'key4': 'aa'}
dic = {'key1':123,'key2':456,'key3':567}
new = dic.fromkeys(['key1','key2','keys3','key4'],'aa') #new = {'key1': 'aa', 'key2': 'aa', 'keys3': 'aa', 'key4': 'aa'}
new['key1'] = 'abc' #new ={'key1': 'abc', 'key2': 'aa', 'keys3': 'aa', 'key4': 'aa'}
dic = dict.fromkeys(['key1','key2']) #{'key1': None, 'key2': None}
dic['key1']='abc' #{'key1': None, 'key2': None}
dic = dict.fromkeys(['key1','key2','key3'],[])
dic['key1'].append('xx') #dic={'key1': ['xx'], 'key2': ['xx'], 'key3': ['xx']}
dic = {"key1":[],'key2':[],'key3':[]}
dic['key1'].append('xx') #dic ={'key1': ['xx'], 'key2': [], 'key3': []}

由此可见,利用fromkeys创建的values为列表的字典,其所有key对应的是同一内存的列表。

@staticmethod # known case静态方法
如果方法上面没@staticmethod,那么必须用 对象.方法名 进行调用
如果方法前面有@staticmethod,那么可以直接用类名.方法名 进行调用

【python之路9】类型定义与转换的更多相关文章

  1. NO.2:自学python之路------变量类型、列表、字典

    引言 本周初步认识了库,并学习了Python中各种类型的变量和常用操作.并完成了较为完善的用户与商家购物界面设计. 正文 模块: Python有标准库和第三方库.第三方库需要安装才能使用.大量的库可以 ...

  2. Python之路 day3 函数定义 *args及**kwargs

    #!/usr/bin/env python # -*- coding:utf-8 -*- #Author:ersa import time # def logger(): # time_format ...

  3. Python之路 day2 字符编码及转换

    #!/usr/bin/env python # -*- coding:utf-8 -*- #Author:ersa import sys print("sys default encodin ...

  4. Python str 与 bytes 类型 之间的转换

    bytes:字节数组,通常用它可以描述 “一个字符串”,只不过该字符串是  “bytes类型”,所以容易与str类型混淆,他们二者之间的转换: https://blog.csdn.net/lanchu ...

  5. python之路,Day24 常用设计模式学习

    python之路,Day24 常用设计模式学习   本节内容 设计模式介绍 设计模式分类 设计模式6大原则 1.设计模式介绍 设计模式(Design Patterns) --可复用面向对象软件的基础 ...

  6. Python之路,Day14 - It's time for Django

    Python之路,Day14 - It's time for Django   本节内容 Django流程介绍 Django url Django view Django models Django ...

  7. python 之路,Day11(上) - python mysql and ORM

    python 之路,Day11 - python mysql and ORM   本节内容 数据库介绍 mysql 数据库安装使用 mysql管理 mysql 数据类型 常用mysql命令 创建数据库 ...

  8. Python之路,Day10 - 异步IO\数据库\队列\缓存

    Python之路,Day9 - 异步IO\数据库\队列\缓存   本节内容 Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitM ...

  9. 小白的Python之路 day1

    Python之路,Day1 - Python基础1 本节内容 Python介绍 发展史 Python 2 or 3? 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van ...

随机推荐

  1. 服务器迁移部署PosApp

    绑定 基本配置 高级设置

  2. PAT甲级——A1091 Acute Stroke【30】

    One important factor to identify acute stroke (急性脑卒中) is the volume of the stroke core. Given the re ...

  3. 基于baseline、svd和stochastic gradient descent的个性化推荐系统

    文章主要介绍的是koren 08年发的论文[1],  2.3部分内容(其余部分会陆续补充上来).koren论文中用到netflix 数据集, 过于大, 在普通的pc机上运行时间很长很长.考虑到写文章目 ...

  4. Appscan standard怎么设置外部浏览器为IE

    Appscan standard怎么设置外部浏览器为IE   方法/步骤     首先,打开一个的Appscan 的界面中,点击菜单中的 工具 的选项   点击了工具的选项之后,弹出了下拉菜单选中为 ...

  5. 使用Colaboratory的免费GPU训练神经网络

    1 Colaboratory 介绍 Colaboratory 是一个 Google 研究项目,旨在帮助传播机器学习培训和研究成果.它是一个 Jupyter 笔记本环境,不需要进行任何设置就可以使用,并 ...

  6. springmvc-环境配置-架构-配合mybatis-参数绑定

    1.1. Spring入门 1.1.1. Springmvc是什么 Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得 ...

  7. sql 递归查询,查出所有子节点

    with t as ( select b.* from Base_Department b where ParentId = 'cce4152c-3483-4334-b68d-155da627bca0 ...

  8. Netty TCP粘包/拆包问题《一》

    1.使用LineBasedFrameDecoder,StringDecoder解析器进行解决TCP粘包/拆包问题 2.代码搞起: TimeClient:客户端 /* * Copyright 2013- ...

  9. windows API 第八篇 _tcsicmp _stricmp _wcsicmp _mbsicmp

    这些函数都是比较字符串小写的,忽略大写,出入的字符串都将按照小写比较Perform a lowercase comparison of strings. 函数原型: int _stricmp( con ...

  10. 使用git命令从github上clone项目

    首先创建本地仓库(实际上就是创建一个文件夹,放项目代码),然后cd进文件夹, 初始化空的git仓库 注意:这里不初始化也是可以clone的 然后git clone url(url表示项目网址) 然后就 ...