python 菜鸟教程典例(二)

11.判断101-200之间有多少个素数,并输出所有素数
判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数

l = []
for i in range(101,201):
    for j in range(2,i):
        if i%j ==0:
            break
    else:
        l.append(i)

print(l)

print("总数为:%d" % len(l))

12.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方

for n in range(100,1000):
    i = n // 100
    j = n // 10 % 10
    k = n % 10
    if n == i ** 3 + j ** 3 + k ** 3:
       print('水仙花数为:{0}'.format(n))

13.利用条件运算符的嵌套来完成此题:
学习成绩>=90分的同学用A表示, 60-89分之间的用B表示, 60分以下的用C表示

score = int(input('输入的分数为:'))
if score >=90:
    grade = 'A'
elif 60<=score<90:
    grade= 'B'
else:grade='C'


print('成绩表示为:{0}'.format(grade))

14.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

import string
s = eval(input('输入一行字符串:'))
a=0
space=0
num=0
char=0
for i in s:
    if i.isalpha():   #方法检测字符串是否只由字母组成
        a+=1
    elif i.isspace(): #检测是否只有空格
        space+=1
    elif i.isdigit(): #是否只有数字
        num+=1
    else:char+=1
print('个数分别为:{0},{1},{2},{3}'.format(a,space,num,char))

15.求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制

def calculate(a,n):
    sum = 0
    for i in range(1,n+1):
        x = int(str(a)*i)
        print(x)
        sum+=x
    print (sum)
calculate(4,5)

16.一个数如果恰好等于它的因子之和,这个数就称为"完数"。
例如6=1+2+3.编程找出1000以内的所有完数

for i in range(1, 1001):
    sum = 0
    for j in range(1, i):
        if i % j == 0:
            sum += j
    if sum == i:
        print(i)

17.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

tour = []
height = []

hei = 100.0 # 起始高度
tim = 10 # 次数

for i in range(1, tim + 1):
    # 从第二次开始,落地时的距离应该是反弹高度乘以2(弹到最高点再落下)
    if i == 1:
        tour.append(hei)
    else:
        tour.append(2*hei)
    hei /= 2
    height.append(hei)

print('总高度:tour = {0}'.format(sum(tour)))
print('第10次反弹高度:height = {0}'.format(height[-1]))

你可能感兴趣的:(python,python)