MOOC python笔记(二)python中的数据类型和基本语句
python数据类型
数字类型
整数(int)
与数学中整数概念一致(数字大小没有限制,这和其他语言不同),整数可正可负,默认情况下,整数采用十进制。其他进制需要增加相应的引导符号。
如果是二进制在前面加上0b或者0B即可,如果是八进制在前面加上0o或者0O即可,如果是十六进制在前面加上0x或者0X即可。
浮点数(float)
与数学中的实数概念一致,取值范围与精度都有限制。
表达方式:
1.小数:1.23,3.14,-9.01
2.科学计数法:1.23e9,1.2e-5
浮点数运算存在不确定位数,有误差,这是由于计算机用二进制存储浮点数造成的。
如果要消除位数可以使用round函数。
该函数原型为:round(number,ndigit=none)
复数(complex)
与数学中的复数概念一致。
由实部和虚部组成,虚部用j表示。
例如:2+3j,2为实部,3j为虚部。
real方法取实部,imag方法取虚部。
complex(real,imag)函数可以用于创建一个职位real+imag*j的复数。
与数字有关的运算符
python只支持加减乘除和幂运算。
与其他语言不同的是,python的整数除法与浮点数除法是分开的。其中:
/为浮点数除法,结果为小数。
//为整数除法,结果为整数,向下(左)取余。
另外python提供了幂运算,符号为**,它的优先级高于乘除和加减。
python不支持自增自减。
注意python中的--i与++i不是自增自减操作,详见:python开发_++i,i += 1的区分
数学库(math)
e 自然常数
pi 圆周率
log(x[,base=e]) 返回以base为底的对数,缺省为e
pow(x,y) 返回x的y次方
sqrt(x) 返回x的平方根
fabs(x) 返回x的绝对值
round(x[,n]) 返回浮点数x的四舍五入值,n代表舍入到小数点后的位数
divmod(x,y) 返回x和y的商和余数
字符串类型
python中没有字符类型,即使是一个字符也是字符串。
字符串是以引号括起来的任意文本,是一个有序序列
表示形式:
单引号:'abc'
双引号:"hello"
三引号:"'hello
world'"
关于这些引号的用法详见:Python中单引号,双引号,3个单引号及3个双引号的区别
转义字符:和C/C++基本一致
字符串运算符
+连接字符串 >>>'hello'+'world'
'helloworld'
* 复制字符串 >>>'ab'*3
'ababab'
字符串切片
字符串是一个有序序列,可以是正向递增,也可以是反向递减。
索引:在[]中给出序号
切片:在[]中给出切片序号
例如:
>>> a='abcdefgh'
>>> a[0]
'a'
>>> a[-8]
'a'
>>> a[1]
'b'
>>> a[1:5]
'bcde'
布尔值与关系、逻辑运算
python中提供布尔值:True、False(注意首字母大写)。
逻辑运算和关系运算的结果是布尔值。
注意python3中不同类型的数据不可以在一起比较。
另外python中支持连续的关系运算,如:
>>>1<3<5 #等价于1<3 and 3<5
另外与C/C++中不同的是,逻辑运算符,与或非为and,or,not而非&&、||、!
另外按位与,或,异或,翻转python是支持的。
1.与运算:A与B值均为1时,A、B与的运算结果才为1,否则为0 (运算符:&)
2.或运算:A或B值为1时,A、B或的运算结果才为1,否则为0 (运算符:|)
3.异或运算:A与B不同为1时,A、B的预算结果才为1,否则为0 (运算符:^)
4.按位翻转(按位取反):将内存中表示数字的2进制数取反0取1,1取0 (运算符:~)
运算符优先级与C/C++一致。
内置转换函数
内置函数指不需要导入类的函数
如图:
类型转换函数实例:
基本格式:int(x[,base])
>>> int() #不传入参数时,得到结果0.
0
>>> int("02") #去掉0
2
>>> int(" 35 ") #去掉空格
35
>>> int("35",8) #八进制
29
python中的语句
python语句包括赋值语句,分支语句,循环语句等。
语句通常是一行一条,如果需要一行多条的话需要在语句末尾加分号。
如果一条语句过长我们也可以使用续行符来\
跨行表示。
需要注意的是,python中的语句是严格注意缩进的!(我觉得这是为了C/C++中的悬空else问题)。
赋值语句
基本形式是“变量=值”的形式。
>>> x=1
>>> y=2
>>> k=x+y
>>> x
1
>>> y
2
>>> k
3
也可以进行序列赋值
>>> x,y=4,8
>>> x
4
>>> y
8
>>> a,b="34"
>>> a
'3'
>>> b
'4'
注意序列赋值时,两边序列容器中的元素个数必须一致否则会报错。
>>> i,j=[1,2,3]
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
i,j=[1,2,3]
ValueError: too many values to unpack (expected 2)
小技巧:在python中可以使用序列赋值来进行swap
>>> a=4;b=8
>>> a,b=b,a
>>> a
8
>>> b
4
还可以进行多变量赋值(即连等)
>>> a=b=c=5
>>> print(a,b,c)
5 5 5
分支语句
if 逻辑表达式:
语句块1
else:
语句块2
这个没啥好说的。
循环语句
while语句
while(BOOL):
语句块
while语句可以使用break退出,continue重新开始。
例如
while(True):
x=int(input())
if(x!=-1):
sum+=x
elif(x==0):
continue
else:
break
for语句
for variable in 序列:
语句块
例如:
>>> s="hello,world"
>>> for i in s:
print(i,end='')
hello,world
有时为了方便产生序列我们引入range函数
range函数
range(start,stop,step)
start:计数从start开始。默认是从0开始。
例如range(5)等价于range(0,5)
stop:计数到stop结束,但不包括stop。
例如:list(range(0,5))是[0,1,2,3,4]没有5
step:步长,默认为1。
例如:range(0,5)等价于range(0,5,1)
注意range的返回值并不为序列,而是iterable,(具体是什么我暂时也不是很清楚,只知道可以在for循环中迭代使用,其他情况下只有变成列表才管用),需要用list()强制转换。
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1,10))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1,10,4))
[1, 5, 9]
>>> list(range(0,-10,-1))
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
循环中的else语句
python中提供了判断程序是用break跳出还是正常退出的语句。
如果程序正常退出则执行else。
break,return退出循环,则不执行else语句。
x=int(input())
for i in range(1,10):
if(i>x):
break
else:
print("x>9")
异常处理语句
try:
语句块1
except 异常类型1:
语句块2
except 异常类型2:
....
except:
语句块3
else:
语句块4
finally:
语句块5
如果try里的语句块发生了异常就根据异常执行相应except中的语句。
如果except后面没有异常类型则包含所有异常类型。
如果没有异常就执行else。
无论有没有异常都指向finally。
异常类型
异常名称 | 描述 |
---|---|
BaseException | 所有异常的基类 |
SystemExit | 解释器请求退出 |
KeyboardInterrupt | 用户中断执行(通常是输入^C) |
Exception | 常规错误的基类 |
StopIteration | 迭代器没有更多的值 |
GeneratorExit | 生成器(generator)发生异常来通知退出 |
StandardError | 所有的内建标准异常的基类 |
ArithmeticError | 所有数值计算错误的基类 |
FloatingPointError | 浮点计算错误 |
OverflowError | 数值运算超出最大限制 |
ZeroDivisionError | 除(或取模)零 (所有数据类型) |
AssertionError | 断言语句失败 |
AttributeError | 对象没有这个属性 |
EOFError | 没有内建输入,到达EOF 标记 |
EnvironmentError | 操作系统错误的基类 |
IOError | 输入/输出操作失败 |
OSError | 操作系统错误 |
WindowsError | 系统调用失败 |
ImportError | 导入模块/对象失败 |
LookupError | 无效数据查询的基类 |
IndexError | 序列中没有此索引(index) |
KeyError | 映射中没有这个键 |
MemoryError | 内存溢出错误(对于Python 解释器不是致命的) |
NameError | 未声明/初始化对象 (没有属性) |
UnboundLocalError | 访问未初始化的本地变量 |
ReferenceError | 弱引用(Weak reference)试图访问已经垃圾回收了的对象 |
RuntimeError | 一般的运行时错误 |
NotImplementedError | 尚未实现的方法 |
SyntaxError | Python 语法错误 |
IndentationError | 缩进错误 |
TabError | Tab 和空格混用 |
SystemError | 一般的解释器系统错误 |
TypeError | 对类型无效的操作 |
ValueError | 传入无效的参数 |
UnicodeError | Unicode 相关的错误 |
UnicodeDecodeError | Unicode 解码时的错误 |
UnicodeEncodeError | Unicode 编码时错误 |
UnicodeTranslateError | Unicode 转换时错误 |
Warning | 警告的基类 |
DeprecationWarning | 关于被弃用的特征的警告 |
FutureWarning | 关于构造将来语义会有改变的警告 |
OverflowWarning | 旧的关于自动提升为长整型(long)的警告 |
PendingDeprecationWarning | 关于特性将会被废弃的警告 |
RuntimeWarning | 可疑的运行时行为(runtime behavior)的警告 |
SyntaxWarning | 可疑的语法的警告 |
UserWarning | 用户代码生成的警告 |
格式化输出
format函数
基本格式:str.format()
>>> x=3.14159
>>> y=2*x*3
>>> print("{0:.2f} {1:.2f}".format(x,y))
3.14 18.85
0和1表示format函数中的第一和第二个参数
.2f表示小数部分保留两位,四舍五入。
格式化的方法与C/C++一致。
除了format函数实际上还有一种方式%可以将字符串格式化,用法基本与这个一致,下节会提一下。
MOOC python笔记(二)python中的数据类型和基本语句的更多相关文章
- 风变编程笔记(二)-Python爬虫精进
第0关 认识爬虫 1. 浏览器的工作原理首先,我们在浏览器输入网址(也可以叫URL),然后浏览器向服务器传达了我们想访问某个网页的需求,这个过程就叫做[请求]紧接着,服务器把你想要的网站数据发送给浏 ...
- python笔记二
一 运算符 1算术运算+ - * / % ** //其中%为取余,**为取幂如2**10=1024 9//4=2 需要注意的是python2.7中如9/2=4 需要正确表示,则在开头添加 fr ...
- Python笔记(二)
python笔记 函数式编程 函数 函数是Python内建支持一种封装(将大段代码拆成函数) 通过函数的调用,可以将复制的任务分解. 函数式编程(Functional Programming) 计算机 ...
- Python基础(二):操作基本数据类型
Python是一门解释型语言,它的优势在于代码简洁,易于理解,可以通过大量已封装好的内建方法和第三方模块方法完成日常所需的操作. 字符串 索引 起始下标为0 (从前往后数),末尾下标为-1(从后往前数 ...
- Python笔记(二十九)_模块
模块 在Python中,一个.py文件就是一个模块 if __name__ == '__main__':所有模块都有一个 __name__ 属性,__name__ 的值取决于如何应用模块 run当前文 ...
- 【Python笔记】Python语言基础
Python是一种解释性(没有编译).交互式.面向对象的语言 1.安装python编译器 版本:Python2.7比较普遍,Python不是向下兼容的软件,因此Python3.x有些东西不好找资料 2 ...
- 【Python笔记】Python变量类型
Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据 ...
- python笔记05:条件、循环和其它语句
5.1 print和import的更多使用方式 5.1.1 使用逗号输出 print 'Age',42 print 1,2,3 如果要同时输出文本和变量值,又不希望使用字符串格式化的话,那么这个特性就 ...
- 【Python笔记】Python 基础语法
Python 标识符 在 Python 里,标识符由字母.数字.下划线组成. 在 Python 中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. Python 中的标识符是区分大小 ...
随机推荐
- ORACLE百分比分析函数RATIO_TO_REPORT() OVER()
有时候不用的指标的绝对值不能比,但是转转为百分比的形式就容易看出波动了,是数据分析的好用的一个分析函数 20:00:24 SYS@orcl> conn scott/tiger; Connecte ...
- Flask 中字典数据返回(jsonify)
不多说,直接上代码,flask中的字典数据的处理: from flask import Flask, jsonify app = Flask(__name__, static_folder=" ...
- debian 系统修改密码
1.在Grub的引导装载程序菜单上,选择你要进入的条目,键入 “e” 来进入编辑模式.2.在第二行(类似于kernel /vmlinuz-2.6.15 ro root=/dev/hda2 ),键入”e ...
- Game Engine Architecture 13
[Game Engine Architecture 13] 1.describe an arbitrary signal x[n] as a linear combination of unit im ...
- 使用Supervisor管理Django应用进程
官方文档 1.安装 pip install supervisor 2.使用说明 2.1 查看默认配置 echo_supervisord_conf 一般情况下,不需要去修改默认配置,而是将默认配置重定 ...
- 使用WIFI网卡 dhcp动态获取IP
前面几篇博客中,wifi网卡的ip都是手工设置的,本篇博客将来移植dhcp,使得wifi网卡可以动态的获取ip.路由等信息. 那我们去哪里下载dhcp源码呢?在pc机上执行dh +tab键,看一下有哪 ...
- Python八大算法的实现,插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序。
Python八大算法的实现,插入排序.希尔排序.冒泡排序.快速排序.直接选择排序.堆排序.归并排序.基数排序. 1.插入排序 描述 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得 ...
- 杨巧丽 实验十四 团队项目评审&课程学习总结
实验十四 团队项目评审&课程学习总结 项目 内容 这个作业属于哪个课程 (https://www.cnblogs.com/nwnu-daizh/) 这个作业的要求在哪里 (https://ww ...
- USACO Party Invitations
洛谷 P3068 [USACO13JAN]派对邀请函Party Invitations 洛谷传送门 JDOJ 2343: USACO 2013 Jan Silver 3.Party Invitatio ...
- [PHP] layui实现多图上传,图片自由排序,自由删除
实现效果如下图所示: 实现代码: css代码 <style> .layui-upload-img { width: 90px; height: 90px; margin: ; } .pic ...