显式转换

int(x [,base]) ⇒ 将x转换为一个十进制的整数

long(x [,base]) ⇒ 将x转换为一个十进制的长整数

float(x) ⇒ 将x转换为一个浮点数

str(object) ⇒ 转换为字符串

repr(object) ⇒ 转换为表达式字符串

eval(str) ⇒ 用来计算在字符串中的有效Python表达式,并返回一个对象

tuple(seq) ⇒ 将序列seq转换为一个元组

list(seq) ⇒ 将序列seq转换为一个列表

chr(x ) ⇒ 将一个整数转换为一个字符

unichr(x ) ⇒ 将一个整数转换为Unicode字符

ord(x ) ⇒ 将一个字符转换为它的整数值

hex(x ) ⇒ 将一个整数转换为一个十六进制字符串

oct(x ) ⇒ 将一个整数转换为一个八进制字符串

Non-String转换成String类型

1.List -> String

>>> li = ['My','name','is','Jmilk']
>>> strLi = str(li)
>>> print(strLi)
['My', 'name', 'is', 'Jmilk']
>>> type(strLi)
<class 'str'>

2.Tuple -> String

>>> tup = ('my','name','is','jmilk')
>>> Tup = str(tup)
>>> Tup
"('my', 'name', 'is', 'jmilk')"
>>> type(Tup)
<class 'str'>

3.Dictionary -> String

>>> dic = {'name':'Jmilk','age':23}
>>> Dic = str(dic)
>>> Dic
"{'name': 'Jmilk', 'age': 23}"
>>> type(Dic)
<class 'str'>

str()和repr()的区别

(1)repr()支持eval(repr(object)) == object。

(2)str()函数的结果适合用户阅读,repr()的结果适合python解析器阅读,其中有一些Python解析器能够识别的数据细节,但这些细节一般对用户是多余的。

(3)repr()转换后的String对象可以通过求值运算eval()来还原到转换之前的对象,str()通常不需要eval()去处理。

>>> name = ('alex\n,reic\n,jane\n')
>>> print(str(name))
alex
,reic
,jane >>> print(repr(name))
'alex\n,reic\n,jane\n'

eval():

(1)能结合repr()函数将一个经过转换为Strng类型后的对象还原为转换之前的对象类型。

(2)eval()也被称为求值运算,可以将字符串str当成有效的表达式来求值并返回计算结果。

>>> name = ('My name is Jmilk\n')
>>> name1 = str(name)
>>> name1
'My name is Jmilk\n'
>>> name2 = repr(name)
>>> name2
"'My name is Jmilk\\n'"
>>> eval(name1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1
My name is Jmilk
^
SyntaxError: invalid syntax
>>> eval(name2)
'My name is Jmilk\n'

eval(str(Object))可能会报错,无法还原为原来的对象型。而eval(repr(object))却可以还原,下面例子:

>>> name = ('My','name','is','Jmilk\n')

>>> repr(name)
"('My', 'name', 'is', 'Jmilk\\n')" >>> eval(repr(name))
('My', 'name', 'is', 'Jmilk\n') >>> type(eval(repr(name)))
<class 'tuple'>

总结:str()函数主要是为了让人能够更好的阅读其内容,而rper()除了转换为String类型外,还能够被Python解析器识别其数据细节,从而repr()转换后的字符串能够被当作有效表达式来处理。
       注意:eval()函数最主要的功能是能够将字符串中有效的表达式进行计算并返回一个对象。如下:

>>> sum = '100 + 10'
>>> eval(sum)
110

Non-int转换成int类型 

int(x[, base=10]) -> int or long                         base:指定进制;  x:通常为一个String  ;base指定了x的进制。

1.float -> int  向下取整

>>> int(10.9)
10

2.string ->int  int('a',b) a为要转换的数字,b为a的进制,b必须标明,不然会出错。

>>> int('0xa',16)
10
>>> int('',2)
10
>>> int('0xa')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '0xa'

 Non-float转换成float

float(x) -> floating point number
       Convert a string or number to a floating point number, if possible.
       可以接收Int和String类型参数,float()函数在连接数据库操作会被经常使用。当参数为String时,只能出现数字和一个点额任意组合,若出现多个点号,则会出现异常。

>>> float(10)
10.0 >>> float('')
100.0 >>> float('.98')
0.98 >>> float('.123.')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: could not convert string to float: '.123.'

Non-list转换成list

list(iterable) -> new list initialized from iterable’s items 
       使用迭代器中的元素生成一个新的列表

1.string -> list

Python全栈之路----类型转换的更多相关文章

  1. Python全栈之路----目录

    Module1 Python基本语法 Python全栈之路----编程基本情况介绍 Python全栈之路----常用数据类型--集合 Module2 数据类型.字符编码.文件操作 Python全栈之路 ...

  2. Python全栈之路目录结构

    基础 1.Python全栈之路-----基础篇 2.Python全栈之路---运算符与基本的数据结构 3.Python全栈之路3--set集合--三元运算--深浅拷贝--初识函数 4.Python全栈 ...

  3. Python全栈之路----常用模块----hashlib加密模块

    加密算法介绍 HASH       Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列 ...

  4. python 全栈之路

    目录 Python 全栈之路 一. Python 1. Python基础知识部分 2. Python -函数 3. Python - 模块 4. Python - 面对对象 5. Python - 文 ...

  5. Python全栈之路----函数----返回值

    函数外部的代码想要获取函数的执行结果,就可以在函数里用return语句,把结果返回. def stu_register(name,age,course='PY',country='CN'): prin ...

  6. Python全栈之路----常用模块----软件开发目录规范

    目录基本内容 log  #日志目录 conf  #配置目录 core/luffycity  #程序核心代码目录  #luffycity 是项目名,建议用小写 libs/modules  #内置模块 d ...

  7. Python全栈之路----常用模块----shutil模块

    高级的 文件.文件包.压缩包 处理模块   参考Python之路[第四篇]:模块     #src是原文件名,fdst是新文件名 shutil.copyfileobj(fsrc, fdst[, len ...

  8. Python全栈之路----Python2与Python3

    金角大王Alex  python 之路,致那些年,我们依然没搞明白的编码 python2与python3的区别 py2 str = bytes 为什么有bytes? 是因为要表示图片.视频等二进制格式 ...

  9. Python全栈之路----函数进阶----装饰器

    Python之路,Day4 - Python基础4 (new版) 装饰器 user_status = False #用户登录后改为True def login(func): #传入想调用的函数名 de ...

随机推荐

  1. [c/c++] programming之路(19)、数组指针

    一.指针运算 #include<stdio.h> #include<stdlib.h> void main0(){ ; int *p=&a; printf());//变 ...

  2. null与undefined的区别

    null和undefined是JavaScript五种基本数据类型中的两种. null是一个特殊值,但我们常常误解它,有时候我们会把它和另一个数据类型undefined的含义互相混淆. 首先我们来了解 ...

  3. Ceph常用命令

    目录 [1.环境准备] [2.部署管理] [3.集群扩容] [4.用户管理] [5.密钥环管理] [6.块设备管理] [7.快照管理] [8.参考链接] 简要说明: 最近心血来潮,对分布式存储感兴趣, ...

  4. leecode第一百四十六题(LRU缓存机制)

    class LRUCache { private: unordered_map<int, list<pair<int,int>>::iterator> _m; // ...

  5. ES6标准之箭头函数

    语法 具有一个参数的简单函数 var single = a => a single('hello, world') // 'hello, world' 没有参数的需要用在箭头前加上小括号 var ...

  6. Centos 中 service iptables stop 失败

    Centos7中的防火墙调整为firewalld,试一下systemctl stop firewalld关闭防火墙.

  7. 了解多层交换中的CEF FIB CAM TCAM

    来源:http://blog.51cto.com/redant/314151 多层交换是指交换机使用硬件来交换和路由数据包,通过硬件来支持4-7层的交换.交换机执行硬件交换,第3层引擎(路由处理器)须 ...

  8. 『TensorFlow』模型保存和载入方法汇总

    『TensorFlow』第七弹_保存&载入会话_霸王回马 一.TensorFlow常规模型加载方法 保存模型 tf.train.Saver()类,.save(sess, ckpt文件目录)方法 ...

  9. 漏洞复现——Apache SSI远程命令执行

    漏洞原理:当目标服务器开启了SSI与CGI支持,我们就可以上传shtml文件,利用<!--#exec cmd="id" -->语法执行命令. SSI:SSI(服务器端包 ...

  10. 在git服务器上创建项目过程及遇到的问题

    一: 登录git服务器,输入用户名,密码等 二: New Project 添加项目 设置组可见,项目名称等. 创建成功的项目可以看到该项目的clone地址,可以通过http,ssh两种方式来获取: 三 ...