《python核心编程第二版》第五章练习解析

1.

普通整形即标准整形是最通用的数字类型。它的取值范围是-2**31 ~~ 2**31-1,也就是-2 147 483 648 ~~ 2 147 483 647。python的长整形与C或其他编译型语言完全不同,它所表示的范围仅与机器所能支持的内存大小有关,也就是说python能轻松表示很大的整形。

2.

def mul(a ,b):
    return  a*b

def mul(a ,b):
    return  a*b

if __name__=='__main__':
    a = input()
    b = input()
    print mul(a, b)

3.

def socre(num):
    if num>=90 and num <=100:
        return 'A'
    elif num >=80:
        return 'B'
    elif num >=70:
        return 'C'
    elif num >= 60:
        return 'D'
    else:
        return 'F'
    
if __name__=='__main__':
    n = input()
    print socre(n)
4.

<pre name="code" class="python"># -*- coding: utf-8 -*- 
def year(num):
    if (num % 4==0 and num % 100 !=0) or (num % 400 ==0):
        return '这是闰年'
    else:
        return '这不是闰年'
    
if __name__=='__main__':
    n = input()
    print year(n)

 5. 
# -*- coding: utf-8 -*- 
def money(num):
    num = num *100
    a = num // 25
    b = (num - a *25)//10
    c = (num - a* 25 - b *10) //5
    d = (num -a * 25 - b * 10 - c * 5)
    return a+b+c+d
    
if __name__=='__main__':
    n = input()
    print money(n)

6.

# -*- coding: utf-8 -*- 
def test(a,s,b):
    if s == '+':
        return a+b
    elif s == '-':
        return a-b
    elif s == '*':
        return a*b
    elif s == '/':
        return a // b
    elif s == '%':
        return a%b
    elif s == '**':
        return a**b
    else:
        return 0
    
    
if __name__=='__main__':
    ss = raw_input()
    if len(ss) == 3:
        print test(float(ss[0]),ss[1],float(ss[2]))
    else:
        print test(float(ss[0]),ss[1:3],float(ss[3]))

8.

# -*- coding: utf-8 -*- 
import math    
    
if __name__=='__main__':
    ss = input()
    print '正方形面积:',ss*ss
    print '立方体面积:',ss*ss*6
    print '立方体体积:',ss*ss*ss
    print '圆面积:',ss*ss*math.pi
    print '球面积:',ss*ss*math.pi*4
    print '球体积:',ss*ss*ss*math.pi*4/3.0

9.

八进制和十进制

长整形和整形

10.

# -*- coding: utf-8 -*- 
   
def change(f):
    return (f-32)*(5.0/9.0)    
if __name__=='__main__':
    ss = input()
    print change(ss)

11.

a,b

# -*- coding: utf-8 -*- 
   
def num():
    num1=[]  #偶数
    num2=[]  #奇数
    for i in range(20):
        if i %2 == 0:
            num1.append(i)
        else:
            num2.append(i)
    print '偶数:'
    for i in num1:
        print i
    print '\n奇数:'
    for i in num2:
        print i    
        
    
       
if __name__=='__main__':
    num()
    

d.

# -*- coding: utf-8 -*- 
   
def num(num1,num2):
    if (num1%num2==0) or (num2%num1==0):
        return True
    else:
        return False
    
    
       
if __name__=='__main__':
    num1 = input()
    num2 = input()
    print num(num1,num2)
    

13.

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

def test(h , m):
    min= h * 60 + m
    return min

if __name__ == '__main__':
    while True:
        h = input()
        m = input()
        if (h < 23 and h > -1) and (m < 60 and m > -1):
            print 'The time is %d minuters' % test (h,m)
        else:
            print 'input error'

15

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

def gongyueshu(m , n):
    if m< n:
        min = m
    else:
        min = n
    for i in range(min , 0 ,-1):
        if m % i ==0 and n % i ==0:
            return i
    return 0

def gongbeishu(m , n):
    l = gongyueshu(m,n)
    return m * n / l

if __name__ == '__main__':
    m = input()
    n = input()
    print '最大公约数:',gongyueshu(m, n)
    print '最小公倍数:',gongbeishu(m, n)

16.

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

def Payment(cost,total):
    count = 0
    print '             Amount Remaining'
    print 'Pymt#   Paid        Balance'
    print '-----   ------   --------'
    while True:
        print '%-2d       $%.2f      $%6.2f'%(count,total,cost)
        if cost - total >=0:
            cost = cost-total
        else:
            if cost !=0:
                print '%-2d       $%.2f       $%6.2f'%(count+1,cost,0)
            break
        count += 1

if __name__=='__main__':
    cost = input('Enter opening balance:')
    total = input('Enter monthly payment:')
    Payment(cost,total)
17.

 
# -*- coding: utf-8 -*-
import random
if __name__=='__main__':
    N = random.randint(1,100)
    list = []
    for i in range(N):
        n = random.randint(0,2**31-1)
        list.append(n)
    list.sort()
    print list



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值