Python自学入门 下

打开一个文件的命令很简单:


file('
文件名')


这里的文件名可以用文件的完整路径,也可以是相对路径。因为我们把要读取的文件和代码放在了同一个文件夹下,所以只需要写它的文件名就够了。


f = file('data.txt')


但这一步只是打开了一个文件,并没有得到其中的内容。变量f保存了这个文件,还需要去读取它的内容。你可以通过read()函数把文件内所有内容读进一个字符串中。


data = f.read()



做完对文件的操作之后,记得用close()关闭文件,释放资源。

读取文件内容的方法还有
readline() #
读取一行内容
readlines() #
把内容按行读取至一个list

python默认是以只读模式打开文件。如果想要写入内容,在打开文件的时候需要指定打开模式为写入:


f =file('output.txt', 'w')


'w'
就是writing,以这种模式打开文件,原来文件中的内容会被你新写入的内容覆盖掉,如果文件不存在,会自动创建文件。
不加参数时,file为你默认为'r'reading,只读模式,文件必须存在,否则引发异常。
另外还有一种模式是'a'appending。它也是一种写入模式,但你写入的内容不会覆盖之前的内容,而是添加到文件中。


打开文件还有一种方法,就是open(),用法和file()是一致的。


写入内容的方法同样简单:


f.write('a string you want to write')


write的参数可以是一个字符串,或者一个字符串变量。


示例程序:


data = 'I will be in a file.\nSo cool!'
out = open('output.txt', 'w')
out.write(data)
out.close()

while 循环 在条件不满足时 结束,
for
循环 遍历完序列后 结束。

如果在循环条件仍然满足或序列没有遍历完的时候,想要强行跳出循环,就需要用到break语句。

while True:
a = raw_input()
if a == 'EOF':
break

break是彻底地跳出循环,而continue只是略过本次循环的余下内容,直接进入下一次循环。

注意:无论是continue还是break,其改变的仅仅是当前所处的最内层循环的运行,如果外层还有循环,并不会因此略过或跳出。

python中,可以使用try...except语句来处理异常。做法是,把可能引发异常的语句放在try-块中,把处理异常的语句放在except-块中。字典这种数据结构有点像我们平常用的通讯录,有一个名字和这个名字对应的信息。在字典中,名字叫做“键”,对应的内容信息叫做“值”。字典就是一个键/值对的集合。


它的基本格式是(key是键,alue是值):


d = {key1 : value1, key2 : value2 }





关于字典的键要注意的是:
1.键必须是唯一的;
2.
键只能是简单对象,比如字符串、整数、浮点数、bool值。


list就不能作为键,但是可以作为值。
python字典中的键/值对没有顺序,我们无法用索引访问字典中的某一项,而是要用键来访问。


注意,如果你的键是字符串,通过键访问的时候就需要加引号,如果是数字作为键则不用。

字典也可以通过for...in遍历:


for name inscore:

增加一项字典项的方法是,给一个新键赋值:


score['
慕容复'] = 88


模块可以理解为是一个包含了函数和变量的py文件。在你的程序中引入了某个模块,就可以使用其中的函数和变量。

想知道random有哪些函数和变量,可以用dir()方法:


dir(random)

如果你只是用到random中的某一个函数或变量,也可以通过from...import...指明:


from math import pi
print pi



from math import pi as math_pi
print math_pi

如果很多时候,我们都是用world来调用这个函数,少数情况才会去改参数。那么,我们就可以给这个函数一个默认参数:


def hello(name = 'world'):
print 'hello ' + name


当你没有提供参数值时,这个参数就会使用默认值;如果你提供了,就用你给的。


这样,在默认情况下,你只要调用
hello()



意,当函数有多个参数时,如果你想给部分参数提供默认参数,那么这些参数必须在参数的末尾。比如:
def func(a, b=5)
是正确的


def func(a=5, b)
就会出错

python是一种高度面向对象的语言,它其中的所有东西其实都是对象。所以我们之前也一直在使用着对象。看如下的例子

1.  s = 'how are you'

2.  #s被赋值后就是一个字符串类型的对象

3.  l = s.split()

4.  #split是字符串的方法,这个方法返回一个list类型的对象

5.  #l是一个list类型的对象

通过dir()方法可以查看一个类/变量的所有属性:

1.  dir(s)

2.  dir(list)

关键字class加上类名用来创建一个类。之后缩进的代码块是这个类的内部。在这里,我们用pass语句,表示一个空的代码块。

类名加圆括号()的形式可以创建一个类的实例,也就是被称作对象的东西。我们把这个对象赋值给变量mc。于是,mc现在就是一个MyClass类的对象。

看一下输出结果:

1.  <__main__.MyClass instance at0x7fd1c8d01200>

2.   

这个意思就是说,mc是__main__模块中MyClass来的一个实例(instance),后面的一串十六进制的数字是这个对象的内存地址。

调用类变量的方法是“对象.变量名”。你可以得到它的值,也可以改变它的值。

注意到,类方法和我们之前定义的函数区别在于,第一个参数必须为self。而在调用类方法的时候,通过“对象.方法名()”格式进行调用,而不需要额外提供self这个参数的值。self在类方法中的值,就是你调用的这个对象本身。







资源下载链接为: https://pan.quark.cn/s/abbae039bf2a 在计算机科学领域,编译原理是研究如何将编程语言转化为机器可执行代码的理论基础。其中,三地址代码(Three-Address Code,TAC)作为一种中间表示形式,在编译器设计中经常被使用,尤其是在生成目标代码的阶段。本文将深入探讨三地址代码的概念、生成器的工作原理及其在编译过程中的作用。 三地址代码是一种简单的低级抽象语法树(AST)表示,每条指令涉及三个操作数,通常包括两个源操作数和一个目的操作数。这种格式简化了代码优化和目标代码生成的复杂性。例如,一个简单的算术表达式“x = y + z”在三地址代码中可能表示为: 在这个例子中,“t1”是一个临时变量,存储了“y + z”的结果,然后这个结果被赋值给“x”。 生成三地址代码的过程通常发生在编译器的中间阶段,即语法分析之后,语义分析之前。这个阶段称为“代码生成”或“中间代码生成”。编译器通过词法分析器处理源代码,将其转化为标记流;接着,语法分析器根据上下文无关文法将标记流解析成抽象语法树。三地址代码生成器就是在这个阶段介入,它遍历AST,为每个节点生成对应的三地址指令。 在Turbo C3.0这样的编译器环境下,开发者可以实现自己的三地址代码生成器。虽然Turbo C3.0是一款较老的编译器,但其C语言编译器设计原理依然适用于现代编译器开发。开发过程中,我们需要考虑如下关键点: 符号表管理:符号表记录了程序中所有标识符的类型、作用域和关联地址,对于生成三地址代码至关重要,因为它提供了关于操作数的类型信息。 数据类型转换:编译器必须处理不同数据类型的运算,确保它们在三地址代码中正确表示。例如,整型与浮点型之间的转换需要特别处理。
### 2024 Python 自学入门教程和资源 为了帮助有兴趣学习Python的人士,《2024年最新Python全套学习资料》旨在提供全面的支持,使初学者能够顺利掌握这门编程语言的基础知识以及应用技能[^1]。 #### 学习路径规划 一份精心设计的学习路线图可以帮助自学者有条不紊地推进自己的学习进度。针对不同兴趣领域和技术层次的需求,提供了涵盖Web开发、数据分析、人工智能等多个方面的具体指南[^2]。 #### 基础概念介绍 对于刚开始接触编程的新手而言,理解变量、数据类型、控制结构等基本概念至关重要。通过一系列由浅入深的教学视频和文档,可以逐步建立起坚实的理论基础。 #### 实践项目引导 除了理论讲解外,实际操作同样不可或缺。推荐参与一些小型项目的构建练习,比如创建个人博客网站或是简单的游戏程序,以此来巩固所学到的知识点,并提高解决问题的能力。 #### 工具与环境搭建 安装合适的集成开发环境(IDE),如PyCharm或VSCode,并熟悉Git版本控制系统,这些都是成为合格程序员必不可少的一部分。此外,了解如何利用虚拟环境管理依赖关系也非常重要。 #### 高级话题探索 当掌握了基础知识后,还可以进一步深入研究诸如异步I/O、并发处理之类的高级特性;或者是专注于特定的应用场景,像网络爬虫技术——它涉及到网页解析、请求发送及响应接收等一系列流程[^3]。 ```python import requests from bs4 import BeautifulSoup def fetch_webpage(url): response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') return soup.title.string print(fetch_webpage('https://example.com')) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值