最近闲时学点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
此脚本不支持负数运算,另写了个支持负数运算的脚本,尚未上传博客.