什么是python解释器?

  python代码在解释器中运行。解释器是代码与计算机硬件之间的软件逻辑层。

python的执行过程                                                                                                                                    

源代码(.py文件) --> 编译 --> 字节码(.pyc文件) --> python虚拟机解释字节码-->执行

python的主要实现方式:CPython、JPython(Java)、IronPython(Windows)

表达式建立并处理对象-->表达式构成语句-->语句组成模块-->模块组成程序

Python核心数据类型:                                                                                                                           
数字
字符串
列表
字典
元组
集合
文件
None、布尔型
函数、模块、类

一、数字                                                                                            

1.加减乘除

>>> 3+5
8
>>> 3-5
-2
>>> 3*5
15
>>> 5/3
1.6666666666666667
>>> 5.0/3
1.6666666666666667
>>> 5//3
1
>>> 5.0//3
1.0
>>> -5//3
-2
>>> -7//3 # 向下取舍
-3
>>> 23 % 10
3
>>> 3**2
9
# 进制转换
>>> oct(88),hex(88), bin(88)
('0o130', '0x58', '0b1011000')
>>> int('130',8),int('58',16),int('1011000',2)
(88, 88, 88)

2.内置函数

>>> int(3.14)
3
>>> float(3)
3.0

3.内置数学模块

>>> import math
>>> math.pi
3.141592653589793
>>>import random

二、字符串 

字符串的特点:
  1.字符串是单个字符的字符串序列,是有序的
  2.不可变性,不可以对原始的字符串进行改变。
字符串操作:
>>> s = 'hello world'
1.计算字符串的长度

>>> len(s)
11

2.索引

>>> s[0]
'h'
>>> s[6]
'w'
>>> s[-1]
'd'
>>> s[-2]
'l'

3.切片

>>> s[:]
'hello world'
>>> s[0:4] # [a,b)
'hell'
>>> s[2:4]
'll'
>>> s[-5:-1]
'worl'
>>> s[-5:]
'world'

4.字符串拼接

>>> s1 = 'hello '
>>> s2 = 'world'
>>> s1 + s2
'hello world'

5.字符串的方法
5.1.字符串大小写转换

>>> # 字符串首字符大写
... print("hello world".capitalize())
Hello worldprint("hello WORLD".swapcase())
>>> # 将字符串变为标题
... print("hello WORLD".title())
Hello World
>>> # 将字符串转为大写
... print("hello world".upper())
HELLO WORLD
>>> # 把字符串转为小写
... print("HELLO WORLD".lower())
hello world
>>> # 翻转字符串中的大小写
... print("hello WORLD".swapcase())
HELLO world

5.2.字符串分割

>>> # 以某个元素为分割点,将字符串分为3部分,从左往右找到的第一个元素为分割点
... print('helloworld'.partition('o'))
('hell', 'o', 'world')
>>> # 以某个元素为分割点,将字符串分为3部分,从右往左找到的第一个元素为分割点
... print('helloworld'.rpartition('o'))
('hellow', 'o', 'rld')
>>> # 替换原字符串中的元素,默认全部替换,可以指定替换几个(从左往右数)
... print("hello world".replace('o', 'a', 1))
hella world
>>> # 以某个元素为分割点,将字符串分割,从左往右分割n次
... print("hello world".split('o', 1))
['hell', ' world']
>>> # 以某个元素为分割点,将字符串分割,从右往左分割n次
... print("hello world".rsplit('o', 1))
['hello w', 'rld']
>>> # 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
... print('hello\nworld'.splitlines(True))
['hello\n', 'world']

5.3.字符串中查找元素

>>> # 统计某个字符串从索引n到y出现的次数,缺省为在整个字符串中查找
... print("hello world".count('o', 7, 10))
1
>>> # 在索引[n , y)之间查找元素,缺省为[:]返回元素的索引,如果没找到返回-1
... print("hello world".find('e'))
1
>>> print("hello world".find('o', 0, 2))
-1
>>> # 在[n, y)之间找元素的索引值,没找到会报错
... print("hello world".index('o'))
4
>>> print("hello world".index('e', 0, 5))
1

5.4.字符串判断

>>> # 判断字符串是否以某个元素开始
... print('helloworld'.startswith('h'))
True
>>> # 判断字符串的的从[n,y)的索引之间是否以某个字符结尾,返回值为布尔值
... print("hello world".endswith('e', 0, 2))
True
>>> # 判断是否是只有数字或字母
... print('abc123'.isalnum())
True
>>> # 判断是否只含有字母
... print('abc'.isalpha())
True
>>> # 判断字母是否都是小写
... print("Hello".islower())
False
>>> # 判断字符是不是空格
... print(" ".isspace())
True
>>> # 判断是不是字符串是不是标题(单词首字母是不是大写)
... print("Hello World".istitle())
True

5.5字符串格式化

>>> # 字符串居中,规定字符串的总长度,不够用其他字符补齐,默认是空格
... print("hello world".center(20, "#"))
####hello world#####
>>> # 把字符串中的\t替换为n个空格
... print("hello\tworld".expandtabs(tabsize=20))
hello world
>>> print('#'.join("hello world"))
h#e#l#l#o# #w#o#r#l#d
>>> # 规定输出字符的长度,并且左对齐,不足部分用指定字符补齐
... print("hello world".ljust(20, "#"))
hello world#########
>>> # 规定输出字符的长度,并且右对齐,不足部分用指定字符补齐
... print("hello world".rjust(20, "#"))
#########hello world
>>> # 去除字符串左边的的空格
... print(' hello'.lstrip())
hello
>>> # 去除字符串右边的的空格
... print('hello '.rstrip())
hello
>>> # 去除字符串两边的的空格
... print(' hello '.strip())
hello
>>> # 指定字符串的长度,不够在前面补0
... print("".zfill(5))
00123
>>> # 字符串的拼接
... print('hello ' + 'world')
hello world
>>> print('hello ' * 3)
hello hello hello

6字符串的赋值

>>> s = 'hello world'
>>> print(s)
hello world
>>> s = "hello world"
>>> print(s)
hello world
>>> s = """hello
... world
... !!!"""
>>> print(s)
hello
world
!!!
>>> s = 'hello\tworld'
>>> print(s)
hello world
>>> s = r'hello\tworld'
>>> print(s)
hello\tworld

三、列 表                                                                                              
列表的特点:
  1.任意类型的对象的位置相关的有序集合
  2.大小可变,可以修改
  3.支持任意嵌套
1.计算列表长度

>>> l = ['Tom','Bob',123,['boy','girl']]
>>> len(l)
4

2.索引

>>> l[-1]
['boy', 'girl']
>>> l[2]
123
>>> l[3][1]
'girl'

3.切片

>>> l[:]
['Tom', 'Bob', 123, ['boy', 'girl']]
>>> l[1:3]
['Bob', 123]
>>> l[-2:-1]
[123]
>>> l[-2:]
[123, ['boy', 'girl']]

4.列表的方法

4.1添加

#在尾部插入一项
>>> l = ['刘备','关羽','张飞']
>>> l.append('诸葛亮')
>>> l
['刘备', '关羽', '张飞', '诸葛亮']
#把一个列表添加到另一个列表末尾
>>> L1 = ['刘备','关羽','张飞']
>>> L2 = ['姜维','诸葛亮']
>>> L1.extend(L2)
>>> L1
['刘备', '关羽', '张飞', '姜维', '诸葛亮']
#在指定索引位置插入元素
>>> l
['刘备', '关羽', '张飞']
>>> l.insert(1,'马超')
>>> l
['刘备', '马超', '关羽', '张飞']

4.2删除

#删除所有元素
>>> l.clear()
>>> l
[]
#根据索引删除元素并打印删除的元素
>>> l
['刘备', '马超', '关羽', '张飞']
>>> l.pop() #无参数删除最后一个
'张飞'
>>> l
['刘备', '马超', '关羽']
>>> l.pop(1)
'马超'
>>> l
['刘备', '关羽']
#删除指定元素
>>> l = ['刘备','关羽','张飞']
>>> l.remove("关羽")
>>> l
['刘备', '张飞']

4.3拷贝

>>> l1 = l.copy()
>>> l1
['刘备', '关羽', '张飞']
4.4查找
#统计某个元素出现的次数
>>> l.count('关羽')
1
#查找[a,b)之间某元素的索引值
>>> L1
['刘备', '关羽', '张飞', '姜维', '诸葛亮']
>>> L1.index('关羽')
1
>>> L1.index('关羽',2,4)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: '关羽' is not in list

4.5排序

# 倒序
>>> l = ['b','B','a','h']
>>> l.reverse()
>>> l
['h', 'a', 'B', 'b']
# 升序
>>> l.sort()
>>> l
['B', 'a', 'b', 'h']
降序
>>> l.sort(reverse = True)
>>> l
['h', 'b', 'a', 'B']

5.列表解析

>>> row = [[1,2,3],[4,5,6],[7,8,9]]
>>> row
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> col = [i[1] for i in row ]
>>> col
[2, 5, 8]
>>> [i[1]+1 for i in row]
[3, 6, 9]
>>> [i[1] for i in row if i[1] % 2 == 0]
[2, 8]

四、字典                                                                                               

字典的特点:
  1.通过键来存储
  2.没有固定的从左到右的顺序
  3.可以改变
1.字典的创建

>>> d = {'name':'Tom','job':'IT'}
>>> d
{'job': 'IT', 'name': 'Tom'}
>>> d['age'] = 18
>>> d['sex'] = 'boy'
>>> d
{'job': 'IT', 'sex': 'boy', 'name': 'Tom', 'age': 18}

2.索引

>>> d = {'name':'Tom','job':'IT'}
>>> d
{'name': 'Tom', 'job': 'IT'}
>>> d['name']
'Tom'

3.键的排序

>>> d.keys()
dict_keys(['name', 'job'])
>>> list(d.keys())
['name', 'job']
>>> Ks = list(d.keys())
>>> Ks.sort()
>>> for k in Ks:
... print(k,'-->',d[k])
...
job --> IT
name --> Tom

4.判断

>>> d
{'name': 'Tom', 'job': 'IT'}
# 判断一个键是否存在
>>> 'name' in d
True

5.字典的方法

5.1删除

# 清空字典
>>> d = {'name': 'Tom', 'job': 'IT'}
>>> d.clear()
>>> d
{} #删除指定键
>>> d.pop('sex','not find')
'not find'
>>> d.pop('name')
'Tom'
#随机删除键值对,字典为空时报错
>>> d.popitem()
('job', 'IT')
>>> d.popitem()
('name', 'Tom')
>>>
>>> d.popitem()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'popitem(): dictionary is empty'

5.2拷贝

>>> d = {'name': 'Tom', 'job': 'IT'}
>>> D = d.copy()
>>> D
{'name': 'Tom', 'job': 'IT'}

5.3创建字典

>>> l
['name', 'age']
>>>
>>> d={}
>>> d.fromkeys(l,'abc')
{'age': 'abc', 'name': 'abc'}
# 如果键不存在添加一个,如果存在不做更改
>>> d.setdefault('sex','boy')
'boy'
>>> d
{'job': 'IT', 'sex': 'boy', 'name': 'Tom'}
>>> d.setdefault('sex','girl')
'boy'
>>> d
{'job': 'IT', 'sex': 'boy', 'name': 'Tom'}
#合并字典,把一个字典加到另一个字典
>>> d1 = {'name': 'Tom', 'job': 'IT'}
>>> d2 = {'sex':'boy'}
>>> d1.update(d2)
>>> d1
{'job': 'IT', 'sex': 'boy', 'name': 'Tom'}

5.4查找

# 根据键查找值
>>> d = {'name': 'Tom', 'job': 'IT'}
>>> d.get('name')
'Tom'
>>> d.get('sex','not find')
'not find'
5.5
>>> d.items()
dict_items([('job', 'IT'), ('name', 'Tom')])
>>> for k,v in d.items():
... print(k,v)
...
job IT
name Tom
>>> for k in d.items():
... print(k)
...
('job', 'IT')
('name', 'Tom')

五、元组                                                                                            

元组的特点:
  1.不可变性
  2.支持嵌套
>>> t = (1,2)
1.计算元组的长度

>>> len(t)
2

2.元组的方法:

>>> t.count(1)
1
>>> t.index(1)
0

python3学习笔记——数字、字符串、列表、字典、元组的更多相关文章

  1. Python3学习笔记(五):列表和元组

    一.列表 列表是可变的--可以改变列表的内容 list函数可以把各种类型的序列拆分列表 >>> list('Hello') ['H', 'e', 'l', 'l', 'o'] 二.列 ...

  2. day5_python学习笔记_chapter6_字符串列表元组

    1. 序列:seq[n], seq[x:y], seq * n序列重复n次,切片, 序列翻转 s=”abcde", s[::-1]="edcba" 内建函数:1. 类型转 ...

  3. 【python学习笔记】2.列表和元组

    # 第二章:列表和元组   序列中,每个元素都有个一个序号,序号以0开始,最后一个元素序号为-1,倒数第二个-2 序列类型包括,列表,元组,字符串,unicode字符串,buffer, xrange ...

  4. python3学习笔记四(列表1)

    参考http://www.runoob.com/python3/python3-list.html 序列 python包含6种内建的序列:列表,元组,字符串,Unicode字符串,buffer对象和x ...

  5. python之字符串,列表,字典,元组,集合内置方法总结

    目录 数字类型的内置方法 整型/浮点型 字符串类型的内置方法 列表的内置方法 字典的内置方法 元组的内置方法 集合类型内置方法 布尔类型 数据类型总结 数字类型的内置方法 整型/浮点型 加 + 减 - ...

  6. 《Python基础教程(第二版)》学习笔记 -> 第二章 列表和元组

    本章将引入一个新的概念:数据结构. 数据结构是通过某种方式阻止在一起的数据元素的集合,这些数据元素可以是数字或者字符,设置可以是其他数据结构. Python中,最基本的数据结构是序列(Sequence ...

  7. python学习笔记之一:列表与元组

    最近在看<python基础教程>(基于python2.x),下面总结一下第二章列表与元组的知识: 在这章中引入了数据结构的概念.数据结构是通过某种方式组织在一起的数据元素的集合.在pyth ...

  8. python3学习笔记之字符串

    字符串 1.一个个字符组成的有序的序列,是字符的集合: 2.使用单引号.双引号.三引号引住的字符序列 3.字符串是不可变对象 4.python3起,字符串就是Unicode类型: 字符串特殊举例: 不 ...

  9. python3学习笔记五(列表2)

    参考http://www.runoob.com/python3/python3-list.html 嵌套列表 a = ['a','b','c']b = [1,2,3]x = [a, b]print(x ...

随机推荐

  1. 2018-8-10-win10-uwp-线程池

    title author date CreateTime categories win10 uwp 线程池 lindexi 2018-08-10 19:16:50 +0800 2018-05-15 1 ...

  2. Sass-插值#{}

    使用 CSS 预处理器语言的一个主要原因是想使用 Sass 获得一个更好的结构体系.比如说你想写更干净的.高效的和面向对象的 CSS.Sass 中的插值(Interpolation)就是重要的一部分. ...

  3. Ubuntu菜单栏的位置可以调 到左侧 或者底部

    hyx@hyx:/mnt/hgfs/Linux$ gsettings set com.canonical.Unity.Launcher launcher-position Bottom

  4. Python3.5-20190503-廖老师-自我笔记

    列表和元组 list1 = [1,4,6,788,345,757]            tuple1 =      (345,234,567,878)         切记你的变量名不能和  hel ...

  5. 前端每日实战:65# 视频演示如何用纯 CSS 创作一个摇摇晃晃的 loader

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览.https://codepen.io/comehope/pen/oyJvpe 可交互视频 此视频是可以 ...

  6. Es学习第七课, term、terms、match等基本查询语法

    term.terms查询 term query会去倒排索引中寻找确切的term,它并不知道分词器的存在,这种查询适合keyword.numeric.date等明确值的 term:查询某个字段里含有某个 ...

  7. python 的文件编码处理

    python的文件编码处理有点粗鲁 1.不管文件原来是编码类型,读入后都转换成Unicode的编码 2.写入文件时,write函数把变量以读入文件的编码方式写入(根据open(path,mode,en ...

  8. 推荐Html Table和Markown互转的网站Table Convert Online

    网站名称:https://tableconvert.com/ 进入网站可以看到可以Table 转为Markdown.JSON.XML.SQL 多种格式 Table(4×5)定义Table的行数和列数: ...

  9. 安装并配置前端自动化工具-gulp

    由于现在前端自动化已经很有必要了,所以我今天死皮烂脸的找了2位前端大咖帮助我安装和配置gulp,讲真,这一步步弄下来直到安装配置成功,到现在还是迷迷糊糊,不过我还是把这些步骤给记录下来,以防下次不记得 ...

  10. linux0.11内核源码——进程各状态切换的跟踪

    准备工作 1.进程的状态有五种:新建(N),就绪或等待(J),睡眠或阻塞(W),运行(R),退出(E),其实还有个僵尸进程,这里先忽略 2.编写一个样本程序process.c,里面实现了一个函数 /* ...