python分支结构和循环结构编写的图案,python的分支结构
分支和循环结构的重要性不言而喻。是是构造程序逻辑的基础,对于初学者来说也是比较难的部分。大部分初学者在学习分支和循环之后,都能理解它们的用途和用法,但是遇到实际问题就无从下手了。看懂别人的代码很容易,但是要自己写出同样的代码却又很难。如果你也有同样的问题和困惑,不要沮丧。只是因为你才刚刚开始你的编程之旅,你的练习量还没有达到让你可以随心所欲的写出代码的程度。只要你加强编程实践,这个问题迟早会解决的。下面是一些经典案例。
经典案例例1:寻找水仙花的数量。说明:水仙花数又称超完备数不变量、自恋数、自幂数、阿姆斯特朗数。它是一个3位数的数,数的每一位数的立方之和正好等于它本身,例如:13 53 33=153。
这个题目的关键是把一个三位数拆分成一位数、十位数和一百位数。这实际上很容易通过使用Python中的//(可分的)和%(模块化)操作符来实现。代码如下所示。
找出所有水仙花 for num in range (100,1000):low=num % 10 mid=num//10% 10 high=num//100 fnum==low * * 3 mid * * 3 high * * 3:print(num)above using//我们要对一个位数未知的正整数求逆,例如,将12345改为54321。我们也可以用这两个操作来实现。代码如下所示。
正整数的求逆 num=int(input( num=))reversed _ num=0 while num:reversed _ num=reversed _ num * 10 num % 10 num//=10 print(reversed _ num)例2:一百块钱和一百只鸡。说明:一百只鸡值一百块钱是中国古代数学家高明的胡萝卜在《算经》一书中提出的一个数学问题:一只鸡翁值五,一只鸡母值三,一只鸡雏值三。一百块钱买一百只鸡,问鸡翁、鸡妈、鸡仔他们几何?翻译成现代汉语:一只公鸡5元,一只母鸡3元,三只鸡1元。用100元买100只鸡,问有多少只公鸡,母鸡,小鸡?
《百钱百鸡》问题 #假设公鸡的个数为X,X的取值范围为0到20 for range(0,21): #假设母鸡的个数为Y,Y的取值范围为0到33 for range(0,34):z=100-X-Y if 5 * X 3 * Y z//3==100 and z % 3==0:print(f 公鸡:{x}母鸡:{y}小鸡:{z}小鸡)方法该方法逐一列举备选方案中所有可能的候选项并检查每个候选项是否符合问题的描述,最终得到问题的解。这种方法看起来很别扭,但对于计算能力非常强大的计算机来说,通常是可行的,甚至是不错的选择。只要问题的解决方案存在,就能找到。
例子3:掷骰子赌博游戏。穷举法:掷骰子(CRAPS)又称花旗掷骰子(Citi Craps),是美国拉斯维加斯一种非常流行的桌上赌博游戏。游戏使用两个骰子,玩家可以通过摇动骰子来获得点数。简化的规则是:如果玩家在7点或11点第一次摇骰子,玩家获胜;如果玩家第一次摇出2、3、12点,yxdhn;如果玩家摇其他点,玩家继续掷骰子;如果玩家摇7分,yxdhn;如果玩家摇到第一次摇的点数,玩家获胜;其他计数玩家继续掷骰子,直到分出胜负。
骰子赌博游戏。我们在游戏开始时设定玩家有1000元的赌注,游戏结束的条件是玩家破产(输掉所有赌注)。”从随机导入randint money=1000 while money 0:print(f 您的总资产为:{money}元)Go_on=False #下注金额必须大于0但小于或等于玩家的总资产while True:debt=int(input( please Bet:))if 0 debt=money:break #第一次下注#用从1到6均匀分布的随机数模拟waggons获得的点数First=randint (1,6) randint (1,6)print(f \ n玩家抖出{ 1\n )钱=债elif first==2或first==3或first==12: print(yxdhn!\ n )money-=debt else:go _ on=true #第一次掷骰子没有赢得游戏。继续而go _ on:go _ on=false current=randint(1,6) randint (1,6) print (f 玩家抖出{current}点)if current==\ n )money-=debt elif current==first:print(玩家赢!\ n )money=debt else:go _ on=true print(你破产了,游戏结束!例4: kddst序列。暴力搜索法:斐波那契数列,又称黄金分割数列,是意大利数学家kddst(Leonardoda Fibonacci于《计算之书》年推出的一个数列,用来研究理想假设下兔子的生长速度。因此,这一序列常被称为“兔序列”。kddst序列的特点是序列的前两个数都是1。从第三个数开始,每个数都是前两个数的和。按照这个规律,kddst序列的前10个数字是:1,1,2,3,5,8,13,21,34,55。Kddst序列在现代物理、准晶结构、化学等领域有着直接的应用。
输出kddst数列的前20个数 #前两个数是1a,b=1,1print(a,b,end= )#用递归公式计算_ inrange (18)的后18个数:a,b=b,a bprint (b,end= )例5说明:质数是指只能被1和自身整除的正整数(不包括1)。
对于范围(2,100)中的num,输出100以内的质数:#假设num是质数is_prime=True #对于范围(2,num)中的因子,找出num在2和num-1之间的因子:#如果找到num的因子,如果num% factor==0,则num不是质数:is _ prime=false break #如果布尔值为True,则它是质数is_prime: print(num)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。