您的位置:首页 > 编程语言 > Python开发

python编程入门之三:条件和循环

2020-05-31 15:33 369 查看

第三章 条件和循环

3.1 改进数字游戏---if语句

还记不记得我们在第一章开始就写好的一个“小游戏”,我们把它再列出来看看。

# ----猜数字游戏----
num = input("猜猜我心里想的是哪个数字?")
guess = int(num)
if guess == 6:
print("恭喜你猜对了,真厉害")
else:
print("猜错了,真low")
---------------------

让我们仔细的讲一下if这个语句的用法,“if”众所周知,在英语里是如果的意思,“如果”你有一个苹果,那请给我。。。对吧,这里如果之后的语句就是一个起判断作用的句子,也是后面的话执行的一个条件,这里其实也体现出了python的灵魂---缩进,在python中,不需要像其他语言一样,需要用花括号来体现一个条件的作用范围,在这里,一个缩进就足够了。
那么我们是不是可以做以下改进,让它更人性化一些呢?

# ----猜数字游戏-第一次修改----
num = input("猜猜我心里想的是哪个数字?")
guess = int(num)
if guess == 6:
print("恭喜你猜对了,真厉害")
if guess > 6:
print("错了,错了,猜大了")
if guess < 6:
print("错了,错了,猜小了")
---------------------------

这样是不是就会把你猜的结果和答案对比,并输出你错误的原因呢,但这里使用了三个if判断语句,也就是说,程序在运行的时候会依次遍历这三个if,及时第一个if符合判断,程序还是会遍历下面的if,这可是给系统带来了一定的压力,所以呢,做以下改进。

# ----猜数字游戏-第一次修改----
num = input("猜猜我心里想的是哪个数字?")
guess = int(num)
if guess == 6:
print("恭喜你猜对了,真厉害")
elif guess > 6:
print("错了,错了,猜大了")
else:
print("错了,错了,猜小了")
---------------------------

我们把第二个if改成了“elif”,其实就是“else if”的缩写,这样的话如果判断满足第一个if条件,就不会再向下执行了,所以建议大家使用这种形式。

3.2 while循环语句

while是什么,字面意思是“当什么什么的时候”,感觉好像也是一个判断语句,但实际上它if判断语句要高级一些,因为如果条件满足它会一直的执行然后再判断再执行,while是个“无底洞”,如果代码出现失误,它会使程序无限的循环,进而进入“死循环”。下面看一个例子,但不要尝试运行。

# 布尔类型True,代表条件为真。
while True:
print("进入死循环啦")

那我们是否可以改进我们之前的数字游戏呢,很简单:

# ----猜数字游戏-第二次修改----
while True:
num = input("猜猜我心里想的是哪个数字?")
guess = int(num)
if guess == 6:
print("恭喜你猜对了,真厉害")
elif guess > 6:
print("错了,错了,猜大了")
else guess < 6:
print("错了,错了,猜小了")
---------------------------

只需要在整个程序前加一个while True死循环就可以一次一次又一次的执行这个程序了,只要你不强制结束,他就永存不朽,所以while循环的常见格式就是:

while 条件:
循环体

3.3 for循环与range()函数

我们已经有了while循环,但毕竟while并不是万能的,有一些情况下while处理不了的循环,用了for你会感觉,嗯~真方便,比如我们创建一个字符串,然后用for循环将每个字符一个一个的输出:

string = "I Love Python!"
for each in string:
print(each)

运行一下结果,是不是已经成功的将每个字符输出了呢。
然后我们结合range来讲一下这两个小伙伴是怎么搭配使用的?range是范围的意思,一般的用法格式为:

range(start, stop, step)
# start是这个范围的开始,stop是这个范围的结束,step代表步数。
#范围包括start但不包括stop

所以有了range这个小伙伴,for才可以用的如鱼得水,来看下面的例子吧。

for each in range(1,10,2):
print(each)

打印结果是不是这样:

1
3
5
7
9

首先要知道在range(1,10)里面是包括1但不包括10的,同时step代表的步数也一清二楚了吧,代表跳几步然后输出,感受一下这个循环吧,是不是这样就可以改进我们的数字游戏,让它随我们的意愿执行多少次呢?录入下面的代码看一下吧。

# --------猜数字游戏-第三次修改--------
n = int(input("请输入要猜的次数:"))
for i in range(n):
num = input("猜猜我心里想的是哪个数字?")
guess = int(num)
if guess == 6:
print("恭喜你猜对了,真厉害")
elif guess > 6:
print("错了,错了,猜大了")
else guess < 6:
print("错了,错了,猜小了")
---------------------------

运行一下,是不是可以随心所欲的来修改猜数字的次数了呢。

3.4 break语句

我们知道既然有了循环语句,那么程序就可以一直不断的循环运行,那么我们如果要打断它,除了给它加一个循环条件之外,还有没有其他的方法,毕竟跳出循环的应用场景有很多,如果根据需求想在循环体内部跳出呢?
这里我们就要介绍一个同样经常用到的break语句,用来从循环体内部跳出循环,也就是说,如果在循环体内部,如果你想当满足一个条件时,跳出循环,直接写一个break就够了,我们对猜数字游戏再进行一次修改:

# --------猜数字游戏-第四次修改--------
n = int(input("请输入要猜的次数:"))
for i in range(n):
num = input("猜猜我心里想的是哪个数字?")
guess = int(num)
if guess == 6:
print("恭喜你猜对了,真厉害")
break
elif guess > 6:
print("错了,错了,猜大了")
else guess < 6:
print("错了,错了,猜小了")
---------------------------

看到差别了吗,一个简单的break语句,当年猜对了之后不会让你继续猜(猜对了,还要猜,这逻辑不对吧),而是输出“恭喜你猜对了,真厉害”之后跳出循环,好啦,这个猜数字游戏基本已经完善了,快让它运行起来吧。

3.5 continue语句

我们再来补充一个continue语句,虽然不常用,但毕竟有些情况下必须要用,continue是继续的意思,一般也是运用在循环语句呢,跟break正是一对相反的老冤家。这个语句的作用是,终止本次循环,并开始下一轮循环,是不是有点懵,先看一下下面的例子吧

for i in range(10):
if i % 2 == 0:
print(i)
continue
i += 2
print(i)

会输出怎样的结果?录入下来然后自己努力去理解一下吧。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: