11、题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
程序分析:程序分析:(a>b)?a:b这是条件运算符的基本例子。
# -*- coding: UTF-8 -*-
score=int(raw_input('input the score'))
if score >= 90:
grade = 'A'
elif score >= 60:
grade = 'B'
else:
grade = 'C'
print '%d 属于 %s' % (score,grade)
12、题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
程序分析:利用 while 或 for 语句,条件为输入的字符不为 '\n'。
import string
letter_count,space_count,number_count,other_count=0,0,0,0
s = raw_input('enter a str:\n')
for i in xrange(0,len(s)):
if s[i].isalpha():
letter_count+=1
elif s[i].isdigit():
number_count+=1
elif s[i].isspace():
space_count+=1
else:
other_count+=1
print 'letter:%d space:%d number:%d other:%d' %(letter_count,
space_count,number_count,other_count)
13、题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
程序分析:关键是计算出每一项的值。
import math
a=int(raw_input('enter a:\n'))
k=int(raw_input('enter k:\n'))
result=[a]
for i in xrange(k-1):
result.append(result[i]*10+a)# result[i+1]=result[i]*10+a
print result
print sum(result)
14、题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
程序分析:对比T10之间的不同
for j in range(2,1001):
k = []
s = j
for i in range(1,j):
if j % i == 0: #if i is one factor of j
s -= i
k.append(i)
if s == 0: #to judge s=i1+i2+i3.....
print j
print k
15、题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
程序分析:明显的1/2 问题
height=100.0
distance_sum=100.0
for i in xrange(1,10):
height/=2
distance_sum+=2*height
print 'height is :%d and distance_sum is :%d' %(height,distance_sum)