Python核心编程2第三章课后练习

1. 标识符。为什么Python 中不需要变量名和变量类型声明?

Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程。每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

2.标识符。为什么Python 中不需要声明函数类型?

Python中使用def关键字定义函数,函数包括函数名称和参数,不需要定义返回类型,Python能返回任何类型函数没有定义返回类型,实际上每一个函数都有返回值,默认为None(python的空值).

3.标识符。为什么应当避免在变量名的开始和和结尾使用双下划线?

在python中有特殊意义,表示系统定义名字,防止系统脚本出错

4.python 一行书写多个语句方式?

同一行书写多个语句使用(;)号隔开

5.语句。在Python 中可以将一个语句分成多行书写吗?

多行书写,在该行语句排头加入反斜杠(\)即可

6 变量赋值

(a)赋值语句 x, y, z = 1, 2, 3 会在 x、y、z 中分别赋什么值?

x=1 y=2 z=3

(b)执行z, x, y = y, z, x 后,x、y、z 中分别含有什么值?

z=2 x=3 y=1

7.标识符。下面哪些是Python 合法的标识符?如果不是,请说明理由!在合法的标识符中,哪些是关键字?

合法的标识符:第一个字符必须是字母或下划线(_);剩下的字符可以是字母和数字或下划线

int32、printf、_print、this、self、__name__、bool、true、type、thisIsAVar、R_U_Ready、Int、True、do、access是Python合法的标识符。

print、if、是Python合法的标识符且是关键字。

4.0XL、$aving$、0X40L、big-daddy、2hot2touch、thisIsn‘tAVar、counter-1、-不是Python合法的标识符。

8.Python 代码。将脚本拷贝到您的文件系统中,然后修改它。可以添加注释,修改修改提示符(‘>’太单调了)等等,修改这些代码,使它看上去更舒服。

makeTextFile.py

#!/usr/bin/env python
#-*-coding:utf-8-*-
import os
ls =os.linesep
#导入os模块,获取当前系统行终止符
#取得fname变量的文件名
while True:
        fname =raw_input("Enter filename:")
        try:
                if os.path.exists(fname):
                        print "ERROR:‘%s‘ already exists" % fname
                else:
                        break
        except:
                print "*** file open error:",e
#输入文件名,如果存在提示存在,不存在结束循环进入下个程序
all =[]
print "\nEnter lines (‘.‘ by itself to quit).\n"
#提示使用.quit
while True:
        entry =raw_input(‘>‘)
        if entry==‘.‘:
                break
        else:
                all.append(entry)
#循环,如果有.结束循环,其他情况添加.
fobj =open(fname,‘w‘)
fobj.writelines([‘%s%s‘%(x,ls) for x in all])
#输入输入进去的每一行
fobj.close()
print ‘DONE!

readTextFile.py

#!/usr/bin/env python

#-*-coding:utf-8-*-

fname =raw_input("Enter filename:")

#提示输入需要阅读的文件名

print

try:

    fobj =open(fname,‘r‘)

    #在读的模式下打开文件

except IOError,e:

    print "*** file open error:",e

    #若出错提示错误

else:

    for eachLine in fobj:

    print eachLine,

    fobj.close()

#打印出每一行,并关闭

9.移植。 如果你在不同类型的计算机系统中分别安装有Python, 检查一下,os.linesep 的值是否有不同。 记下操作系统的类型以及 linesep 的值。

RedHat

WindowsXP

10.异常。使用类似readTextFile.py 中异常处理的方法取代 readTextFile.py makeTextFile.py 中 对 os.path.exists()的调用。反过来, 用os.path.exists()取代readTextFile.py 中的异常处理方法。

#!/usr/bin/env python
#-*-coding:utf-8-*-
‘readTextFile.py -- read and display text file‘
#fname变量获得文件名
import os
fname=raw_input(‘Enter filename:‘)
if os.path.exists(fname):
        #fobj对象读模式打开文件
        fobj=open(fname,‘r‘)
        for eachLine in fobj:
                print eachLine.strip()
        fobj.close()
else:
        print "No this file"

11.字符串格式化 不再抑制 readTextFile.py 中 print 语句生成的 NEWLINE 字符,修改你的代码,在显示一行之前删除每行末尾的空白。这样,你就可以移除 print 语句末尾的逗号了。提示: 使用字符串对象的 strip()方法 

#!/usr/bin/env python
#-*-coding:utf-8-*-
‘readTextFile.py -- read and display text file‘
#fname变量获得文件名
import os
fname=raw_input(‘Enter filename:‘)
if os.path.exists(fname):
        #fobj对象读模式打开文件
        fobj=open(fname,‘r‘)
        for eachLine in fobj:
                print eachLine.strip()
        fobj.close()
else:
        print "No this file"

12.合并源文件。将两段程序合并成一个,给它起一个你喜欢的名字,比方readNwriteTextFiles.py。让用户自己选择是创建还是显示一个文本文件。

#!/usr/bin/env python#-*-coding:utf-8-*-import os
ls =os.linesep
while True:
    print """
        1.readTextFile
        2.makeTextFile
        3.quit
        4.make the already Text File
    """
    choose =raw_input("please find the choose")
    if choose ==‘1‘:
        print "You choose 1"
        while True:
            fname =raw_input("enter the name:")
            if os.path.exists(fname):
                print "the name is already exists!"
            else:
                break
        all=[]
        print"\n Enter lines(‘.‘ by itself to quit)\n"
        while True:
            entry =raw_input(">")
            if entry ==‘.‘:
                break
            else:
                all.append(entry)
        fobj =open(fname,‘w‘)
        fobj.writelines([‘%s%s‘%(x,ls) for x in all])
        fobj.close()
        print "DONE!"
    if choose==‘2‘:
        print ‘You choose 2‘
        fname =raw_input("please choose the file:")
        fobj =open(fname,‘r‘)
        for eachLine in fobj:
            print eachLine,
            fobj.close
    if choose==‘3‘:
        break
    if choose==‘4‘:
        fname =raw_input("please choose the file:")
        all =[]
        while True:
            entry =raw_input(">")
            if entry==‘.‘:
                break
            else:
                all.append(entry)
        fobj =open(fname,‘w‘)
        fobj.writelines([‘%s%s‘%(x,ls) for x in all])
        fobj.close()
        print "DONE!"    
时间: 2024-07-30 18:58:34

Python核心编程2第三章课后练习的相关文章

Python核心编程2第四章课后练习

4-1 Python 对象.与所有 Python 对象有关的三个属性是什么?请简单的描述一下. 身份:对象的唯一标识 类型 :对象的类型决定了该对象可以保存什么类型的值 值:对象表示的数据项 4-2 类型.不可更改(immutable)指的是什么?Python 的哪些类型是可更改的(mutable),哪些不是? 不可更改(immutable)指的是不允许对象的值被更改. 可变类型:列表.字典. 不可变类型:数字.字符串.元组. 可从id()判断是否可更改 4-3 类型.哪些 Python 类型是

Python核心编程_第五章课后习题

习题5_2.py #!/usr/bin/python def MyMultiple(x, y):         return x * y      for i in range(1, 10):      for j in range(1, i + 1):          print '%d * %d = %2d' % (j, i, MyMultiple(i, j)),                          if j == i:                     print

Python核心编程2第六章课后练习

6-1 字符串 .string 模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串是否是另一个大字符串的一部分? #!/usr/bin/env python def contain(str1,str2): if str1 in str2: print "str1 contains str2" else: print "str1 not contains str2" if __name__=="__main__": str1=raw_in

Python核心编程2第五章课后练习

本人自己做的练习,借鉴过网上资料,准确性不保证,欢迎各位前辈指教:-D. 5-1 整型,讲讲python普通整型与长整型区别 python整形一共有三种:布尔型,长整型和标准整型.普通整型与长整型的区别在于标准整形的取值范围是-2^31到2^31-1,长整型所能表达的数值与机器自身的内存有关. 5-2 定义一个函数,用于两个数相乘,并调用这个函数 #!/usr/bin/env python def Multiply(number1,number2): return number1*number2

《Python核心编程》 第五章 数字 - 课后习题

课后习题  5-1 整形. 讲讲 Python 普通整型和长整型的区别. 答:普通整型是绝大多数现代系统都能识别的. Python的长整型类型能表达的数值仅仅与你机器支持的(虚拟)内存大小有关. 5-2 运算符 (a) 写一个函数,计算并返回两个数的乘积 (b) 写一段代码调用这个函数,并显示它的结果 答: def pro(a,b): p = a*b return p a = int(raw_input("a=")) b = int(raw_input("b="))

《Python核心编程》 第七章 映射和集合类型 - 习题

课后习题 7–1. 字典方法.哪个字典方法可以用来把两个字典合并到一起? 答: dict1 = {'1' :' python' } dict2 = {'2' :"hello" } dict1.update(dict2) dictAll = dict1 print dictAll Result: {'1': ' python', '2': 'hello'} 7–2. 字典的键.我们知道字典的值可以是任意的 Python 对象,那字典的键又如何呢?请试 着将除数字和字符串以外的其他不同类型

【python核心编程】第六章 序列

1.操作符 (1)成员关系操作符:in .not in >>> string ='abcdefg'>>> 'a' in stringTrue>>> 'h' in stringFalse>>> 'h' not in stringTrue *补充知识*:string模块 >>> import string>>> string.uppercase        #大写字母'ABCDEFGHIJKLMNOP

读书笔记----《windows核心编程》第三章 内核对象1(句柄与安全性)

最近一直没有更新博客,因为一直在想一个问题,内核对象这一章内容很多很重要,自己没有掌握好也没有把握写好这一章,最后还是决定能写多少写多少,一面写一面学,后续学到新的再更新吧; <windows核心编程>提了几种内核对象: 访问令牌对象:与windows的安全性有关,目前不是很懂,了解后再写; 事件对象: Event对象,可跨进程同步; 由CreateEvent创建; 文件对象: File对象,比较常见; 由CreateFile创建; 文件映射对象: 通过文件映射可以方便的操作文件(如同文件数据

Pytho核心编程笔记——第三章

第三章 Python基础 1.在Python中,赋值并不是直接将值赋给一个变量,对象是通过引用传递的,赋值时,是将该对象的引用(不是值)赋值给变量: i = 3,当值为3的对象创建后,会将该对象的引用赋值给变量 2.Python的赋值语句并不会返回值,所以a = (x = x +1)在Python中会报错 3.多元赋值时,等号两边的对象都是元组: a,b,c = 1,"str",23 4.Python 不支持重载 原文地址:https://www.cnblogs.com/hhj-stu