轩辕的第三篇博文

2024-05-02 22:58
文章标签 第三篇 博文 轩辕

本文主要是介绍轩辕的第三篇博文,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

学习python的第三天?

(越来越发现自己像个猪一样,赖以言教却又不由分说~~~~)

Day04 - 循环结构

循环结构的应用场景

如果在程序中我们需要重复的执行某条或某些指令,例如用程序控制机器人踢足球,如果机器人持球而且还没有进入射门范围,那么我们就要一直发出让机器人向球门方向奔跑的指令。当然你可能已经注意到了,刚才的描述中其实不仅仅有需要重复的动作,还有我们上一个章节讲到的分支结构。再举一个简单的例子,比如在我们的程序中要实现每隔1秒中在屏幕上打印一个hello, world这样的字符串并持续一个小时,我们肯定不能够将print(‘hello, world’)这句代码写上3600遍,如果真的需要这样做那么编程的工作就太无聊了。因此,我们需要了解一下循环结构,有了循环结构我们就可以轻松的控制某件事或者某些事重复、重复、再重复的发生。在Python中构造循环结构有两种做法,一种是for-in循环,一种是while循环。


for-in循环

例题1:
如果明确的知道循环执行的次数或者是要对一个容器进行迭代(后面会讲到),那么我们推荐使用for-in循环,例如下面代码中计算\sum_{n=1}^{100}n。

#用for循环实现1~100求和
sum = 0
for x in range(101):sum += x
print(sum)

需要说明的是上面代码中的range类型,range可以用来产生一个不变的数值序列,而且这个序列通常都是用在循环中的,例如:

  • range(101)可以产生一个0到100的整数序列。
  • range(1, 100)可以产生一个1到99的整数序列。
  • range(1, 100, 2)可以产生一个1到99的奇数序列,其中的2是步长,即数值序列的增量。
    知道了这一点,我们可以用下面的代码来实现1~100之间的偶数求和。

例题2:

sum = 0
for  x in range(2,100,2):sum += x
print(sum)

例题3:
也可以通过在循环中使用分支结构的方式来实现相同的功能,代码如下所示。

sum = 0
for x in range(101):if x % 2 == 0:sum += x
print(sum)

while循环

如果要构造不知道具体循环次数的循环结构,我们推荐使用while循环,while循环通过一个能够产生或转换出bool值的表达式来控制循环,表达式的值为True循环继续,表达式的值为False循环结束。下面我们通过一个“猜数字”的小游戏(计算机出一个1~100之间的随机数,人输入自己猜的数字,计算机给出对应的提示信息,直到人猜出计算机出的数字)来看看如何使用while循环。

例题1:
#猜数字游戏
#计算机出一个1~100之间的随机数由人来猜
#计算机根据人猜的数字分别给出提示大一点/小一点/猜#对了

import random
answer = random.randint(1, 100)
counter = 0
while True:counter += 1number = int(input('请输入: '))if number < answer:print('大一点')elif number > answer:print('小一点')else:print('恭喜你猜对了!')break
print('你总共猜了%d次' % counter)
if counter > 7:print('你的智商余额明显不足')

说明:上面的代码中使用了break关键字来提前终止循环,需要注意的是break只能终止它所在的那个循环,这一点在使用嵌套的循环结构(下面会讲到)需要引起注意。除了break之外,还有另一个关键字是continue,它可以用来放弃本次循环后续的代码直接让循环进入下一轮。

练习题1:
#用户只能输入五次密码,如果密码错误则锁定账号

mima = 123456
input_ = int(input('请输入密码>>:'))for i in range(4):if input_ == mima:print('OK')breakelse:print('密码错误,请尝试重新输入')input_ = int(input('请输入密码>>:'))
else:print('账号锁定,请移步至柜台你个傻X..')

练习题2:
#生成一定范围内的4位数字验证码,3次机会

iimport random
for i in range(3):yanzhengma = random.randrange(1000,9999)print('验证码为: %d' % yanzhengma)yanzheng = int(input('请输入验证码>>:'))if yanzheng == yanzhengma:print('欢迎您,您真是一个小天才!真棒?')breakelse:print('验证码错误,你真是头猪?')

——————————————————————————————————————————————————————————————————————————————————————————————————
回顾一下习题:

![在这里插入图片描述]
第一题代码:
import math
a,b,c=map(float,input(‘Enter a,b,c:’).split(’,’))
root_=(bb)-(4ac)
if root_>0:
root_1=(-b+math.sqrt(b
b-4ac))/2a
root_2=(-b-math.sqrt(b
b-4ac))/2a
print(‘The roots are %f and %f’%(root_1,root_2))
elif root_==0:
root_1=(-b+math.sqrt(b
b-4ac))/2*a
print(‘The root is %f’%root_1)
else:
print(‘The equation has no real roots’)

在这里插入图片描述
第二题代码:
import random
num1=random.randint(0,100)
num2=random.randint(0,100)
print(num1,num2)

sum=num1+num2

sum_=int(input(‘请输入两个数的和:’))
if sum_==sum:
print(‘正确’)
else:
print(‘错误’)

第三题代码:
today=int(input(‘Enter today:’))
day_num=int(input(‘Enter the number of days elapsed since today:’))
week=[‘Sunday’,‘Monday’,‘Tuesday’,‘Wednesday’,‘Thursday’,‘Friday’,‘Saturday’]
futureweek=today+day_num
now=0
now=futureweek%7
print(“Today is %s and the future day is %s”%(week[today],week[now]))
在这里插入图片描述
第四题代码:
num1,num2,num3=map(int,input(‘请输入三个整数:’).split(’,’))
x=[num1,num2,num3]
x.sort()
print(x)

第五题代码:
weight_1,price_1=map(float,input(‘Enter weight and price for package1:’).split(’,’))

weight_2,price_2=map(float,input(‘Enter weight and price for package2:’).split(’,’))
vaule_1=weight_1/price_1
vaule_2=weight_2/price_2

if vaule_1>vaule_2:
print(‘Package1 has the better price’)
elif vaule_1==vaule_2:
print(‘same’)
else:
print(‘Package2 has the better price’)

第六题代码:
year,month=map(int,input(‘输入年份和月份:’).split(’,’))

if (year % 40 and year %100 !=0 )or (year%4000):
day_=int(‘29’)
else:
day_=int(‘28’)

if month1 or month3 or month5 or month7 or month8 or month10 or month12:
day=int(‘31’)
elif month
4 or month6 or month9 or month==11:
day=int(‘30’)
else :
day=day_

print(’%d 年%d月份有%d天’%(year,month,day))

第七题代码:
import numpy as np
computer=np.random.choice([‘正面’,‘反面’])

hum=input(‘请输入你的选择:’)
print(computer)
if computer == hum:
print(‘正确’)
else:
print(‘错误’)
在这里插入图片描述
第八题代码:
import random

s=int(input('剪刀(0), 石头(1), 布(2): '))
i=random.randint(0,2)

print(i)
if (s == 0 and i == 2) or (s == 1 and i == 0) or (s == 2 and i == 1):
print(‘You won.’)
elif s==i:
print(‘ping’)
else:
print(‘Loser’)

在这里插入图片描述
第九题代码:
y=int(input(‘Enter year:(e.g.,2008):’))
m=int(input(‘Enter month:1-12:’))
d=int(input(‘Enter the day of the month:1-31:’))
a=[‘Saturday’,‘Sunday’,‘Monday’,‘Tuesday’,‘Wednesday’,‘Thurday’,‘Firday’]
if m1:
m=13
y=y-1
if m
2:
m=14
y=y-1
h=int(d + ((26 * (m + 1) ) // 10) + (y % 100) + ((y % 100) / 4) + ((y // 100) / 4) + 5 * y // 100) % 7
o=a[h]
print(‘Day of the week is %s’%o)

在这里插入图片描述
第十题代码:
import numpy as np
daxiao=np.random.choice([‘Ace’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’,‘8’,‘9’,‘10’,‘Jack’,‘Queen’,‘King’])
huase=np.random.choice([‘梅花’,‘红桃’,‘方块’,‘黑桃’])
print(‘你选择的牌是’,huase,daxiao)

第十一题代码:
num=int(input(‘输入一个三位整数:’))
bai=num//100
shi=num//10%10
ge=num%10
if bai==ge:
print(‘是回文数!’)
else:
print(‘不是回文数’)

第十二题代码:
a,b,c=map(float,input(‘Enter three edges:’).split(’,’))
if (a+b)>c and (a+c)>b and (b+c)>a:
print(‘The perimeter is %.0f’%(a+b+c))
else:
print(‘不合法’)

——————————————————————————————————————————————————————————————————————————————————————————————————

这篇关于轩辕的第三篇博文的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/955320

相关文章

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

系统架构师考试学习笔记第三篇——架构设计高级知识(19)嵌入式系统架构设计理论与实践

本章考点:         第19课时主要学习嵌入式系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分)。在历年考试中,案例题对该部分内容都有固定考查,综合知识选择题目中有固定分值的考查。本课时内容侧重于对知识点的记忆、理解和应用,按照以往的出题规律,嵌入式系统架构设计基础知识点基本来源于教材内。本课时知识架构如图19.1所示。 一、嵌入式系统发展历程

系统架构师考试学习笔记第三篇——架构设计高级知识(18)面向服务架构设计理论与实践

本章考点:         第18课时主要学习面向服务架构设计理论与实践。根据考试大纲,本课时知识点会涉及单选题型(约占2~5分)和案例题(25分),本课时内容偏重于方法的掌握和应用,根据以往全国计算机技术与软件专业技术资格(水平)考试的出题规律,概念知识的考查内容多数来源于实际应用,还需要灵活运用相关知识点。         本课时知识架构如图18.1所示。 一、SOA的相关概念 (

Oracle数据库(函数(不包括自定函数,自定义函数会单独在后面博文中说明)、Oracle中select语法讲解)

引用、推荐博客: http://www.cnblogs.com/qingxinblog/p/4154228.html(函数练手敲代码博客推荐) http://blog.csdn.net/jian200801/article/details/7558292(自定义函数实例) http://www.cnblogs.com/vic_lu/archive/2010/08/28/1811097.ht

鸿蒙开发基础知识-页面布局【第三篇】

层叠布局 Stack 容器内的子元素的顺序为Item1->Item2->Item3 越往后层级越高,当然zIndex()也是可以修改层级的 demo code 上难度 底部布局解析 上代码 底部布局 :利用layoutWeight(1) 等份 将来需要增加或者删除模块 也不会影响布局 利用`alignContent:Alignment.Bottom`底部对齐@En

Hexo博文发布管理工具分享出来啦

从此刻起,小白也能搭建自己的博客 说些什么呢? 之前为朋友写的一个Hexo博客发布与管理工具,只需要点点鼠标即可实现对Hexo博文的管理,从此告别各种难记的cmd命令!!赠人玫瑰,手有余香。 实现功能 创建博文,修改名称,删除文章,复制,粘贴,剪切,本地部署调试,重新生成,远程部署。等功能。之后会根据需求进行更新。也欢迎提出宝贵意见。 如何使用 终于进入正题了: 首先第一

Android窗口系统第三篇---WindowManagerService中窗口的组织方式

Android窗口系统第一篇—Window的类型与Z-Order确定 Android窗口系统第二篇—Window的添加过程 上面文章梳理了一个窗口的添加过程,系统中有很多应用,每个应用有多个Activity,一个Activity上有一个Window,WindowManagerService是怎么管理的?先adb shell dumpsys activity查看一下Activity. Di

系统架构师考试学习笔记第三篇——架构设计高级知识(10)系统质量属性与架构评估

本章知识点:         第10课时主要学习软件系统质量属性、系统架构评估以及ATAM方法评估实践等内容。         本课时内容侧重于概念知识,根据以往全国计算机技术与软件专业技术资格(水平)。考试的出题规律,考查的知识点多来源于教材,扩展内容较少。根据考试大纲,本课时知识点会涉及单项选择题(约占8~15分)和下午案例题(25分),论文也会有覆盖。本课时知识架构如图10.1所示。

Linux系统移植博文导航

Linux系统移植专栏更新很久了,博主今天就把以前的博文整理一下,希望对感兴趣的朋友有所帮助,在此感谢CSDN这个平台给出了这个一个交流的机会,也感谢大家的支持。 Linux相关的网站 U-Boot Linux内核 busybox Linux系统移植 Linux系统移植-前言 第1章 环境搭建(Exynos4412+U-boot2013.1) 第1章 环境搭建(imx283)

OpenCV 开发笔记博文导航

自博主更新该专栏也很久了,博主今天就把以前的博文整理一下,希望对感兴趣的朋友有所帮助,在此感谢CSDN这个平台给出了这个一个交流的机会,也感谢大家的支持。 OpenCV相关的网站 OpenCV官网 OpenCV参考文档 OpenCV中文论坛 OpenCV源码-Github Learn OpenCV官网 OpenCV开发笔记 第一部分 环境搭建 【第一部分-环境搭建】Opencv环