《python核心编程》第二章练习答案

时间:2021-09-05 09:07:45
版本:3.3.2
2–3.数值和运算符 
启动交互解释器,使用Python 两个数 对值(任意类型)进行加、减、乘、除运算。然后使用取余运算符来得到两个数相除的余数, 最后使用乘方运算符求A 数的B次方。
答案:
a = 8 
b=5
print ('a + b = %d' % (a + b))  
print ('a - b = %d' % (a - b) )
print ('a * b = %d' % (a * b) )
print ('a / b = %d' % (a / b) ) 
print ('a mod b = %d' % (a % b))
print ('a ^ b = %d' % (a ** b))  

2–4.使用raw_input()函数得到用户输入 
(在3.3版本中没有raw_input()函数用input()函数代替)
答案:
#!/usr/bin/python    
str = input('Input a string:') 
print(str)
num = input('input a number:')  
print(int(num))

2–5.循环和数字 
分别使用while和for创建一个循环: 
(a)写一个while循环,输出整数从0到10。(要确保是从0到10, 而不是从0到9或
从1到10) 
(b)做同 (a) 一样的事, 不过这次使用 range() 内建函数。 
答案:
(a):
#!/usr/bin/python
i=0;
while i<=10:
print(i)
i+=1
print
(b):
#!/usr/bin/python
for(int i range(10))
print(i)

2–6.条件判断  
判断一个数是正数,还是负数,或者等于0.开始先用固定的数值,然后修改你的代码支持用户输入数值再进行判断。 
答案:
#!/usr/bin/python
num = int(num)   
if num > 0 :   
    print '正数'   
elif num < 0:   
    print '负数'   
else :   
    print '等于0'  

2–7.循环和字串 
从用户那里接受一个字符串输入,然后逐字符显示该字符串。先用while循
环实现,然后再用 for 循环实现。  
答案:
#!/usr/bin/python    
str = input('Input a string:')   
i = 0;   
while i < len(str) :   
    print str[i]   
    i += 1   

       
for c in str :   
    print c  
 
2–8.循 环和运算符 
创建一个包含五个固定数值的列表或元组,输出他们的和。然后修
改你的代码为接受用户输入数值。 分别使用while和for循环实现。 
答案:
第一种:
total = 0
a = [1,2,3,4,5]
for i in a:
    total = total + i
print(total)

2–9.循环和运算符 
创建一个包含五个固定数值的列表或元组,输出他们的平均值。本练习的难
点之一是通过除法得到平均值.你会发现整数除会截去小数,因此你必须使用浮点除以得到更精确的结果。 float()内建函数可以帮助你实现这一功能。 
答案:
num=[12,12,23,34,43.3]  
total=0  
for x in num:  
     total+=x   
print float(total/5)

2–10.    
带循环和条件判断的用户输入 使用raw_input()函数来提示用户输入一个1和100之 间的
数,如果用户输入的数满足个条 这 件,显示成功并退出。否则显示一个错误信息然后再次提示用户输入数值,直到满足条件为止。 
答案:
#!/usr/bin/python 
x=int(raw_input('Enter a number between 1 and 100:'))  
while x <1 or x>100:  
        print 'Sorry you are wrong'  
        x=int(raw_input('Enter a number between 1 and 100:'))  
print 'Yes you are right' 



第二种:
#!/usr/bin/python    
while 1 :   
    num = raw_input('Input a number(1-100):')   
    num = int(num)   
    if (num >= 0) and (num <= 100) :   
        print 'Inut Success'   
        break   
    else :   
        print 'Input Again'   

2–15.   元素排序 
(a)让用户输入三个数 并将 值 分将它 别们保存到3个不同的变量中。不使用列表或排序算法,自己写代来 码对这三个数由小到大排序。(b)修改(a)的解决方案,使之从大到小排序 
答案:
a)
#!/usr/bin/python 
print 'Enter three numbers:'  
num1=int(raw_input())  
num2=int(raw_input())  
num3=int(raw_input())  
min=num1  
if min>num2:  
    min=num2  
    if min>num3:  
        print num3,num2,num1  
    elif num1>num3:  
        print num2,num3,num1  
    else:  
        print num2,num1,num3  
elif min>num3:  
    print num3,num1,num2  
elif num3>num2:  
    print num1,num2,num3  
else:  
    print num1,num3,num2  
b)
#!/usr/bin/python 
print 'Enter three numbers:'  
num1=int(raw_input())  
num2=int(raw_input())  
num3=int(raw_input())  
max=num1  
if max<num2:  
    max=num2  
    if max<num3:  
        print num3,num2,num1  
    elif num1<num3:  
        print num2,num3,num1  
    else:  
        print num2,num1,num3  
elif max<num3:  
    print num3,num1,num2  
elif num3<num2:  
    print num1,num2,num3  
else:  
    print num1,num3,num2