什么是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. redis限流器的设计

    1.定义注解 import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java. ...

  2. 一、UC中文调试

    一.只支持UC浏览器,版本号6.2.3831.3,复制resources.pak到UC安装目录下,覆盖同名文件即可

  3. Minor GC与Full GC分别在什么时候发生?

    Minor GC 当Eden区没有足够空间进行分配时,虚拟机就会进行一次Minor GC 新生代的垃圾收集动作,采用的是复制算法 对于较大的对象,在Minor GC的时候可以直接进入老年代 Full ...

  4. hdu1210Eddy's 洗牌问题

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1210 Eddy是个ACMer,他不仅喜欢做ACM题,而且对于纸牌也有一定的研究,他在无聊时研究发现,如 ...

  5. Python3.5-20190529-自动登录百度

  6. 微软Cortana可以帮助任何人解锁您的Windows 10系统

    Cortana是微软在每个版本的Windows10中都内置的基于人工智能的智能助手,可以帮助攻击者解锁你的系统密码. 在周二发布的最新补丁中,微软推出了一项重要更新,以解决Cortana中容易被利用的 ...

  7. mysql创建数据库用户

    连接mysql cmd--> mysql -hlocalhost -uroot -pmypassword 退出mysql mysql> quit 也可用exit或者 \q ======== ...

  8. sql 中 exists用法

    SQL中EXISTS的用法   比如在Northwind数据库中有一个查询为SELECT c.CustomerId,CompanyName FROM Customers cWHERE EXISTS(S ...

  9. 【优化】Mysql字段尽可能用NOT NULL

    下面咱们要聊的是 MySQL 里的 null,在大量的 MySQL 优化文章和书籍里都提到了字段尽可能用NOT NULL,而不是NULL,除非特殊情况.但却都只给结论不说明原因,犹如鸡汤不给勺子一样, ...

  10. 项目中有 xxxx 不能被json序列化

    遇到这类问题 ,首先断点调试,看看要序列化的值 是一个什么类型的值 查看值得数据类型 在将值转化成可以被json序列化的对象 此时即可解决问题 如遇到  requests.post() 朝一个url发 ...