最近闲时学点python,教材是电子版的<Python核心编程(第二版)>,以下是我学习期间自己做的练习题,可能解答有误,也许不是最佳思路,希望大家多提宝贵意见,优化优化.

 

2-6 题解答:

 

 

2. 操作符.

   (a) 写一个函数, 计算并返回两个数的乘积.

   (b) 写一段代码调用这个函数, 并显示它的结果.

 

#!/usr/bin/env python

## -*- coding: UTF-8 -*-

## Author: 

def MUL(x,y):

print x * y

while (1):

x = float(raw_input("Enter the first Number:\n"))

y = float(raw_input("Enter another Number:\n"))

        MUL(x,y)

3. 标准类型操作符. 写一段脚本,输入一个测验成绩,根据下面的标准,输出他的评分成绩(A-F).

   A: 90~100

   B: 80~89

   C: 70~79

   D: 60~69

   F: <60

 

#!/usr/bin/env python

## -*- coding: UTF-8 -*-

## Author: 

grade = int(raw_input("Please Enter your point:\n")) 

if 90 <= grade <= 100:

print "Your point is: A"

elif 80 <= grade < 90:

    print "Your point is: B"

elif 70 <= grade < 80:

print "Your point is: C"

elif 60 <= grade < 70:

print "Your point is: D"

elif grade < 60:

print "Your point is: F"

4. 取余. 判断给定年份是否是闰年. 使用下面的公式.

   一个闰年就是指它可以被4整除,但不能被100整除,或者它既可以被4又可以被100整除.比如1992年,1996年和2000年是闰年,但1967年和1900年则不是闰年.下一个是闰年的整世纪是2400年.

#!/usr/bin/env python

## -*- coding: UTF-8 -*-

## Author: 

leapYear = int(raw_input("Please Enter a year Number:\n"))

if (leapYear % 4 == 0 and leapYear % 100 != 0) or (leapYear % 4 == 0 and leapYear % 100 == 0):

print "This year %d is a Leap Year !!" % leapYear 

else:

print "%d IS NOT a Leap Year !!" % leapYear

 

5. 取余. 取一个任意小于1美元的金额,然后计算可以换成最少多少枚硬币. 硬币有1美分,5美分,10美分,25美分4种. 1美元等于100美分. 举例来说,0.76美元换算结果应该是3枚25美分,1枚1美分. 类似76枚1美分,2枚25美分+2枚10美分+1枚5美分+1枚1美分这样的结果都是不符合要求的.

        

#!/usr/bin/env python

## -*- coding: UTF-8 -*-

## Author: 

def basic(cent):

    cent *= 100

    cent25 = int(cent/25)

    cent10 = int((cent - cent25*25)/10)

    cent5 = int((cent - cent25*25 - cent10*10)/5)

    cent1 = int(cent - cent25*25 - cent10*10 - cent5*5)

 

    print "There are %s ge 25 cent" % cent25

    print "There are %s ge 10 cent" % cent10

    print "There are %s ge 5 cent" % cent5

    print "There are %s ge 1 cent" % cent1

 

cent = float(raw_input("Enter a number less than 1:\n"))

while cent >= 1:

    print "Enter another number....."

    cent = float(raw_input("Enter a number less than 1:\n"))

else:

    basic(cent)

 

6. 算术. 写一个计算器程序.你的代码可以接受这样的表达式,两个操作数加一个操作符:N1 操作符 N2. 其中N1和N2为整型或浮点型,操作符可以是+,-,*,/,%,**, 分别表示加法,减法,乘法,整型除,取余和幂运算.计算这个表达式的结果,然后显示出来. 提示:可以使用字符串方法split(),但不可以使用内建函数 eval().

#!/usr/bin/env python

## -*- coding: UTF-8 -*-

## Author: 

clo = raw_input("Please Enter expression,such as: \"66 + 66 \"\n")

operator = ''.join([op for op in clo if op in "+-*/%"][0:])

Num1 = float(clo.split(operator)[0])

Num2 = float(clo.split(operator)[1])

 

if len(operator) == 2:

    print Num1 ** Num2

if operator is "+":

    print Num1 + Num2

elif operator is "-":

    print Num1 - Num2

elif operator is "*":

    print Num1 * Num2

elif operator is "/":

    print Num1 / Num2

elif operator is "%":

    print Num1 % Num2

else:

    pass

 

此脚本不支持负数运算,另写了个支持负数运算的脚本,尚未上传博客.