Python循环分支结构例题

本文通过多个实例展示了Python中的循环与分支结构,包括判断质数、生成九九乘法表、计算三角形周长和面积、找出水仙花数和完美数等。同时,还涉及到了字符串反转、猜数字游戏以及计算组合数等算法。每个例子都注重代码的可读性和效率,适合初学者理解和练习。
摘要由CSDN通过智能技术生成

Python循环分支结构例题

一、输入一个正整数,判断它是不是质数(只能被1和自身整除的数)

count = int(input('请输入一个正整数:'))
is_prime = True
for i in range(2, count):
    if count % i == 0:
        is_prime = False
        break
if is_prime:
    print(f'{count}是质数')
else:
    print(f'{count}不是质数')

在这里插入图片描述

升级训练 :判断1~100内的质素

for num in range(2,100):#嵌套循环  第一个循环选出数2到99的数字
    is_prime = True
    for i in range(2,num):
#第二个循环判断第一个循坏选出的数是否为质素 注意range(2,num)
        if num %i==0:
            is_prime = False
            break
    if is_prime:
        print(num,end=' ')

在这里插入图片描述

二、输入三角形三条边的长度,如果能构成三角形就计算周长和面积,如果不能构成三角形,提示用户重新输入,直到正确。

import math
while True:#死循环 可用break 跳出循环
    a = float(input(('a = ')))
    b = float(input(('b = ')))
    c = float(input(('c = ')))
    if a+b >c and a+c>b and b+c>a  :
        perimeter = a+b+c
        half =perimeter/2#海伦公式
        area =math.sqrt(half*(half-a)*(half-b)*(half-c))
        print(f'周长为{perimeter}')
        print(f'面积为{area}')
        break   #  满足条件跳出循环,不满足执行else 语句 继续循环
    else:
        print('不能构成给三角形请重新输入')

在这里插入图片描述

三、九九乘法表(循环嵌套案例)

n控制输出规模

n = int(input('n='))
for i in range(1,n+1):#i 表示行 
    for j in range(1,i+1):#j表示列
        f=i*j
        print(f'{i}x{j}={f}',end='  ')
    print()      # 换行的作用

在这里插入图片描述

四、找出100-999之间的水仙花数

水仙花数(各位数字的立方和刚好等于这个数本身)
如:153=13+53+3^3

for num in range(100,1000):
    bw=num //100   #百位
    sw=num//10%10  #十位
    gw=num%10      #个位
    if bw**3+sw**3+gw**3==num:
        print(num)      

在这里插入图片描述

五、输入一串数字让它反向输出

在不使用字符串相关知识的前提下写出程序
如:123456 —>654321

1234 输出 4321
n = int(input('n='))
total = 0
while n > 0:
    total = total * 10 + n % 10
    n //= 10  #n=n//10
print(total)

在这里插入图片描述

六、找出1-10000之间的完美数

完美数(除自身外所有因子的和等于这个数)
如: 6=1+2+3
28=1+2+4+7+14

import time
start = time.time()#查看代码执行时间
for i in range(2, 10001):
    temp = 1
    for j in range(2, int(i ** 0.5)+1):#因为是因子前后都有相同的所以i**0。5砍掉一些提高运行效率
        if i % j == 0:
            temp += j
            if i != i // j:
                temp += i // j#前段和后段 不相同才能相加
    if temp == i:
        print(i)
end = time.time()
print(f'执行时间: {end - start:.3f}秒')

在这里插入图片描述

七、输入m和n(m>=n),计算C(m,n)的值—m!/(n!*(m-n)!

输入m和n(m>=n),计算C(m,n)的值—m!/(n!*(m-n)!)

也可加if先判断m和n的大小

from math import factorial as f#factorial是库math中求阶乘的函数
m = int(input('请输入一个正整数m = '))
n = int(input('请输入一个正整数(小于m)n = '))
x1 = 1
x2 = 1
x3 = 1
for i in range(1, m + 1):   
    x1 *= i
    pass
for j in range(1, n + 1):
    x2 *= j
    pass
for q in range(1, m - n + 1):
    x3 *= q
    pass
print(x1 / x2 / x3)
print(f(m) / f(n) / f(m - n))

在这里插入图片描述

八、猜数字游戏

计算机产生一个1-100的随机数,人输入自己猜的数字
计算机给出对应的提示“大一点”,“小一点”或恭喜你猜对了“,直到猜中为止。
如果猜的次数超过7次,计算机温馨提示”智商余额明显不足“。

import random
answer = random.randrange(1, 101)
while True:
    a = True
    for _ in range(1, 8):
        num = int(input("请输入猜的数字:"))
        if num > answer:
            print('大了一点')
            a = False
        elif num < answer:
            print('小了一点')
            a = False
        else:
            print('猜对了')
            a = True
            break
    if  a :
        break
    else:
         print('智商余额明显不足')

二分法输入数字确定区间 第一次输入50 如果太大则输入25,太小则输入75 一次确定最终确定值
在这里插入图片描述

九、输入十个大于0的整数,1到100之间,找到平均值,最大值,最小值

输入十个大于0的整数,1到100之间,找到平均值,最大值,最小值

total = 0
x = 0
y = 101
for _ in range(1, 11):
    a = int(input('请输入10个0~100之间的整数'))
    total = total + a
    if a >= x:   #做最大比较
        x = a    #做最小比较
    elif a <= y:
        y = a
average = total / 10
print(f'平均数为{average}最大值为{x}最小值为{y}')

在这里插入图片描述
请各位大佬批评指正及优化

  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值