条件语句(if...else... if...elif...else)和循环语句(for...in... while)的应用案例

本文介绍了七个Python编程的基础练习,包括判断质数、寻找完美数、猜数字游戏、打印水仙花数、解决百钱买百鸡问题、绘制三角形和菱形。这些练习覆盖了基本的循环、条件判断以及数学算法的应用,有助于提升Python编程技能。
摘要由CSDN通过智能技术生成

1、判断是否为质数

质数又称为素数,指在一个大于1的自然数中,除1和此整数自身外,不能被其他自然数整除的数。

a=int(input("请输入一个整数:"))
if a>1:
    for i in range(2,a):
        if a%i==0:
            print("{}不是质数".format(a))
            print("{}*{}={}".format(i,a//i,a))
            break
    else:
        print("{}是质数".format(a))
else:
    print("{}不是质数".format(a)) 
--------------------------------------------------------
输出结果:
请输入一个整数:8
8不是质数
2*4=8
请输入一个整数:2
2是质数
请输入一个整数:1
1不是质数

2、寻找100以内的完美数

数学里有一种特殊的自然数叫完美数,完美数的真因子(即除了自身以外的约数) 的和,恰好等于它的本身。比如6的因数有1,2,3,6,这几个因数的关系是:1+2+3=6.像6这样的数就叫完美数。
利用双重循环来实现,外循环是1到100逐一测试,内循环是求每一个真因子的和。当内循环结束时,判断真因子的和是否等于这个数的本身,如果相等,那么这个数就是完美数。

for i in range(1,101): # 遍历100以内的每个数字
    num=0
    for j in range(1,i): 
       	if i%j==0: #寻找真因子
            num +=j
    if i==num: #判断真因子的和是否等于这个数的本身
        print(i,"是完美数")
-------------------------------------
输出结果:
6 是完美数
28 是完美数

3、猜数字游戏

预设一个0-9之间的整数,让用户通过键盘输入所猜的数字,如果大于预设的数,显示“遗憾,太大了”;小于预设的数,显示“遗憾,太小了”,如此循环,知道猜中该数,显示“预测N次,你猜中了!”,其中N是用户输入数字的次数。

import random
x=random.randint(0,9)
N=0
while True:
    player=eval(input("请输入要猜测的数字:"))
    N +=1 #累计猜测次数
    if player == x:
        print("恭喜你,猜对了,您一共猜了{}次".format(N))
        break
    elif player > x:
        print("很遗憾,太大了")
    else:
        print("很遗憾,太小了")
---------------------------------------------------------------
请输入要猜测的数字:4
很遗憾,太小了
请输入要猜测的数字:5
很遗憾,太小了
请输入要猜测的数字:7
恭喜你,猜对了,您一共猜了3

4、打印水仙花数

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

for i in range(100,1000):
    n=i%10 
    m=i//10%10 
    a=i//100%10 
    s=pow(n,3)+pow(m,3)+pow(a,3) 
    if s==i:
        print("{}是水仙花数".format(s))
------------------------------------------------------------
输出结果:
153是水仙花数
370是水仙花数
371是水仙花数
407是水仙花数        

5、百钱买百鸡

公元前5世纪末,我国古代数学家张丘建在他的《算经》一书中提出著名的“百钱买百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?即公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买一百只鸡, 其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文?
利用for循环将公鸡、母鸡、小鸡都全部循环一遍,判断公鸡、母鸡、小鸡总和是否100,且购买公鸡、母鸡、小鸡所有的钱是否花了100钱,最后输出输出公鸡、母鸡、小鸡的数量。

for x in range(0, 100//5+1):
    for y in range(0, 100//3+1):
        for z in range(0, 101):
            if x + y + z == 100 and 5 * x + y * 3 + z / 3 == 100:
                print("公鸡有",x,"只","\t","母鸡有",y,"只","\t","小鸡有",z,"只","\t")
----------------------------------------------------------------------------------------------------
输出结果:
公鸡有 0 只 	 母鸡有 25 只 	 小鸡有 75 只 	
公鸡有 4 只 	 母鸡有 18 只 	 小鸡有 78 只 	
公鸡有 8 只 	 母鸡有 11 只 	 小鸡有 81 只 	
公鸡有 12 只  母鸡有 4 只 	 小鸡有 84

6、打印三角形

在这里插入图片描述
在这里插入图片描述
在星号内循环的前面,先打印空格,然后再打印相应的星号。
可以得出:j<6-i-1;当 i=0 时,j<5,j取值0,1,2,3,4,循环5次,打印5个空格。依次类推。k<2*i+1,当i=0时,k取值0,打印1个星星,当i=1时,k<3,k取值0,1,2打印3个星星,以此类推。

for i in range(6):
    for j in range(5-i):
        print(" ",end=" ") # 打印空格
    for k in range(2*i+1):
        print("*",end=" ") # 打印星星
    print() #换行
----------------------------------------------------
输出结果:
          * 
        * * * 
      * * * * * 
    * * * * * * * 
  * * * * * * * * * 
* * * * * * * * * * * 

7、打印菱形

在这里插入图片描述
上半部分前面已经写完了,下半部分共5行,即 i=5 。有如下的规律
在这里插入图片描述
空格循环,k<i+1,星号内层循环,m<(9-3i)+i。
(9-3
i)+i,是如何得出?通过数学归纳法
在这里插入图片描述

for i in range(6):
    for j in range(5-i):
        print(" ",end=" ")
    for k in range(2*i+1):
        print("*",end=" ")
    print()
for i in range(5):
    for j in range(i+1):
        print(" ",end=" ")
    for a in range((9-3*i)+i):
        print("*",end=" ")
    print()
---------------------------------------------
输出结果:
         * 
        * * * 
      * * * * * 
    * * * * * * * 
  * * * * * * * * * 
* * * * * * * * * * * 
  * * * * * * * * * 
    * * * * * * * 
      * * * * * 
        * * * 
          * 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值