Python基础【第二篇】
一、Python的标准数据类型
Python 3中主要有以下6中数据类型:
Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Sets(集合)、Dictionary(字典)
1.Python Number支持四种数值类型
var_int = 10 # 整型
# var_long = 51924361 # Python 3.x 去除了 long长类型
var_float = 0.1 # float浮点型
var_complex = 3.14j # complex复数
Python Number类型转换
int(x [,base ]) 将x转换为一个整数
long(x [,base ]) 将x转换为一个长整数
float(x ) 将x转换到一个浮点数
str(x ) 将对象 x 转换为字符串
var_string = '10'
转化为10进制数值类型
int_val = int(var_string, 10)
print(type(int_val)) # 打印 <class 'int'>
字符串转化为浮点类型
float_val = float(var_string)
print(type(float_val)) # 打印<class 'float'>
数值类型转化为字符串类型
string_val = str(int_val)
print(type(string_val)) # 打印<class 'str'>
字符串转化为浮点类型
float_val = float(var_string)
print(type(float_val)) # 打印<class 'float'>
2.Python String字符串
Python中的字符串用单引号(')或双引号(")括起来,同时使用反斜杠(\)转义特殊字符
Python 使用反斜杠(\)转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串
变量[头下标:尾下标]
str = 'Runoob'
print(str)
print(str[0]) # 输出字符串第一个字符
print(str * 2) # 输出字符串两次
print(str + "TEST") # 连接字符串
print('Ru\noob')# 转义 \n换行符
print(r'Ru\noob')# 添加一个r,表示原始字符串,不进行转义
3.Python List列表
列表是写在方括号([])之间、用逗号分隔开的元素列表。
列表截取:列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表
变量[头下标:尾下标]
list = ['abcd', 786, 2.33, 'runoob', 70.2]
tinylist = [123, 'runoob']
访问列表中的值
print(list)
print(list[0])
print(list[2:3]) # 索引下表从0开始,从下表2开始输出到下表3之间的元素(不包括下表3的元素), 打印[2.33]
print(list[2:]) # 打印[2.33, 'runoob', 70.2]
print(list + tinylist) # 连接列表
更新列表的元素
print("第四个元素为:" , list[3])
list[3] = 'Runoob'
print("更新后的第四个元素为:", list[3])
删除列表的元素 del
list_del = ['Google', 'Runoob', 1997, 2000]
print(list_del)
del list_del[2]
print("删除第三个元素",list_del) # 打印 ['Google', 'Runoob', 2000]
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
print(len(list_del)) # 输出列表的长度
print('Runoob' in list_del) # 元素是否存在于列表中
for x in list_del:
print(x) # 遍历列表元素
嵌套列表
a = ['a', 'b', 'c', 'd']
b = [1, 2, 3, 4]
x = [a, b]
print(x[0]) # 输出第一个元素,打印 ['a', 'b', 'c', 'd']
print(x[1]) # 输出第二个元素,打印 [1, 2, 3, 4]
print(x[0][1]) # 输出第一个元素的第二个元素,打印 b
4.Python Tuple元祖
Python 的元组与列表类似,不同之处在于元组的元素不能修改。
tup1 = ('Google', 'Runoob', 1977, 2000)
tup2 =() # 创建空元祖
tup3 =(50,) #元祖只包含一个元素
元祖内置函数
tuple(seq) # 将列表转换为元组
5.Python Dictionary 字典
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print(dict['Name']) #查询字典
dict['Name'] = 'Google' # 修改字典元素
print(dict['Name'])
del dict['Class'] # 删除字典元素
del dict # 删除字典
dict.clear() # 删除字典
二、Python流程控制语句
Python循环语句for和while
while循环
n = 100
sum = 0
counter = 1
while counter <= n:
sum = sum + counter
counter += 1
print("1 到 %d 之和为:%d" % (n, sum)) # 输出 1 到 100 之和为: 5050
while...else,在条件语句为false时之行else语句块
count = 0
while count < 5:
print(count, "小于 5")
count = count + 1
else:
print(count, " 大于或等于5")
for循环
languages = ['C', 'C++', 'Perl', 'Python']
可以遍历任何序列的项目,如一个列表
for x in languages:
print(x)
# 通过序列索引迭代
for index in (len(languages):
print(languages[index])
range(start, stop[, step]) 函数,start表示起始值,stop表示最大值,step表示步长(默认1)
for i in range(5):
print(i) # 打印:0,1,2,3,4
使用内置enumerate函数进行遍历
sequence = ['C', 'C++', 'Perl', 'Python']
for key, value in enumerate(sequence):
print("key:%s,value:%s" % (key, value))
continue和break
continue语句跳出本次循环,而break语句跳出整个循环。
for index in range(len(languages)):
if languages[index] == 'C++':
continue; # 跳出本次循环,不打印C++
elif languages[index] == 'Python':
break; # 跳出整个循环
print(languages[index])
三、Python的数据结构与遍历
1.列表

append() 方法可以把一个元素添加到堆栈顶。用不指定索引的 pop() 方法可以把一个元素从堆栈顶释放出来将列表当做堆栈使用
stack = [3, 4, 5]
stack.append(6)
stack.append(7)
print(stack) # 打印[3, 4, 5, 6, 7]
stack.pop()
print(stack) # 打印[3, 4, 5, 6]
print(stack.pop()) # 打印6
stack.pop()
print(stack) # 打印[3,4]
将列表当做队列使用
from collections import deque
queue = deque(["Eric", "John", "Micheal"])
queue.append("Terry") # Terry加入队列
queue.append("Graham") # Graham加入队列
queue.popleft() # 队列第一个人(Eric)先离开
queue.popleft() # 队列第二个人(John)离开
print(queue) # 打印deque(['Micheal', 'Terry', 'Graham'])
2.集合
集合是一个无序不重复元素的集。可以用大括号({})创建集合。注意:如果要创建一个空集合,必须用 set() 而不是 {} ;后者创建一个空的Dict字典
# 集合
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket) # 打印 {'banana', 'pear', 'orange', 'apple'} 多次打印集合,可见元素是无序不重复的
print('orange' in basket) # 打印 True
print('pipapple' in basket) # 打印 False
# 两个集合操作
a_set = set('abracadabra')
b_set = set('alacazam')
print(a_set) # 打印 {'r', 'a', 'b', 'd', 'c'}
print(a_set - b_set) # 打印 {'r', 'b', 'd'}
print(a_set | b_set) # 打印 {'b', 'd', 'a', 'l', 'm', 'c', 'z', 'r'}
print(a_set & b_set) # 打印 {'a', 'c'}
print(a_set ^ b_set) # 打印 {'b', 'd', 'l', 'z', 'm', 'r'}
3.字典
序列是以连续的整数为索引,与此不同的是,字典以关键字为索引,关键字可以是任意不可变类型,通常用字符串或数值。可以把字典理解为无序的键=>值对集合,
使用大括号{}创建空字典。
telphone_list = {'Eric':'18312491000', 'John':'18312491001','Micheal':'18312491002'}
telphone_list['Terry'] = '18312491003'
print(telphone_list) # 打印
print(telphone_list['Eric']) # 打印
del telphone_list['Micheal']
print(telphone_list) # 打印
sorted(telphone_list.keys()) # 打印
print('John' in telphone_list) # 打印
可以使用构造函数dict()生成字典:
tel_phone_list2=dict(Eric=18312491000,John=18312491001,Micheal=18312491002)
print(tel_phone_list2) #打印 {'Micheal': 18312491002, 'John': 18312491001, 'Eric': 18312491000}
4.遍历
遍历序列:
tel_phone_name=['Eric', 'John', 'Miceal']
for index, value in enumerate(tel_phone_name):
print(index, value)
遍历字典:
tel_phone_list3 = {'Eric':183, 'John':184, 'Micheal':185}
for key, value in tel_phone_list3.items():
print(key, value) # 打印John 184 Micheal 185 Eirc 183
四、Python模块
模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。
import 语句
#Filename:helloWorld.py
# 定义一个函数打印Hello world
def print_func():
print('Hello world!')
# 定义函数打印I am programming
def print_func1():
print('I am programming')
文件test.py引入helloWorld模块,并调用print_func函数.
import helloWorld
helloWorld.print_func() # 打印Hello world
from ... import ...语句
Python的from语句让你从模块中导入一个指定的部分到当前命名空间中
from helloWorld import print_func
print_func()
# print_func1() # 报错,无法找到print_func1()函数
from ... import *语句
把一个模块的所有内容全都导入到当前的命名空间
from helloWorld import *
print_func()
print_func1()
__name__属性
每个模块都有一个__name__属性,当其值是'__main__'时,表明该模块自身在运行,否则是被引入
#Filename:helloWorld.py
def main():
print('We are in %s' % __name__)
if __name__ == '__main__':
main()
else:
print('程序外部执行')
Python标准模块
Python 本身带着一些标准的模块库,例如操作系统接口os、字符串正则表达式re、数学math、日期和时间datetime、time等
五、Python文件操作
file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数:

六、Python错误与异常处理
Python有两种错误很容易辨认:语法错误和异常。
语法错误:
Python 的语法错误或者称之为解析错误,是语法分析器指出对应的错误信息
for i in range(5)
print(i)
#语法错误:SyntaxError: invalid syntax
异常:
Python程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。
a = '8'
b = 2
print(a + b)
#异常:TypeError: Can't convert 'int' object to str implicitly
异常处理:
try:
a = '8'
b = 2
print(a + b)
except TypeError as e:
print(e)
except ValueError:
print('Could not convert data to an integer.')
except Exception as e:
print(e)
except:
print("Unexpected error:", sys.exc_info()[0])
raise # raise exception outside
else:
print('if no exception happen, do something')
finally:
print('executing finally clause')
except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组
except (RuntimeError, TypeError, NameError):
pass
预定义的清理行为:
with 语句就可以保证诸如文件之类的对象在使用完之后一定会正确的执行他的清理方法
with open("myfile.txt") as f:
for line in f:
print(line, end="")
#执行完毕后,文件是打开状态,及时执行过程中出现错误,文件对象f也会关闭。
Python基础【第二篇】的更多相关文章
- python基础-第二篇-基本数据类型
一.运算符 1.算数运算: 算数运算符相信大家都不陌生吧,尤其是加减乘除,好!那我就带着大家看看最后三个,这三个到底是干什么玩意的? %,取两数相除的余数,看图: **,x的多少次幂,看图: //,取 ...
- Python基础第二篇
一.三元运算 if True: name='a' else: name='b' #上面的代码用三元运算表示: name="a" if True else "b" ...
- Python人工智能第二篇:人脸检测和图像识别
Python人工智能第二篇:人脸检测和图像识别 人脸检测 详细内容请看技术文档:https://ai.baidu.com/docs#/Face-Python-SDK/top from aip impo ...
- python开发第二篇 :python基础
python基础a.Python基础 -基础1. 第一句python -python后缀名可以任意? -导入模块时如果不是.py文件,以后的文件后缀名是.py.2.两种 ...
- Python 基础学习篇
注:技术尚浅,时间匆忙,如有错误或者不当之处值得商榷的,请留言,吾必思而改之. 第一篇 :Python基础- 安装/变量/输入/及循环语句使用 第二篇: Python基础- 常用数据类型 第三篇: ...
- Python人工智能第二篇
Python人工智能之路 - 第二篇 : 现成的技术 预备资料: 1.FFmpeg: 链接:https://pan.baidu.com/s/1jonSAa_TG2XuaJEy3iTmHg 密码:w ...
- Python 学习 第二篇:数据类型(字符串)
字符串是一个字符的.有序的.不可变的序列,用于存储基于文本的信息.字符串所包含的字符存在从左至右的位置顺序,不可以在原处(in-place)修改.Python没有C语言的字符和字符串之分,只有字符串. ...
- 图解Python 【第二篇】:Python基础2
本节内容一览图 一.数据类型 1.数字 2 是一个整数的例子.长整数 不过是大一些的整数.3.23和52.3E-4是浮点数的例子.E标记表示10的幂.在这里,52.3E-4表示52.3 * 10-4. ...
- Python【基础第二篇】
元组 元组的元素不可修改 元组的元素的元素可修改 字典 Python主文件判断 name == main python中一切事物都是对象 对象是基于类创建的 对象具有的所有功能都是从类里找的 int内 ...
- 【python自动化第二篇:python入门】
内容概览 模块 python运行过程 基本数据类型(数字,字符串) 序列类型(列表,元组,字典) 模块使用 模块我们可以把它想象成导入到python以增强其功能的一种拓展.需要使用import来导入模 ...
随机推荐
- iOS开发基础-图片切换(1)
一.程序功能分析 1)点击左右箭头切换图片.序号.描述: 2)如果是首张图片,左边箭头失效: 3)如果是最后一张图片,右边箭头失效. 二.程序实现 定义确定图片位置.大小的常量: //ViewCont ...
- JVM-高效并发
Java内存模型与线程: Java内存模型的目的是定义程序中各个变量的访问规则,此处的变量包括实例字段.静态字段和构成数组对象的元素,但不包括局部变量和方法参数,因为后者是线程私有的. Java内存模 ...
- CentOS 7 rpm -i 时 警告warning: /var/tmp/rpm-tmp.z7O820: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY 解决方法
这是由于yum安装了旧版本的GPG keys造成的,解决办法就是 运行下面命令即可 # rpm --import /etc/pki/rpm-gpg/RPM* 查询已安装的rpm源 # rpm -qa ...
- Vue中Vuex的详解与使用(简洁易懂的入门小实例)
怎么安装 Vuex 我就不介绍了,官网上有 就是 npm install xxx 之类的.(其实就是懒~~~哈哈) 那么现在就开始正文部分了 众所周知 Vuex 是什么呢?是用来干嘛的呢? Vuex ...
- Linux(Ubuntu)使用日记------vim复制内容到其他应用
1.用vim 打开一个文件,然后执行命令:reg 查看是否有 + 或者 × 号 或者执行:version 命令 查看是否有+clipboard 2.如果存在跳过此步骤.如果不存在:在终端输入 sud ...
- kotlin电商学习记录,好久没来逛逛了
好久没来,一直做毕业设计,用kotlin写一个基于以图搜图的购物app,现在又赶上实习,内容多,时间少,不过前途光明并由贵人指点.加油 kotlin电商学习记录 技术选型 视图层 kotlin-and ...
- Vivado怎么使用In system debug(类似于chipscope的东西)
流程 1.建立好工程后,首先设置综合选项为保留设计的层次结构,方便追查信号.
- C++ bitset 常用函数及运算符
C++ bitset--高端压位卡常题必备STL 以下内容翻译自cplusplus.com,极大地锻炼了我的英语能力. bitset存储二进制数位. bitset就像一个bool类型的数组一样,但是有 ...
- Supercomputer 解题报告
Supercomputer 设\(f_i\)为前\(i\)个时间内必须的完成的任务个数,那么答案就是 \[ \max_{i}\lceil\frac{f_i}{i}\rceil \] 现在要支持区间加和 ...
- 3.24网络攻防选拔题部分write up
20175221 3.24网络攻防选拔题部分write up Q1:百度一下,你就知道 解压题目得到一个文件夹和一个网址 打开文件夹,有三张图片 用winhex和stegsolve查看三张图片,没有 ...