Python自动化开发-变量、数据类型和运算
一、变量
变量定义:Variables are used to store infomation to referrenced and manipulated in a computer program.
用于存储程序运行的中间运算结果
- 标识
- 存储
变量在程序中用一个变量名表示
- 变量名必须是大小写英文、数字和_的组合,且不能用数字开头
- 对大小写敏感
- 推荐小驼峰命名法,如myFirstName, myLastName
- 关键字不能声明为变量
在Python中,等号 = 是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量
|
myFisrtName = "Jonathan" myLastName = "Ni" |
请不要把赋值语句的等号等同于数学的等号。比如下面的代码:
|
x = x = x + |
从数学上理解 x = x + 是不成立的。在程序中,赋值语句先计算右侧的表达式x + ,得到结果,再赋给变量x。
由于x之前的值是,重新赋值后,x的值变成。
理解变量在计算机内存中的表示非常重要,如以下声明变量并赋值。
|
a = "ABC" |
Python解释器干了两件事情:
- 在内存中创建了一个"ABC"的字符串;
- 在内存中创建了一个名为a的变量,并把它指向"ABC"。
常量就是不能变的量,通常用全部大写的变量名表示。
|
PI = 3.14159265359 |
总结:
在计算机内部,任何数据都看成一个“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来。
二、数据类型
计算机就是可以做数学计算的机器。计算机程序理所当然要处理各种数值。除了数值,计算机还可以处理文本、图形、音频、视频、网页等
各种数据。不同的数据,需要定义不同的数据类型。
1、数字
整数:表示方法和数学上的写法一样,如,, 等。或16进制表示,0xffffff, 0xabcd等
浮点数:也就是小数,如0.99, -1.25, 88.88等。或者科学计数法表示1.23e8, 1.2e-8等
复数:由实数部分和虚数部分组成,一般形式为 x + yj,如(-5+4j)等
数字没有大小限制,超出一定范围就直接表示为inf(无限大)
2、字符串
字符串是以单引号'或双引号"括起来的任意文本,比如'abc',"XYZ"等等。' 或 " 本身只是一种表示方式,不是字符串的一部分,
例如 'abc'只有a,b,c 这3个字符。
如果 ' 本身也是一个字符,那就可以用 "" 括起来,比如 "I'm OK" 包含的字符是I, ', m, 空格, O, K这6个字符。
字符串内部既包含 ' 又包含 " 可以用转义字符 \ 来标识。如'I\'m \"OK\"!',表示I'm "OK"!
转义字符可以转义很多字符,比如\n表示换行,\t表示制表符,\\表示字符\
如果字符串内部有很多换行,可用'''.......'''的格式表示多行内容。
字符串常用功能
- string.strip([chars]) 方法用于移除字符串头尾指定的字符(默认为空格)
|
" Jonathan ".strip() >>> "Jonathan" ";Jonathan;;".strip(";") >>> "Jonathan" |
参数: chars -- 移除字符串头尾指定的字符
返回值:返回移除字符串头尾指定的字符生成的新字符串。原字符串保持不变。
- len(string)方法返回字符串长度。
| len("Jonathan") >>> 8 |
参数: str -- 字符串
返回值:字符串长度
- string.index(str, beg=0, end=len(str))方法检测字符串中是否包含子字符串 str
|
"Jonathan".index("J") >>> 0 "Jonathan".index("J",1) >>> substring not found "Jonathan".index("an") >>> 6 |
参数:
str -- 指定检索的字符串
beg -- 开始索引,默认为0
end -- 结束索引,默认为字符串的长度
返回值:如果包含子字符串返回开始的索引值,否则抛出异常。
- 访问字符串中的值
Python 不支持单字符类型,单字符也在Python也是作为一个字符串使用。
访问子字符串,可以使用方括号来截取字符串
|
"Jonathan"[0] >>> "J" # 下标从0开始 "Jonathan"[0:3] >>> "Jon" # 顾头不顾尾 "Jonathan"[-1] >>> "n" # 倒数第一个 "Jonathan"[-3:-1] >>>"ha" # 顾头不顾尾 "Jonathan"[-3:0] >>> "" # 不存在从后往前截取情况 "Jonathan[-3:] >>> "han" # 解释器识别为从倒数第三个一直到最后全部字符 "Jonathan"[] >>> invalid syntax # 解释器区分不了到底时单个字符还是区间字符 "Jonathan"[:] >>> "Jonathan" # 解释器识别为全部字符 "Jonathan"[0:len("Jonathan")] >>> "Jonathan" "Jonathan"[-len("Jonathan"):] >>> "Jonathan" "Jonathan"[::-2] >>> "Jnta" # 最后一位表示步长 2 |
- 字符串拼接
|
"Jon" + "nathan" >>> "Joanthan" # 遇 + ,解释器需重新申请内存 |
- 格式化输出
|
name = "Jonathan" print("My name is %s."%(name) >>> "My name is Jonathan." |
3、布尔型
布尔值和布尔代数的表示完全一致,一个布尔值只有True,False两种值(注意大小写),布尔值可以用 and、or、和not运算
and运算是与运算,只有所有都为True,and运算结果才是True
or运算是或运算,只要其中有一个为True,or运算结果就是True:
not运算是非运算,它是一个单目运算符,把True变成False,False变成True
布尔值经常用在条件判断中
|
if age >= : print("adult") else: print("teenager") |
4、空值
空值是Python里一个特殊的值,用,因为是有意义的,而None是一个特殊的空值。
5、列表
列表是Python中最常用的数据类型,通过列表可以对数据进行最方便的存储修改等操作
定义列表 names = ["Jon", "Alex", "Tom", "Catherine"]
通过下标访问列表中的元素,下标从0开始计数
|
names[0] >>> "Jon" names[-1] >>> "Catherine" |
对列表进行操作
|
names[0] = "Jonathan" # 修改元素 names.append("Jim") >>> ["Jonathan", "Alex", "Tom", "Catherine", "Jim"] # 在列表最后附件元素 names.insert(2, "Linda") >>> ["Jonathan", "Alex", "Linda", "Tom", "Catherine", "Jim"] # 在下标为2的地方插入元素,其他元素后移动 names.remove("Linda") >>> ["Jonathan", "Alex", "Tom", "Catherine", "Jim"] # 删除第一个检索到的元素 del names[4] >>> ["Jonathan", "Alex", "Tom", "Catherine"] # 按下标删除元素 names.index("Alex") >>> 1 # 返回下标 names.sort() >>> ["Alex", "Catherine", "Jonathan", "Tom"] # 按照ASCII正序排列 names.reverse() >>> ["Tom", "Jonathan", "Catherine", "Alex"] # 元素反转 names.count("Tom") >>> 1 # 返回出现次数 |
三、运算
1、算术运算

2、比较运算

3、赋值运算

4、逻辑运算

5、成员运算

6、身份运算

7、位运算

Python自动化开发-变量、数据类型和运算的更多相关文章
- 1. Python中的基本数据类型、运算、变量
本文利用的是Python 3.x版本,建议学习3.x版本 Python中的基本数据类型.运算.变量 1. 基本数据类型 1.1 整数 py可以处理任意大小的整数,例如123,1234567891324 ...
- python自动化开发学习 进程, 线程, 协程
python自动化开发学习 进程, 线程, 协程 前言 在过去单核CPU也可以执行多任务,操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换任务2,任务2执行0.01秒,在切换到任务3,这 ...
- python自动化开发学习 I/O多路复用
python自动化开发学习 I/O多路复用 一. 简介 socketserver在内部是由I/O多路复用,多线程和多进程,实现了并发通信.IO多路复用的系统消耗很小. IO多路复用底层就是监听so ...
- python自动化开发-[第六天]-常用模块、面向对象
今日概要: 1.常用模块 - os模块 - random模块 - shutil模块 - hashlib模块 - pickle/json模块 - shelve模块 - configparser模块 - ...
- Python自动化开发 - 模块与包
本节内容 一.模块 1.import module 2.from module import 3.from module import * 4.模块的__name__属性 5.模块搜索路径 6. ...
- Python自动化开发 - 函数式编程
本节内容 一.函数式编程 二.高阶函数 1.变量可以指向函数 2.函数名也是变量 3.传入函数 三.返回函数 1.函数作为返回值 2.闭包特性 一.函数式编程 函数是Python内建支持的一种封装,我 ...
- Python自动化开发 - 函数
本节内容 函数背景介绍 函数是什么 参数与局部变量 返回值 递归函数 匿名函数 函数式编程介绍 高阶函数 一.函数背景介绍 老板让你写一个监控程序,监控服务器的系统状况,当cpu/memory/dis ...
- Python自动化开发(三):循环次数控制、常用数据类型、字符串格式化、列表常用操作、列表的后续操作
计数器的作用可以在死循环中,符合条件的情况下做自动退出中断 #!/usr/bin/env python # _*_ coding: utf-8 _*_ # @Time : 2017/3/14 11:2 ...
- python自动化开发-[第二天]-基础数据类型与编码(续)
今日简介: - 编码 - 进制转换 - 初识对象 - 基本的数据类型 - 整数 - 布尔值 - 字符串 - 列表 - 元祖 - 字典 - 集合 - range/enumcate 一.编码 encode ...
随机推荐
- HTML5学习资源
http://www.silverlightchina.net/html/HTML_5/study/ 我们一起学:HTML5标签系列教程(一)-video标签 版权声明:本文博客原创文章.博客,未经同 ...
- leetcode第38题--Combination Sum
题目: Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C ...
- leetcode第二题--Median of Two Sorted Arrays
Problem:There are two sorted arrays A and B of size m and n respectively. Find the median of the two ...
- AMDBarUtility Update Ditection Page
Current version is : #################### #060901# #################### DO NOT REPLY!!!
- Kinect for Windows V2.0 新功能
系统要求: win8 or win8.1 硬件要求: 64位(x64)处理器 i7 2.5-GHz或更快的处理器 内置USB 3.0总线 4 GB RAM DX11图形适配器 外观: 第二代Kin ...
- css3中webkit-box的用法(平分父元素)
display:box;box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构.css实现的布局方式.经典的一个布局应用就是布局的垂直等高.水平均分.按比例划分.目前box- ...
- C注意,使用的语言字符串
转载请注明出处! 在C语言没有具体的字符串数据类型,字符串的字符串常量和字符数组的形式. 实际上该字符串是零个或更多字符的字符串.并在整个位模式0NUL字节结束.因此,字符串所包括的字符内部不能出现N ...
- Android项目--tabhost
所有牵扯到自定义布局的layout中尽量用RelativeLayout 在通讯录中如果像小米手机的UI那就是viewpager,在这里,我们做成静态的.通过tabhost来做. 1.布局 a) 直接用 ...
- 为ASP.NET MVC应用程序实现继承
为ASP.NET MVC应用程序实现继承 这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里 ...
- ExpandoObject,DynamicObject,DynamicMetaObject
ExpandoObject,DynamicObject,DynamicMetaObject 接上文:浅谈Dynamic关键字系列之三(上) 为什么TryXXX方法没有被调用?? 将DynamicPro ...