我的Python成长之路---第一天---Python基础(2)---2015年12月26日(雾霾)
三、数据类型
Python基本类型(能够直接处理的数据类型有以下几种)主要有5种
1、整数(int)
Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。
2、浮点数(float)
浮点数也就是数学中的小数。由于整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差。需要注意。
3、字符串
字符串是以单引号'或双引号"括起来的任意文本,比如'abc',"xyz"等等。当然单引号‘和双引号"本身也是字符,如果字符串中有单引号'或双引号"则按照如下的方法处理
1)字符串中只有单引号如那么这个字符串可以用双引号括起来,例如
>>> "I'm OK"
"I'm OK"
2)字符串中只有双引号如那么这个字符串可以用单引号括起来,例如
>>> 'You are "OK"'
'You are "OK"'
3)如果字符串既有双引号又有单引号就用\做转义
>>> print('I\'m "OK"')
I'm "OK"
转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\
Python还有一种字符串的表示方法三个连续的单引号'''或双引号"""括起来如:'''ABC'''或"""ABC"""。这在Python中两种意义,一种是表示
>>> print('''line1
... line2
... line3''')
line1
line2
line3
说明:可以看出你的字符串原始是什么格式,就按照什么格式这要比在字符串中使用\n表示回车\t表示制表符这种方式格式化输出字符串要方便的多
三个连续的单引号'''或双引号"""括起来另外一种意义表示多可以表示多行注释
字符串的常用操作
字符串的切片:假设有一个字符串变量A = 'abcdefg',Python用索引表示每个字符的位置
字符串变量A的字符索引与字符对应关系如下
| 索引: | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| 字符: | a | b | c | d | e | f | g |
1)字符的第n个字符(从0开始计数,Python中的索引和常用的计数都是从0开始的),str[n]
>>> A = 'abcdefg'
>>> A[1]
'b'
2)从第m个字符到第n个字符,注意:Python的切片操作是顾头不顾尾的,也就是说包括第一个m但不包括n的:str[m:n]
>>> A[2:4]
'cd'
说明m和n是可以省略不写的,默认表示第一个和最后一个元素,注意:在省略n的情况下是包括最后一个字符的
>>> A[:]
'abcdefg'
另外索引值m和n可以用负数,表示从后往前数。注意由于0没有-0这个概念,所以-1表示最后一个元素,以此类推
| 索引: | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
| 字符: | a | b | c | d | e | f | g |
>>> A[-4:-1]
'def'
3)从第m个字符到第n个字符,步长为p(也就是每隔p-1个字符),str[m:n:p],默认情况(省略的情况)下步长p为1,也就是中间每隔o个字符
>>> A[1::2]
'bdf'
字符串格式化:
编写代码的时候我们会经常遇到需要对字符串进行拼接
两种方式:
第一种:用加号(不推荐)
例如:我们有两个字符串'ABC'和'DEF'
>>> 'ABC' + 'DEF'
'ABCDEF'
为什么不推荐?首先这种方式Python解释器要额外开辟空间进行字符串拼接,执行效率低,另外如果我们要输出'您好xxx,您的验证码是xxxx,请妥善保存!'这样的字符串,如果用加号进行拼接就会是这样的
>>> name = '65brother'
>>> code = 'ABC'
>>> '您好' + name + ',您的验证码为' + code + ',请妥善保存!'
'您好65brother,您的验证码为ABC,请妥善保存!'
这样会非常麻烦,而且极容易出错
第二种方式,占位符
同其他语言一样Python也支持站位符,常见的站位符有%d——整数、%f——浮点数、%s字符串、%x十六进制数
例如还是上面这个需求
我们可以这样实现
>>> '您好%s,您的验证码是%s,请妥善保存!' %(name, code)
'您好65brother,您的验证码是ABC,请妥善保存!'
说明:()表示元祖,如果只有一个占位符并且只有一个字符串对象要加入进来可以省略
这样的好处是高效,简洁,不容易出错,而且可以方便的实现数字和字符串的拼接(不需要强制类型转换,直接拼接),如果不做强制类型转换会出现如下报错
>>> 'ABC' + 3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitl
另外注意%s可以接收任何数据类型的数据,Python解释器会自动做类型转换,所以我们一般用%s做站位符就够了,其他的就忘了吧,用了反而会由于疏忽没做类型转换而报错
>>> '%s%s' %('ABC','')
'ABC3'
4、布尔值
布尔值只有真True和假False两个值,Python中可以用整数类型1表示真True,0表示假False
5、空值
Python中空值表示什么都没有,用None表示。空值是一个特殊的数据类型。注意空值None不等同于0。以为0是有意义的,是一个整数类型,None没有意义,是一个特殊的数据类型。
我的Python成长之路---第一天---Python基础(2)---2015年12月26日(雾霾)的更多相关文章
- 我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)
2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算 ...
- 我的Python成长之路---第一天---Python基础(作业2:三级菜单)---2015年12月26日(雾霾)
作业二:三级菜单 三级菜单 可一次进入各个子菜单 思路: 这个题看似不难,难点在于三层循环的嵌套,我的思路就是通过flag的真假来控制每一层的循环的,简单来说就是就是通过给每一层循环一个单独的布尔变量 ...
- 我的Python成长之路---第一天---Python基础(6)---2015年12月26日(雾霾)
七.列表——list Python的列表是一种内置的数据类型,是由Python的基本数据类型组成的有序的集合.有点类似C语言的数组,但与数组不同的是,Python在定义列表的时候不用指定列表的容积(长 ...
- 我的Python成长之路---第一天---Python基础(4)---2015年12月26日(雾霾)
五.数据运算与数据运算符 1.算术运算符 算术运算符 运算符 描述 示例 + 加法 >>> 14 - 5 9 - 减法 >>> 14 - 5 9 * 乘法 &g ...
- 我的Python成长之路---第一天---Python基础(5)---2015年12月26日(雾霾)
六.流程控制 与C语言不通的事Python的流程控制的代码块不是用{}花括号表示的,而是用强制缩进来,而且缩进必须一致,官方推荐是使用4个空格,不建议使用使用tab(制表符)做缩进,一是不同的系统ta ...
- 我的Python成长之路---第一天---Python基础(3)---2015年12月26日(雾霾)
四.变量和常量 变量是用来存储程序运行期间需要临时保存可以不断改变的数据的标识符.Python有自身的内存回收机制,所以在开发过程中不用考虑变量的销毁等 Python中的变量名命名有如下规则: 1.变 ...
- 我的Python成长之路---第一天---Python基础(作业1:登录验证)---2015年12月26日(雾霾)
作业一:编写登录接口 输入用户名密码 认证成功系那是欢迎信息 输错三次后锁定 思路: 1.参考模型,这个作业我参考了linux的登录认证流程以及结合网上银行支付宝等锁定规则 1)认证流程参考的是Lin ...
- python成长之路第一篇(5)文件的基本操作
一.三元运算 我们在上章学习的if,,else,,有一种简便的方法 他的表达式是这样的:变量 = 值1 if 条件 else 值2 解释过来就是如果aaa等于sss则输出值1否则输出值2 二.类的概念 ...
- PYthon成长之路第一篇(1)__字符串初识
今天一起走进python的代码世界,一起领悟python的魅力 在很多学习python的书中都会以 print “Hello,world!” 这样的而一个程序为开始,那么其中的 hello,worl ...
随机推荐
- 五毛的cocos2d-x学习笔记05-场景与场景动画,动作
场景切换函数: Director->getInstance()->replaceScene(Scene*); Director->getInstance()->runWithS ...
- OpenSSL命令---rsa
用途: Rsa命令用于处理RSA密钥.格式转换和打印信息.其实其用法和dsa的差不多. 用法: openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET| ...
- codeforces 629D. Babaei and Birthday Cake
题目链接 大意就是给出一个序列, 然后让你从中找出一个严格递增的数列, 使得这一数列里的值加起来最大. 用线段树, 先将数列里的值离散,然后就是线段树单点更新, 区间查询最值. 具体看代码. #inc ...
- [LeetCode]题解(python):018-4Sum
题目来源: https://leetcode.com/problems/4sum/ 题意分析: 这道题目和3Sum的题目类似,找出所有的4个数,使得这4个数等于target. 题目思路: 这道题做法和 ...
- IOS 隐藏键盘。
在View的UITextField中经常需要输入完文字后隐藏软键盘,要实现着一点要让View的Controller实现UITextFieldDelegate代理,然后编写相应的代码. #import ...
- Jsunpack
http://www.baidu.com/#wd=jsunpack&rsv_bp=0&tn=baidu&rsv_spt=3&ie=utf-8&rsv_sug3= ...
- Uva 10935 Throwing cards away I
题目意思:有N张牌,标号为1~N,且牌以叠好,从上到小就是标号1-N的牌,只要牌堆数量大于等于2的时候,就采取如下操作:将最上面的牌扔掉(即离开牌堆).刚才那张牌离开后,再将新的最上面的牌放置于牌堆最 ...
- poj 1936 All in All(水题)
题目链接:http://poj.org/problem?id=1936 思路分析:字符串子序列查找问题,设置两个指针,一个指向子序列,另一个指向待查找的序列,查找个字符串一次即可判断.算法时间复杂度O ...
- Windbg调试命令详解(1)
转载注明>> [作者:张佩][镜像:http://www.yiiyee.cn/Blog] 1. 概述 用户成功安装微软Windows调试工具集后,能够在安装目录下发现四个调试器程序,分别是 ...
- android 上传文件
android对于上传文件,还是非常easy的,和java里面的上传都是一样的,基本上都是熟悉操作输出流和输入流!另一个特别重要的就是须要一些content-type这些參数的配置! 假设这些都弄好 ...