Python类型转换+序列操作+基本概念辨析速查手册
2024-08-26 23:06:58
第一部分是Python语言中基础中的基础,根据网上资料,合并如下:
1、类型转换
int(x [,base]) 将x转换为一个整数
long(x [,base]) 将x转换为一个长整数
float(x) 将x转换到一个浮点数
complex(real) 创建一个复数
str(x) 将对象x转换为字符串
repr(x) 将对象x转换为表达式字符串
eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s) 将序列s转换为一个元组
list(s) 将序列s转换为一个列表
chr(x) 将一个整数转换为一个字符
unichr(x) 将一个整数转换为Unicode字符
ord(x) 将一个字符转换为它的整数值
hex(x) 将一个整数转换为一个十六进制字符串
oct(x) 将一个整数转换为一个八进制字符串
2、序列操作
s+r 序列连接
s*n,n*s s的n次拷贝,n为整数
s%d 字符串格式化(仅字符串)
s[i] 索引
s[i:j] 切片
x (not) in s 从属关系
for x in s : 迭代
len(s) 长度
min(s) 最小元素
max(s) 最大元素
s[i] = x 为s[i] 重新赋值
s[i:j] = r 将列表片段重新赋值
del s[i] 删除列表中一个元素
del s[i:j] 删除列表中一个片段
第二部分是Python基本概念辨析,结合新手经常出错的问题进行简单总结。
3、Python基础知识里,容易出错的几个问题:
3.1 余数
点击(此处)折叠或打开
- >>>2.75%0.5
- 0.25
- #而不是2.5
3.2 序列
序列是初学者最头疼的一个问题了,概念太多,许多人还是数组概念范儿,Python已经进化了。
序列有一下几种:
列表、元组、字符串、Buffer和xrange,初学者最容易混淆的是序列、列表、元组和字符串。
序列,是指有序集合排列。所有序列都具有索引、分片、加、乘、成员资格、长度、最大和最小的内在函数。这是共性!
但是,针对序列中具体的类型而言,又有差异。比较灵活的是列表,我们管它叫“韦小宝”,除了序列共性函数外,列表具有append()、count()、extend()、index()、insert()、reverse()、sort()、remove()等方法,以及直接对其中个别元素或分片元素进行赋值或删除,叫他韦小宝就是因为它太灵活。
不过元组就不一样了,它是个“木头人”,它不能够改变内部的内容,是不可变序列,所以只能使用共性函数。它的主要应用是键值处理上,这是后话了。
此外,字符串不是元组,因为元组就是形如(1,2,3)的序列,但和元组很像,字符串也不能直接改变其中的值,比如:
点击(此处)折叠或打开
- Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
- Type "copyright", "credits" or "license()" for more information.
- >>> x = [1,2,3]
- >>> x[0] = 9
- >>> x
- [9, 2, 3]
- >>> y = (1,2,3)
- >>> y[0] = 9
- Traceback (most recent call last):
- File "<pyshell#4>", line 1, in <module>
- y[0] = 9
- TypeError: 'tuple' object does not support item assignment
- >>> z = "abc"
- >>> z[0] = 'A'
- Traceback (most recent call last):
- File "<pyshell#6>", line 1, in <module>
- z[0] = 'A'
- TypeError: 'str' object does not support item assignment
- >>>
3.3 三目运算
Python没有C语言中的三目运算符'?',但可以构造出来:
(1) expr=判断表达式 and expr1 or expr2,不安全,不推荐使用
(2) min(x,y)=(x<y and [x] or [y])[0],推荐这种用法。
(3) 当然从Python2.5起,内置了一个条件表达式:a if b else c。当b为真返回a,b为假返回c。这个也是很好用的哦。
附一个我改编过的例子,其中就用到了第二种方法:
点击(此处)折叠或打开
- #使用人名作为键
- people={
- 'Alice':{
- 'phone':'123456',
- 'addr':'Foo drive 39'
- },
- 'Beth':{
- 'phone':'888888',
- 'addr':'Ok street no23#'
- },
- 'Cecil':{
- 'phone':'666666',
- 'addr':'Baz avenue 90'
- }
- }
- labels = {
- 'phone':'Phone Number',
- 'addr':'address'
- }
- name = raw_input('Name:').title()
- request = raw_input('What\'s your want to search?Phone Number(P) or Address(A)?')
- key = (request.lower() == 'p' and ['phone'] or ['addr'])[0]
- if name in people:
- print "%s's %s is %s" % (name,labels[key],people[name][key])
- else:
- print "User %s is not exist." % name
最新文章
- json数据格式及json校验格式化工具简单实现
- jdbc在mysql下一次执行多条sql脚本
- jQuery简单的手风琴菜单
- Zabbix 监控 Nginx(四)
- c# System.Data.OracleClient需要Oracle客户端软件8.1.7或更高版本
- day14---html基础
- [.net 面向对象编程基础] (21) 委托
- Social Emotional Computing -价值观的运算
- JVM执行引擎总结(读《深入理解JVM》) 早期编译优化 DCE for java
- XML转java对象
- jQuery实现加入购物车飞入动画效果
- VPN有什么用?(转载)
- linux简单配置
- 【NOIP2013】货车运输
- c++编程规范的纲要和记录
- 轻松学习Linux之AWK使用初步
- linux登录后出现_bash-4.1#终端提示符异常
- python 备份脚本
- 增强型for语句与java,c#的不同之处,with语句的使用
- centos 安装 ntpdate 并同步时间
热门文章
- JS 中Math.ceil()、Math.floor()和Math.round()的区别
- ckeditor(在线文本编辑器)使用教程
- tencent intern learning
- OpenStack Weekly Rank 2015.08.10
- Kudu的优点
- Hadoop2.X HA架构与部署
- HDU 5360——Hiking——————【贪心+优先队列】
- jq案例中遇到的知识点总结(会飞的小鸟和三级联动)
- AWS的redhat7中安装jdk8
- 位运算(2)——Number of 1 Bits