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来导入模 ...
随机推荐
- 占位符的使用和PreparedStatement接口使用:
一.PreparedStatement 接口的使用 首先占位符我们可以使用 Statement 接口来操作数据, 但是这个接口存在两个问题: 1.使用 Statement 接口对象发送的 sql ...
- Neutron flat network 学习
flat network 是不带 tag 的网络,要求宿主机的物理网卡直接与 linux bridge 连接,这意味着: 每个 flat network 都会独占一个物理网卡. 在 ML2 配置中 ...
- Qt中的QWebView
一.Webkit了解 Webkit是一个开源的浏览器引擎,chrome也使用了作为核心.Qt中对Webkit做了封装,主要有以下几个类: QWebView :最常用的类,作为一个窗体控件 QWeb ...
- Django缓存机制--rest_framework中节流源码使用的就是django提供的缓存api
一.配置缓存 https://www.jb51.net/article/124434.htm 二.缓存全站.页面.局部 三.自我控制的简单缓存API API 接口为:django.core.c ...
- mybatis 配置文件全解
目录 properties settings typeAliases mappers properties mybatis配置文件中,可以像代码一样定义变量,然后在配置文件的其他地方使用,比如数据库连 ...
- Java的selenium代码随笔(4)
//高亮操作元素public void highlight(WebElement webElement) {JavascriptExecutor javascriptExecutor = (Javas ...
- hMailServer相关视频教程
来源:https://www.hmailserver.org/viewtopic.php?f=4&t=34
- LODOP设置打印设计返回JS代码是变量
前面有一篇博文是介绍JS模版的加载和赋值,赋值有两种,详细可查看本博客的那篇博文:LodopJS代码模版的加载和赋值简单来说,就是打印项的值是变量,在添加打印项前进行赋值:打印项的值是字符串,给打印项 ...
- ListView与RecyclerView对比浅析——缓存机制
https://www.jianshu.com/p/193fb966e954 一,背景 RecyclerView是谷歌官方出的一个用于大量数据展示的新控件,可以用来代替传统的ListView,更加强大 ...
- 11.4 Flask session,闪现
session 加密后放在用户浏览器的 cookie 中 于django 的自带session 不同,flask 的 session 需要导入 from flask import session 添加 ...