【python之路9】类型定义与转换
一、整型(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】类型定义与转换的更多相关文章
- NO.2:自学python之路------变量类型、列表、字典
引言 本周初步认识了库,并学习了Python中各种类型的变量和常用操作.并完成了较为完善的用户与商家购物界面设计. 正文 模块: Python有标准库和第三方库.第三方库需要安装才能使用.大量的库可以 ...
- Python之路 day3 函数定义 *args及**kwargs
#!/usr/bin/env python # -*- coding:utf-8 -*- #Author:ersa import time # def logger(): # time_format ...
- Python之路 day2 字符编码及转换
#!/usr/bin/env python # -*- coding:utf-8 -*- #Author:ersa import sys print("sys default encodin ...
- Python str 与 bytes 类型 之间的转换
bytes:字节数组,通常用它可以描述 “一个字符串”,只不过该字符串是 “bytes类型”,所以容易与str类型混淆,他们二者之间的转换: https://blog.csdn.net/lanchu ...
- python之路,Day24 常用设计模式学习
python之路,Day24 常用设计模式学习 本节内容 设计模式介绍 设计模式分类 设计模式6大原则 1.设计模式介绍 设计模式(Design Patterns) --可复用面向对象软件的基础 ...
- Python之路,Day14 - It's time for Django
Python之路,Day14 - It's time for Django 本节内容 Django流程介绍 Django url Django view Django models Django ...
- python 之路,Day11(上) - python mysql and ORM
python 之路,Day11 - python mysql and ORM 本节内容 数据库介绍 mysql 数据库安装使用 mysql管理 mysql 数据类型 常用mysql命令 创建数据库 ...
- Python之路,Day10 - 异步IO\数据库\队列\缓存
Python之路,Day9 - 异步IO\数据库\队列\缓存 本节内容 Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitM ...
- 小白的Python之路 day1
Python之路,Day1 - Python基础1 本节内容 Python介绍 发展史 Python 2 or 3? 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van ...
随机推荐
- java中自己对页面跳转问题的一些经验
在eclipse中,如果你要在jsp页面跳转到servlet页面中,可以用action=“/根文件名/servlet文件名” 的方式跳转. 例如我创建了一个web application名字是test ...
- WPF MVVM模式不用Prism
上一个例子使用了Prism.这个例子不用Prism.用自己封装的库LiuxhCSDLL,其实也差不多. 一.程序结构 二.界面代码以及界面效果 <Window x:Class="WPF ...
- mahout in Action2.2-给用户推荐图书(3)-评价推荐系统
推荐系统引擎是一个工具,一种回答问题的手段,"对用户来讲什么是最好的推荐?",在研究回答的前先研究一下这个问题.一个好的推荐的准确含义是什么?如何知道推荐系统是如何生成推荐的?下面 ...
- Codeigniter 数据库操作事务情况下获取不到last_insert_id()
开发中,数据库Insert使用了事务,如果 $this->db->insert_id() 放在 $this->db->trans_complete(); 这句语句之后,$thi ...
- wpf listbox touch 整个窗口移动
工作中遇到遇到,在有listbox中的地方,touch listbox的时候 可以把整个窗体都移动了,解决方案如下: /// <summary> /// prevent the rubb ...
- Python-基本文件处理
目录 文件的类型 什么是文件? 文件的分类 文件的打开与关闭 文件处理的三个步骤 使用方式 爬虫 requests库的使用 文件的类型 什么是文件? 一堆.py/.txt 存储着文字信息文件, 文件的 ...
- 通过media媒体查询设置ie7/8样式、使用media判断各机型、手淘flexible.js
@media all and (min-width:1280px){ /* 所有设备宽度大于1280干嘛干嘛嘞... */ body{ background:#f00; } } @media (min ...
- 阿里OSS ajax方式 web直传
部分js代码 send_request = function(){//这是从后台获取认证策略等信息. var htmlobj=$.ajax({url:root+"/service/polic ...
- 修改mysql字段类型,修改字段名
修改字段类型(数据类型,长度,默认值) alter table user modify user_name 类型 修改字段名 方法一:alter table 表 change 旧字段名 新字段名 新数 ...
- if _name_ == " _main_"
1.作用 py文件有2种使用方法,第1是自己本脚本自己独立执行:第2是被import到其他文件脚本中执行. if _name_ == " _main_" 该语句控制其他下一步的脚 ...