第二章答案

来源:互联网 发布:sql在excel中的应用 编辑:程序博客网 时间:2024/04/30 03:30

2-2.程序输出。阅读下面的Python脚本。
#!/usr/bin/env python
1 + 2 * 4
(a)你认为这段脚本是用来做什么的?
(b)你认为这段脚本会输出什么?
(c)输入以上代码,并保存为脚本,然后运行它,它所做的与你的预期一样吗?为什么一样/不一样?
(d)这段代码单独执行和在交互解释器中执行有何不同?试一下,然后写出结果。
(e)如何改进这个脚本,以便它能和你想象的一样工作?

答:(a)这段脚本是用来计算表达式的值
(b)脚本会输出9
(c)保存为脚本,运行后没有输出。和自己预期不一样。没有考虑到脚本输出与交互式解释器输出的区别
(d)在解释器中输出9
(e)利用print语句

#!/usr/bin/env pythonprint 1+2*4

2-3.数值和操作符。启动交互解释器,使用Python对两个数值(任意类型)进行加、减、乘、除运算。然后使用取余操作符来得到两个数相除的余数,最后使用乘方操作符求A数的B次方。
答:
>>> a=60
>>> b=2.0
>>> a+b
62.0
>>> a-b
58.0
>>> a*b
120.0
>>> a/b
30.0
>>> a%b
0.0
>>> a**b
3600.0
>>> 

2-4. 使用raw_input()函数得到用户输入。
(a)创建一段脚本使用raw_input()内建函数从用户输入得到一个字符串,然后显示这个用户刚刚键入的字符串。
(b)添加一段类似的代码,不过这次输入的是数值。将输入数据转换为一个数值对象,(使用int()或其他数值转换函数)并将这个值显示给用户看(注意,如果你用的是早于1.5的版本,你需要使用string.ato*()函数执行这种转换)。
答:

复制代码
1 #!/usr/bin/python2 3 '''using raw_input'''4 5 string=raw_input("Please input a string:")6 print "You input:%s" %string7 8 digit=int(raw_input("Please input a num:"))9 print "you input:%d"%digit
复制代码

 

2-5. 循环和数字。分别使用while和for创建一个循环。
(a)写一个while循环,输出整型为0~10(要确保是0~10,而不是0~9或1~10)。
(b)做同(a)一样的事,不过这次使用range()内建函数。

答:

复制代码
 1 #!/usr/bin/python 2  3 '''practise for loop and digits''' 4  5 num=0 6  7 #while loop 8  9 while num<=10:10         print num11         num=num+112 13 14 #for loop15 16 for i in range(11):17         print i
复制代码

 

2-6.条件判断。判断一个数是正数还是负数,或者是0。开始先用固定的数值,然后修改你的代码支持用户输入数值再进行判断。

答:

复制代码
 1 #!/usr/bin/python 2  3 '''receive a num and judge it''' 4  5 num=float(raw_input("Please input a num:")) 6 if num>0: 7         print "%f is lager than 0"%num 8 elif num==0: 9         print "%f is equal to 0"%num10 else:11         print "%f is litter than 0"%num
复制代码

 

2-7.循环和字串。从用户那里接受一个字符串输入,然后逐字符显示该字符串。先用while循环实现,然后再用for循环实现

答:

复制代码
 1 #!/usr/bin/python 2 ''' print the string.''' 3  4 string=raw_input("Please input a string:") 5  6 #while loop 7 n=0 8 while n<len(string): 9         print string[n]10         n=n+111 12 13 #for loop14 for s in string:15         print s
复制代码

2-8.循环和操作符。创建一个包含五个固定数值的列表或元组,输出他们的和。然后修改你的代码为接受用户输入数值。分别使用while和for循环实现。

答:

复制代码
 1 #!/usr/bin/python 2 '''receive 5 num and sum it''' 3  4 #while realizing 5  6 num=0 7 li=[] 8 sum=0 9 while num<5:10         a=float(raw_input("Please enter a num:"))11         li.append(a)12         sum=sum+a13         num=num+114 15 print li16 print "The sum of 5 num is %f"%sum17 18 19 #for loop relizing20 21 22 li=[]23 sum=024 for i in range (5):25         a=float(raw_input("Please enter a num:"))26         li.append(a)27         sum=sum+a28 29 print li30 print "The sum of 5 num is %f"%sum
2–10.
带循环和条件判断的用户输入 使用 raw_input()函数来提示用户输入一个 1 和 100 之间的
数,如果用户输入的数满足这个条件,显示成功并退出。否则显示一个错误信息然后再次提示
用户输入数值,直到满足条件为止。
#!/usr/bin/env ptyon
#conding:utf-8
while True:
    num = int(raw_input("please input a integer number 1-100: ")) #int 必须的,如若没有,则始终到else语句
    if 1 <= num and num <= 100:  # 1<=num<=100 在Python 中成立
       print num
       break
    else:
       print "wrong number! retry!"
       continue
2–11.
带文本菜单的程序 写一个带文本菜单的程序,菜单项如下(1)取五个数的和 (2) 取五个数的平均值....(X)退出。由用户做一个选择,然后执行相应的功能。当用户选择退出时程序结束。这个程序的有用之处在于用户在功能之间切换不需要一遍一遍的重新启动你的脚本。(这对开发人员测试自己的程序也会大有用处)
 1 #!/usr/bin/env ptyon          
  2 #conding:utf-8
  3 
  4 def Menu():
  5     print "==========================="
  6     print "[1] get sum from 5 numbers"
  7     print "[2] get average from 5 numbers"
  8     print "[X] Exit"
  9 
 10 def Sum():
 11     list = [1,2,3,4,5]
 12     sum=0
 13     for i in xrange(len(list)):
 14         list[i]=raw_input('Input a %d Number: ' % (i+1))
 15         sum+=int(list[i])
 16         i+=1
 17     return sum
 18 
 19 def Aver():
 20     sum = Sum()
 21     return sum/5
 22 
 23 while True:
 24     Menu()
 25     choice = raw_input('please choice one: ') #python的多态运算有时候也带来麻烦,所以下面的 判断选项中须带引号。
 26     if choice == '1': #字符串类型判断
 27        SUM = Sum()
 28        print "sum is :%d" % SUM    
 29        print 
 30        continue
 31     elif choice == '2':#字符串类型判断
 32        Average = Aver()
 33        print "Average is : %f" % Average # 多态%f
 34        continue
 35     elif choice == 'X':#字符串类型判断
 36        break
 37     else:
 38        print "wrong choose,please again!"
 39        continue 
2–12. dir()内建函数
(a) 启动 Python 交互式解释器, 通过直接键入 dir()回车以执行 dir()内建函数。你看到
什么? 显示你看到的每一个列表元素的值,记下实际值和你想像的值
(b) 你会问, dir()函数是干什么的?我们已经知道在 dir 后边加上一对括号可以执行 dir()
内建函数, 如果不加括号会如何? 试一试。 解释器返回给你什么信息? 你认为这个信息表
示什么意思 ?
(c) type() 内建函数接收任意的 Python 对象做为参数并返回他们的类型。 在解释器中键
入 type(dir), 看看你得到的是什么?
(d) 本练习的最后一部分, 我们来瞧一瞧 Python 的文档字符串。 通过 dir.__doc__ 可
以访问 dir()内建函数的文档字符串。print dir.__doc__可以显示这个字符串的内容。 许多内建
函数,方法,模块及模块属性都有相应的文档字符串。我们希望你在你的代码中也要书写文档
字符串, 它会对使用这些代码的人提供及时方便的帮助。
2–13. 利用 dir() 找出 sys 模块中更多的东西。
(a) 启动 Python 交互解释器,执行 dir()函数,然后键入 import sys 以导入 sys 模块。
再次执行 dir()函数以确认 sys 模块被正确的导入。 然后执行 dir(sys) , 你就可以看到 sys
模块的所有属性了。
(b) 显示 sys 模块的版本号属性及平台变量。记住在属性名前一定要加 sys. ,这表示
这个属性是 sys 模块的。其中 version 变量保存着你使用的 Python 解释器版本, platform
属性则包含你运行 Python 时使用的计算机平台信息。
(c) 最后, 调用 sys.exit() 函数。 这是一种热键之外的另一种退出 Python 解释器的方
式 。
2–14. 重写 2.4 小节中 print 语句里的算术表达式, 试着在这个表达式中添加合适的
括号以便它能正常工作。
print (-2 * 4) + (3 ** 2)
2–15. 元素排序
(a)让用户输入三个数值并将分别将它们保存到 3 个不同的变量中。不使用列表或排序算法,自己写代码来对这三个数由小到大排序。(b)修改(a)的解决方案,使之从大到小排序
#!/usr/bin/env python
#-*- coding:utf-8 -*-
a =  raw_input('a= ' )
b =  raw_input('b= ' )
c =  raw_input('c= ' )
if a > b:
    if b > c:
print '%s > %s >%s' % (a,b,c)
    elif c > b:
        if a > c:
    print '%s > %s >%s' % (a,c,b)
elif c > a:
    print '%s > %s >%s' % (c,a,b)
elif a > c:
    if b > c:
if a > b:
   print '%s > %s >%s' % (a,b,c)
elif b > a:
   print '%s > %s >%s' % (b,a,c)
elif b > c:
    if b > a:
if a > c:
   print '%s > %s >%s' % (b,a,c)
elif c > a:
   print '%s > %s >%s' % (b,c,a)
elif c > a:
     if a > b:
   print '%s > %s >%s' % (c,a,b)
     elif b > a :
        if b > c:
   print '%s > %s >%s' % (b,c,a)
elif c > b:
   print '%s > %s >%s' % (c,b,a)
else:
    print '%s = %s =%s' % (c,a,b)

2–16. 文件
键入 2.15 节的文件显示的代码, 然后运行它, 看看能否在你的系统上正常工作,然后试
一下其它的输入文件。
#!/usr/bin/env python
filename = raw_input('Enter file name: ')
fobj = open(filename, 'r')
for eachLine in fobj:
    print eachLine,
fobj.close()
0 0
原创粉丝点击