#5-1 整形。讲讲python普通整形和长整型的区别。
#python整形一共有三种:布尔型,长整型和常规整型。普通型和长整型主要的区别是,能表示的数据位数的不同。
#5-2 操作符
#(a) 写一个函数,计算并返回两个数的乘积。
#(b) 写一段代码调用这个函数,并显示他的结果
def mult(x, y):
return int(x) * int(y)
a = raw_input('input a:')
b = raw_input('input b:')
print 'a * b =', mult(a, b)
#5-3 标准类型运算符. 写一段脚本,输入一个测验成绩,根据下面的标准,输出他的评分成绩(A-F)。
#A: 90–100 B: 80–89 C: 70–79 D: 60–69 F: <60
while True:
score = raw_input('input your score:')
score = int(score)
if score > 100 or score < 0:
print 'wrong socre input,end'
break
elif score >= 90:
print '%d is rank A' % score
elif score >= 80:
print '%d is rank B' % score
elif score >= 70:
print '%d is rank C' % score
elif score >= 60:
print '%d is rank D' % score
else:
print '%d is rank F' % score
#5-4 取余。判断给定年份是否是闰年。使用下面的公式:
#一个闰年就是指它可以被4 整除,但不能被100 整除, 或者它既可以被4 又可以被100 整除。比如 1992,1996 和2000 年是闰年,但1967 和1900 则不是闰年。下一个是闰年的整世纪是 2400 年。
def isLeapYear(year):
year = int(year)
if(year % 4 == 0 and year % 100 != 0) or (year % 400 == 0 ):
return True
else:
return False
year = raw_input('please input year:')
if (isLeapYear(year)):
print '%s is leap year' % year
else:
print'%s is not leap year' % year
#5-5 取余。取一个任意小于1美元的金额,然后计算可以换成最少多少枚硬币。硬币有1美分、5美分、10美分、25美分4种。一美元等于100美分。举例来说,0.76美元换算结果应该是3枚25美分,1枚1美分。类似76枚1美分,2枚25美分+2枚10美分+1枚5美分+1枚1美分这样的结果都是不符合要求的。
def centchange(money):
money = float(money)
money *= 100
money = int(money)
cent25 = money / 25
money = money % 25
cent10 = money / 10
money = money % 10
cent5 = money / 5
money = money %5
cent1 = money
print'money change:'
if (cent25 > 0):
print'cent25 = %d' % cent25
if (cent10 > 0):
print'cent10 = %d' % cent10
if (cent5 >0):
print'cent5 = %d' % cent5
if(cent1 > 0):
print'cent1 = %d' % cent1
money = raw_input('please input a 0<>1 number:')
centchange(money)
#5-6 算术。写一个计算器程序。你的代码可以接受这样的表达式,两个操作数加一个操作符:N1操作符N2.其中N1和N2为整形或浮点型,操作符可以是+、-、*、/、%、**,分别表示加法、减法、乘法、整形除、取余和幂运算。计算这个表达式的结果,然后显示出来。提示:可以使用字符串方法split(),但不可以使用内建函数eval()。
def operator(str):
if str.find('+') >= 0:
return '+'
elif str.find('-') >= 0:
return '-'
elif str.find('*') >= 0:
return '*'
elif str.find('/') >= 0:
return '/'
elif str.find('%') >= 0:
return '%'
elif str.find('**') >= 0:
return '**'
calStr = raw_input('please input a calstr like a+b:')
op = operator(calStr)
num = calStr.split(op)
print num
print op
res = 0.0
if op == '+':
res = float(num[0]) + float(num[1])
elif op == '-':
res = float(num[0]) - float(num[1])
elif op == '*':
res = float(num[0]) * float(num[1])
elif op == '/':
res = float(num[0]) / float(num[1])
elif op == '%':
res = int(num[0]) % int(num[1])
elif op == '**':
res = float(num[0]) ** float(num[1])
print 'res is %f' % res
#5-10 取余。写一对函数来进行华氏度到摄氏度的转换。转换公式为C=(F-32)*(5/9)应该在这个练习中使用真正的除法,否则你会得到不正确的结果。
def temperaturechange(i):
C = (i - 32) * (5/9.0)
print 'F change to C is %f' % C
j = float(raw_input('please input F:'))
print 'F is %f' % j
temperaturechange(j)
#5-11 取余
#(a)使用循环和算术运算,求出0~20之间的所有偶数。
#(b)同上,不过这次输出所有奇数。
#(c)综合(a)和(b),请问辨别奇数和偶数的最简单的方法是什么?
#(d)使用(c)的成功,写一个函数,检测一个整形能否被另一个整形整除,先要求用户输入两个数,然后你的函数判断两者是否有整除关系,根据判断结果分别返回True和False。
i = 0
while i <= 20:
if (i % 2 == 0):
print i, ' '
i += 1
j = 0
while j <= 20:
if (j % 2 == 1):
print j, " "
j += 1
a = int(raw_input('input a:'))
b = int(raw_input('input b:'))
if (a % b == 0):
print 'A can be divided exactly by b '
else:
print'A can not be divided exactly by b'
#5-12 不会弄,求回复
<pre name="code" class="python">#5-15 最大公约数和最小公倍数。请计算两个整数的最大公约数和最小公倍数。
def maxgys(a, b):
if b == 0:
return a
else:
return maxgys(b,a % b)
def mingbs(a, b):
if (a * b == 0):
return 0
else:
return a * b / maxgys(a, b)
x = int(raw_input('input x:'))
y = int(raw_input('input y:'))
print 'maxgys is %s' % maxgys(x, y)
print 'mingbs is %s' % mingbs(x, y)