2-1 变量, print 和字符串格式化运算符。启动交互式解释器。给一些变量赋值(字符串,数值等等)并通过输入变量名显示它们的值。再用 print 语句做同样的事。这二者有何区别? 也尝试着使用字符串格式运算符 %, 多做几次, 慢慢熟悉它。

print来显示变量的内容,仅用变量名时,输出的字符串使用单引号括起来的,这是为了让非字符串对象也能以字符串的方式显示在屏幕上,print语句使用str()函数显示对象,交互解释器调用repr()函数来显示对象

2-2程序输出, 阅读下面的 Python 脚本:

#!/usr/bin/env python

1+2*4

(a) 你认为这段脚本是用来做什么的?

(b) 你认为这段脚本会输出什么?

(c) 输入以上代码,并保存为脚本,然后运行它。它所做的与你的预期一样吗?为什么为什么一

样/不一样?

(d) 这段代码单独执行和在交互解释器中执行有何不同?试一下,然后写出结果

(e) 如何改进这个脚本, 以便它能和你想像的一样工作?为什么一样/不一样?

(a)运算1+2*4
(b)只会做运算不会输出
(c)运算未显示结果
(d)交互解释器输入一段语句后会返回语句结果
(e)print ‘1+2*4’
 
2-3数值和运算符。启动交互解释器,使用 Python 对两个数值(任意类型)进行加、减、乘、除运算。然后使用取余运算符来得到两个数相除的余数, 最后使用乘方运算符求 A 数的 B 次方。
 
2-4
使用 raw_input()函数得到用户输入

(a) 创建一段脚本使用 raw_input() 内建函数从用户输入得到一个字符串,然后显示这个

用户刚刚键入的字符串。

(b) 添加一段类似的代码,不过这次输入的是数值。将输入数据转换为一个数值对象,

(使

用 int()或其它数值转换函数) 并将这个值显示给用户看。(注意,如果你用的是早于 1.5 的版

本,你需要使用 string.ato*() 函数执行这种转换)

(a)
#!/usr/bin/env python
string =raw_input("please type the string:\n")
print string
(b)
#!/usr/bin/env python
string =input("please type the string:\n")
print string
print type(string)

2-5

循环和数字

分别使用 while 和 for 创建一个循环:

(a) 写一个 while 循环,输出整数从 0 到 10。

(要确保是从 0 到 10, 而不是从 0 到 9 或

从 1 到 10)

(b) 做同 (a) 一样的事, 不过这次使用 range() 内建函数。

(a)
#!/usr/bin/env python
i=0
while i<=10:
print i
i+=1

(b)
#!/usr/bin/env python
for counter in range(11):
print counter

2-6

条件判断

判断一个数是正数,还是负数, 或者等于 0. 开始先用固定的数值,然

后修改你的代码支持用户输入数值再进行判断。

#!/usr/bin/env python
value=input("please type the value:\n")
if value>0:
print "This number is positive"
elif value<0:
print "This number is negative"
else:
print "This number is zero"

2-7

循环和字串

从用户那里接受一个字符串输入,然后逐字符显示该字符串。先用 while 循

环实现,然后再用 for 循环实现。

#!/usr/bin/env python
#-*- coding:utf-8 -*-
string =raw_input("please type the string:\n")
print "for循环完成逐字符显示字符串"
for i in string:
print i
print "while循环完成逐字符显示字符串"
j=0
while j<len(string):
print string[j]
j+=1

2-8 循环和运算符。创建一个包含五个固定数值的列表或元组,输出他们的和。然后修改你的代码为接受用户输入数值。 分别使用 while 和 for 循环实现。
#!/usr/bin/env python
#-*- coding:utf-8 -*-
aList =[1,2,3,4,5]
j=0
print "for循环实现输出列表的和"
for i in aList:
print i
j+=i
print j
print "while 循环实现输出列表的和"
j=0
i=0
while i<len(aList):
j+=aList[i]
print aList[i]
i+=1
print j

2-9 循环和运算符 创建一个包含五个固定数值的列表或元组,输出他们的平均值。本练习的难点之一是通过除法得到平均值。 你会发现整数除会截去小数,因此你必须使用浮点除以得到更

精确的结果。 float()内建函数可以帮助你实现这一功能。

#!/usr/bin/env python
#-*- coding:utf-8 -*-
aList =(1,3,3)
j=0
print "for循环实现输出列表的和"
for i in aList:
print i
j+=i
counter =float(len(aList))
print "平均值为:",j/counter
print "while 循环实现输出列表的和"
j=0
i=0
while i<len(aList):
j+=aList[i]
print aList[i]
i+=1
print j
print "平均值为:",j/counter

2-10 带循环和条件判断的用户输入 使用 raw_input()函数来提示用户输入一个 1 和 100 之间的数,如果用户输入的数满足这个条件,显示成功并退出。否则显示一个错误信息然后再次提示用户输入数值,直到满足条件为止。
#!/usr/bin/env python
#-*- coding:utf-8 -*-
while True:
i =input("please type the number:\n")
if(0<i<100):
print"success!"
break
else:
pass

 
2-11 带文本菜单的程序 写一个带文本菜单的程序,菜单项如下(1)取五个数的和 (2) 取五个数的平均值....(X)退出。由用户做一个选择,然后执行相应的功能。当用户选择退出时程序结束。这个程序的有用之处在于用户在功能之间切换不需要一遍一遍的重新启动你的脚本。(这对开发人员测试自己的程序也会大有用处)
#!/usr/bin/env python
#-*- coding:utf-8 -*-
myList =[]
i=0
sum=0
while i<5:
counter=input("please enter the number:\n")
myList+=[counter]
i+=1
while True:
print"""
(1)取五个数的和
(2)取五个数的平均值
(3)退出
"""
choose=input("please enter your choose:\n")
if choose==1:
for j in range(len(myList)):
sum+=myList[j]
print sum
elif choose==2:
for j in range(len(myList)):
sum+=myList[j]
print sum/(len(myList)+1)
elif choose==3:
break

2-12

dir()内建函数

(a) 启动 Python 交互式解释器, 通过直接键入 dir()回车以执行 dir()内建函数。你看到

什么? 显示你看到的每一个列表元素的值,记下实际值和你想像的值

(b) 你会问, dir()函数是干什么的?我们已经知道在 dir 后边加上一对括号可以执行 dir()

内建函数, 如果不加括号会如何? 试一试。 解释器返回给你什么信息? 你认为这个信息表

示什么意思 ?

(c) type() 内建函数接收任意的 Python 对象做为参数并返回他们的类型。 在解释器中键

入 type(dir), 看看你得到的是什么?

(d) 本练习的最后一部分, 我们来瞧一瞧 Python 的文档字符串。 通过 dir.__doc__ 可

以访问 dir()内建函数的文档字符串。print dir.__doc__可以显示这个字符串的内容。 许多内建

函数,方法,模块及模块属性都有相应的文档字符串。我们希望你在你的代码中也要书写文档

字符串, 它会对使用这些代码的人提供及时方便的帮助。

a.
获得当前模块的属性列表
['__builtins__', '__doc__', '__name__']
b.
dir
<built-in function dir>
会显示内建函数dir
c.
看见类型为内建函数方法
<type 'builtin_function_or_method'>
d.
 
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 解释器的方

式 。

a.
 
b.
 
c.
 
2-14 重写 2.4 小节中 print 语句里的算术表达式, 试着在这个表达式中添加合适的括号以便它能正常工作
print (-2*4)+(3**2)
2-15 元素排序

(a)让用户输入三个数值并将分别将它们保存到 3 个不同的变量中。不使用列表或排序算法,自己写代码来对这三个数由小到大排序。(b)修改(a)的解决方案,使之从大到小排序

#!/usr/bin/env python
#-*-coding:utf-8-*-
number1 =input("请输入第一个数值!:\n")
number2 =input("请输入第二个数值!:\n")
number3 =input("请输入第三个数值!:\n")
if number1>number2:
number2,number1=number1,number2
if number1>number3:
number3,number1=number1,number3
if number2>number3:
number3,number2=number2,number3
print number1,number2,number3
number1,number2,number3=number3,number2,number1
print number1,number2,number3

python核心编程2第二章课后练习的更多相关文章

  1. python核心编程第4章课后题答案(第二版75页)

    4-1Python objects All Python objects have three attributes:type,ID,and value. All are readonly with ...

  2. python核心编程第3章课后题答案(第二版55页)

    3-4Statements Ues ; 3-5Statements Use\(unless part of a comma-separated sequence in which case \ is ...

  3. python核心编程第2章课后题答案(第二版36页)

    2-5 Loops and Numbers a) i = 0    while i <11:     print i    i += 1 b) for i in range(0,11): pri ...

  4. Python核心编程笔记 第二章

    2.1   程序输出:print语句         可以使用print语句显示变量的字符串表示,或者仅用变量名查看该变量的原始值. 2.2   程序输出和raw_input()内建函数       ...

  5. Python核心编程2第一章课后练习

    1-1 在windows下的安装方法在网上下载python2.7直接安装到C盘1)在系统变量中找到path. 2)编辑path值,添加你安装的python路径,C:\Python27. 3)检验pyt ...

  6. 【0】python核心编程,第二章

    1.print语句也支持将输入重定向到文件,示例: logfile = open('/tmp/mylog.txt', 'a') print >> logfile, 'Fatal error ...

  7. python核心编程-习题-第二章

    PS:PDF在线地址:http://bcmi.sjtu.edu.cn/~zhaohai/ptm2012/data/Python-kernel.programming.v2.pdf 2-1  变量,pr ...

  8. python 核心编程第六章课后题自己做的答案

    6–6. 字符串.创建一个 string.strip()的替代函数:接受一个字符串,去掉它前面和后面的 空格(如果使用 string.*strip()函数那本练习就没有意义了) 'Take a str ...

  9. python核心编程第5章课后题答案

    5-8Geometry import math def sqcube(): s = float(raw_input('enter length of one side: ')) print 'the ...

随机推荐

  1. Android 开发60条技术经验总结(转)

    Android 开发60条技术经验总结: 1. 全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效. 2. ...

  2. 【JAVA - SSM】之MyBatis与原生JDBC、Hibernate访问数据库的比较

    首先来看一下原生JDBC访问数据库的代码: public static void main(String[] args) { // 数据库连接 Connection connection = null ...

  3. 【设计模式 - 24】之访问者模式(Visitor)

    1      模式简介 访问者模式的定义: 访问者模式将数据结构与数据操作进行了分离,解决了稳定的数据结构和易变的数据操作的耦合问题. 访问者模式的优点: 1)        符合单一职责原则: 2) ...

  4. [置顶] Linux下的截图小工具

    Linux下的截图工具scrot 基于命令行 先下载:scrot apt-get install scrot 对该工具的操作: 分为以下几个部分 1.抓取整个桌面 scrot pic.jpg 2.抓取 ...

  5. 用apache的httpclient发请求和接受数据

    此处发请求的是用httpclient4,请自己下载所需要的jar包. 发post请求,并得到数据. String url = "http://localhost:8080/lee" ...

  6. 史上最全的iOS各种设备信息获取总结

    来源:si1ence 链接:http://www.jianshu.com/p/b23016bb97af 为了统计用户信息.下发广告,服务器端往往需要手机用户设备及app的各种信息,下面讲述一下各种信息 ...

  7. MVVM架构的一次实践,重写iOS头条客户端

    前言: 一个iOS头条APP,使用MVVM架构实现,代码中有注释,封装了AFN网络请求,解媾代码,使用起来非常方便.用最经典的TableView展示,后续不断更新,喜欢就star或fork一下,有问题 ...

  8. web前端url传递值 js加密解密

    一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码: <script type=”text/javascript ...

  9. http 与https 安全链接

    安全连接 Web应用最常见的用途之一是电子商务,可以利用Web服务器端程序使人们能够网络购物,需要指出一点是,缺省情况下,通过Internet发送信息是不安全的,如果某人碰巧截获了你发给朋友的一则消息 ...

  10. Java基础知识强化之网络编程笔记04:UDP之发送端的数据来自于键盘录入案例

    1. 数据来自于键盘录入 键盘录入数据要自己控制录入结束. 2. 代码实现: (1)发送端: package com.himi.updDemo1; import java.io.IOException ...