Python学习笔记(基础知识篇)

本文详细介绍了Python的基础知识,包括执行方式、PyCodeObject和.pyc文件的理解、Python语法规范,以及数据类型(如变量、字符串、列表、元组、字典和集合)的使用。此外,还涵盖了标识符、运算符、条件和循环语句、函数等核心概念,是学习Python编程的良好参考资料。
摘要由CSDN通过智能技术生成

本文基于Python3 编写

Python的执行方式

Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET
是一致的。

然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。

基于C的Python编译出的字节码文件,通常是.pyc格式。除此之外,Python还可以以交互模式运行,比如主流操作系统Unix/Linux、Mac、Windows都可以直接在命令模式下直接运行Python交互环境。直接下达操作指令即可实现交互操作。

Python的PyCodeObject 和 pyc 文件认识

PyCodeObject :是 Python 编译器真正编译成的结果。

当 Python 程序运行时,编译的结果则是保存在内存中的 PyCodeObject 中,当 Python 程序运行结束时,Python 解释器则将 PyCodeObject 写回到 pyc 文件中。

当 Python 程序第二次运行时,首先程序会在硬盘中寻找 pyc 文件,如果找到,则直接载入,否则就重复上面的过程。

可以说 pyc 文件其实是 PyCodeObject 的一种持久化保存方式。

Python语法规范

Python开发者有意让违反了缩进规则的程序不能通过编译,以此来强制程序员养成良好的编程习惯。并且Python语言利用缩进表示语句块的开始和退出(Off-side规则),而非使用花括号或者某种关键字。增加缩进表示语句块的开始,而减少缩进则表示语句块的退出。缩进成为了语法的一部分。例如if语句:python3

if age<21:
    print("你不能买酒。")
    print("不过你能买口香糖。")
print("这句话在if语句块的外面。")

根据PEP(Python增强建议书)的规定,必须使用4个空格来表示每级缩进(不清楚4个空格的规定如何,在实际编写中可以自定义空格数,但是要满足每级缩进间空格数相等)。使用Tab字符和其它数目的空格虽然都可以编译通过,但不符合编码规范。支持Tab字符和其它数目的空格仅仅是为兼容很旧的的Python程序和某些有问题的编辑程序。

一、数据类型

1.变量

Python 中的变量赋值不需要类型声明。

每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。

每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

等号(=)用来给变量赋值。

等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。

判断数据类型:type(str)
字符串类型数据转为整数型:int(str)
counter = 100 # 赋值整型变量
miles = 1000.0 # 浮点型
name = "John" # 字符串
 
print(counter)
print(miles)
print(name)

运行实例 »
以上实例中,100,1000.0和"John"分别赋值给counter,miles,name变量。

执行以上程序会输出如下结果:

100
1000.0
John

大家都具有一定的编程基础,不过多说明。

2.字符串
基本介绍

单引号 ’ ‘或者双引号 " " 都可以,再或者 ‘’’ ‘’’ 三个引号,其中三个引号被用于过于长段的文字或者是说明,只要是三引号不完你就可以随意换行写下文字。

①字符串直接能相加,如:

str1 = 'hello'
str2 = 'world'
print(str1 + ' ' +str2)

运行结果:

hello world

②字符串相乘,如:

string = 'bang!'
total = string * 3 
print(total)

结果:

bang!bang!bang!
字符串的分片与索引

字符串可以通过 string[x] 的方式进行索引、分片。

字符串的分片实际可以看作是从字符串中找出来你要截取的东西,复制出来一小段你要的长度,存储在另一个地方,而不会对字符串这个源文件改动。分片获得的每个字符串可以看作是原字符串的一个副本。

先看下面这段代码:

name = 'My name is Mike'
print(name[0])
'M'
print(name[-4])
'M'
print(name[11:14]) # from 11th to 14th, 14th one is excluded
'Mik'
print(name[11:15]) # from 11th to 15th, 15th one is excluded
'Mike'
print(name[5:])
'me is Mike'
print(name[:5])
'My na'

:两边分别代表着字符串的分割从哪里开始,并到哪里结束。

以name[11:14]为例,截取的编号从第11个字符开始,到位置为14但不包含第14个字符结束。而像name[5:]这样的写法代表着从编号为5的字符到结束的字符串分片。相反,name[:5]则代表着从编号为0的字符开始到编号为5但包含第5个字符分片。可能容易搞混,可以想象成第一种是从5到最后面,程序员懒得数有多少个所以就省略地写,第二种是从最前面到5,同样懒得写0,所以就写成了[:5]。

字符串的方法

replace 方法:第一个参数表示被替代部分,第二个参数表示替代成怎样的字符串。

字符串填空,如:

city = input("write the name of city:"")
url = "://apistore.baidu/mri.../weather?citypiny={}.format(city)
3.列表

List(列表) 是 Python 中使用最频繁的数据类型。
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。

列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。

列表用 [ ] 标识,是 python 最通用的复合数据类型。

列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。

list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
 
print(list)               #输出完整列表
print(list[0])            # 输出列表的第一个元素
print(list[1:3])          # 输出第二个至第三个元素 
print(list[2:])           # 输出从第三个开始至列表末尾的所有元素
print(tinylist * 2)       # 输出列表两次
print(list + tinylist)    # 打印组合的列表

输出结果:

['runoob', 786, 2.23, 'john', 70.2]
runoob
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['runoob', 786, 2.23, 'john', 70.2, 123, 'john']
更新列表

你可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,如下所示:

list = []                         # 空列表
list.append('Google')   # 使用 append() 添加元素
list.append('Runoob')
print(list)

输出结果:

['Google', 'Runoob']
删除列表元素

可以使用 del 语句来删除列表的元素,如下实例:

list1 = ['physics', 'chemistry', 1997, 2000]
 
print(list1)
del list1[2]
print("After deleting value at index 2 : ")
print(list1)

输出结果:

['physics', 'chemistry', 1997, 2000]
After deleting value at index 2 :
['physics', 'chemistry', 2000]
Python列表脚本操作符

列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

Python 表达式 结果 描述
len([1, 2, 3]) 3 长度
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合
[‘Hi!’] * 4 [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] 重复
3 in [1, 2, 3] True 元素是否存在于列表中
for x in [1, 2, 3]: print(x), 1 2 3 迭代
Python列表函数&方法

Python包含以下函数:

序号 函数 功能
1 cmp(list1, list2) 比较两个列表的元素
2 len(list) 列表元素个数
3 max(list) 返回列表元素最大值
4 min(list) 返回列表元素最小值
5 list(seq) 将元组转换为列表

Python包含以下方法:

序号 方法 功能
1 list.append(obj) 在列表末
  • 28
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值