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

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

PS:PDF在线地址:http://bcmi.sjtu.edu.cn/~zhaohai/ptm2012/data/Python-kernel.PRogramming.v2.pdf

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

#-*- coding:utf-8 -*->>>a = 123

>>>b ='123'>>>a123

>>>b'123'>>>printa123

>>>printb123

>>>print'尽管print语句输出的a和b是一样的,但他们仍然不一样,a是%d,是整型;b是%s,是字符串。'%(a,b)

尽管print语句输出的a和b是一样的,但他们仍然不一样,a是123,是整型;b是123,是字符串。

可见,在交互式解释器中,通过输入变量名称显示值是直接显示各变量包含变量类型的值,即字符串带有字符串的标志''引号;通过print语句,则字符串引号''被去掉。

2-2 程序输出

(a) 这段脚本用来计算 1 + 2 * 4 的值

(b)这段脚本保存后再运行不会输出任何项

(c)保存为脚本运行后,没有任何输出,与预想的一样。究其原因,是因为交互式解释器和脚本运行的不同

(d)单独执行这段代码,不会有任何输出;在交互式解释器中输入 1 + 2 * 4 ,会输出"9".如下:

#!/usr/bin/env python1 + 2 * 4

(e)使用print语句即可

2-3 略

2-4 (a)

1#-*- coding:utf-8 -*-2string = raw_input("Please enter something:")3printstring

输出:

Please enter something:Pythonisnumber one!

Pythonisnumber one!

(b)

#-*- coding:utf-8 -*-string = raw_input("Please enter a number:")print"Your enter is %d"% int(string)

输出:

Please enter a number:123Your enteris123

2-5 (a)

i =0whilei <= 10:printi

i+= 1

(b)

foriinrange(11):printi

2-6 (1)

#-*- coding:utf-8 -*-num = 10ifnum >0:printu"它是正数!"elifnum <0:printu"它是负数!"else:printu"它是0"

(2)

#-*- coding:utf-8 -*-num = int(raw_input("输入一个数字:".decode("utf-8").encode("gbk")))ifnum >0:printu"它是正数!"elifnum <0:printu"它是负数!"else:printu"它是0"

2-7 (1) while

strings = raw_input("Please enter something:")

i=0whilei <len(strings):printstrings[i],'(%d)'%i

i+= 1

(2) for

strings = raw_input("Please enter something:")fori,stringinenumerate(strings):printstring,"(%d)"% i

2-8

(1)

list1 = [123,45,678,91,124]

i=0

sum=0whilei <len(list1):

sum= sum +list1[i]

i+= 1printsum

sum=0fornuminlist1:

sum= sum +numprintsum

(2)

num_one = int(raw_input("Please enter the first number:"))

num_two= int(raw_input("Please enter the second numebr:"))

num_three= int(raw_input("Please enter the third number:"))

num_four= int(raw_input("Please enter the fourth number:"))

num_five= int(raw_input("Please enter the fifth number:"))

list1=[num_one,num_two,num_three,num_four,num_five]

i=0

sum=0whilei <len(list1):

sum= sum +list1[i]

i+= 1printsum

sum=0fornuminlist1:

sum= sum +numprintsum

2-9

number = [12,345,67,890,123]

sum=0fornuminnumber:

sum= sum +num

average= float(sum) / 5print"%f is the average of these five numbers."% average

2-10

whileTrue:

num= int(raw_input("Please enter a number bewteen 1 and 100:"))ifnum >= 1andnum <= 100:print"Well Done.You done it."

breakelse:print"Man,you are wrong!Please learn to read the prompt!!!"continue

2-11

#-*- coding:utf-8 -*-defcalc_sum():globalsum

sum=0

i=0whilei < 5:

num= int(raw_input("请依次输入五个数字:".decode("utf-8").encode("gbk")))

sum= sum +num

i+= 1returnsumwhileTrue:

choice= raw_input("1求和,2求平均数,X退出,请输入你的选择:".decode("utf-8").encode("gbk"))ifchoice =='X':printu"程序将退出"

breakelifchoice.isdigit()andint(choice) == 1:

#isdigit()用来判断一个对象是否是数字,是数字返回True,否则返回False。如123.isdigit()返回结果Trueprintu"计算五个数的和"calc_sum()printu"这五个数的和是:",sumelifchoice.isdigit()andint(choice) == 2:printu"计算五个数的平均值"calc_sum()printu"这五个数的平均值是:",float(sum) / 5else:printu"请重新输入"

2-12

(a) dir()会显示所有全局变量

(b) dir不加括号返回<built-in function dir>,对dir的基础介绍

(c) type(dir)返回<type 'builtin_function_or_method'>,意思是内建的函数或方法

2-13

2-14

原语句:

print-2 * 4 + 3 ** 2

改写:

print-2 * 4 + (3 ** 2)

2-15/2-16 存疑,待补

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航