python 循环语句练习

1. 设计一个程序,帮助小学生练习10以内的加法

    详情:
        - 随机生成加法题目;
        - 学生查看题目并输入答案;
        - 判别学生答题是否正确?
        - 退出时, 统计学生答题总数,正确数量及正确率(保留两位小数点);

import random
correct = 0
worry = 0
ti = 0
while True:
    a = random.randint(1,10)
    b = random.randint(1,10)
    print("%d+%d=" %(a,b))
    ti += 1
    d=input()
    c = a + b
    if d == "exit":
        break
    elif  c == int(d):
        correct += 1
        print("正确")
    else:
        worry += 1
        print("错误")
e = (float(correct)/float(ti))*100
print("答题总数为%d,正确数为%d,正确率为%.2f%%" %(ti,correct,e))

2. 小学生算术能力测试系统:

设计一个程序,用来实现帮助小学生进行百以内的算术练习,它具有以下功能:提供10道加、减、乘或除四种基本算术运算的题目;练习者根据显示的题目输入自己的答案,程序自动判断输入的答案是否正确并显示出相应的信息。

import random
correct = 0
worry = 0
ti = 0
li = ['+','-','*','/']
while ti < 10:
    li1 = random.choice(li)
    a = random.randint(1,100)
    b = random.randint(1,100)
    print("%d%s%d=" %(a,li1,b))
    ti += 1
    d=float(input())
    if d == "exit":
        break
    elif  li1 == '+':
        if d == a+b:
            print("正确")
        else:
            print("错误")
    elif  li1 == '-':
        if d == a-b:
            print("正确")
        else:
            print("错误")
    elif li1 == '*':
        if d == a*b:
            print("正确")
        else:
            print("错误")
    elif li1 == '/':
        if d == a/b:
            print("正确")
        else:
            print("错误")
else:
    print("练习结束")

3. 算法之指定范围内判断

    1). 若一个正整数n的所有小于n的因子之和等于n, 则称n为完全数, 如6=1+2+3是完全数。判断正整数n是否为完全数。

a = int(input("num:"))
b = 0
for i in range(1,a):
    if a%i == 0:
        b += i
if b == a:
    print("%d是完全数" %(a))
else:
    print("%d不是完全数" %(a))

    2). 输入一个正整数,判断其是否为一个素数

a = int(input("num:"))
b = 0
for i in range(1,a):
    if a%i == 0:
        b = i
if b == 1:
    print("%d是素数" %(a))
else:
    print("%d不是素数" %(a))

    

3). 输入一个正整数,判断其是否为一个回文数(例1221、12321都是回文数);

num = input("num:")
if num == num[::-1]:
    print("%s是回文数" %(num))
else:
    print("%s不是回文数" %(num))

4. 累加和类型程序:

    1). 求f=1+2+...+9【很简单的问题】

b = 0
for i in range(1,10):
        b += i
print(b)

    

2). 求f=1-2+3-4+...+9【在(一)的基础上,学习如何一正一负地累加】

b = 0
c = 0
for i in range(1,10,2):
        b += i
for i in range(2,10,2):
        c -= i
d = b + c 
print(d)

  

 3). 求f=1-1/2+1/3-1/4+...+1/9【在(二)的基础上,被加数成了自然数的倒数】

  

b = 0
c = 0
for i in range(1,10,2):
        b += 1/i
for i in range(2,10,2):
        c -= 1/i
d = b + c
print(d)

 

4). 求f=1!-2!+3!-4!+...+9!【在(二)的基础上,被加数成了自然数的阶乘】

b = 0
c = 0
for i in range(1,10,2):
    e = 1
    for a in range(1,i+1):
        e *= a
    b += e
for i in range(2,10,2):
    e = 1
    for f in range(1,i+1):
        e *= f
    c -= e
d = b + c
print(d)

5. 控制台输出九九乘法表

for i in range(1,10):
    for n in range(1,10):
        if i <= n:
            print("%s×%s=%s" %(i,n,i*n),end=' ')
    print()

猜你喜欢

转载自blog.csdn.net/zcx1203/article/details/81607435