python语法(三)— 循环
上一篇,学习了python的判断语句,了解了python中如何直线分支语句,本文来学习循环语句。python中有两种循环while循环和for循环,当我们不知道循环次数时使用while循环,让我们知道循环次数时使用for循环,下面来介绍具体使用方式。
while 循环
- 语法
while expression :
whileSuite
当expression 条件等于0或者为False时,退出循环。从语法可以看出,while语句其实和java的while语句是差不多的,唯一的区别就是这里的条件是可以为0的。
下面我们看一个简单的实例:
将1-100累加:
# -*- coding: utf-8 -*-
'''
Created on 2018年12月19日
将1-100累加: @author: Herrt灬凌夜
'''
sum = 0;
i = 1;
while i <= 100 :
sum = sum + i;
i = i + 1;
print("1-100的和为:%d" % sum);
- break 语句
break语句为循环语句中的结束语句,和java中的break语句一样,可以直接结束循环语句,而去直接执行循环语句后面的其他语句。
# -*- coding: utf-8 -*-
'''
Created on 2018年12月19日
break语句 @author: Herrt灬凌夜
'''
while True :
n = input("退出(y/n):");
if n == "y" :
break; print("退出");
上面语句,当用户输入y的时候直接退出while循环输出退出,否则会一直让用户进行输入。
- continue 语句
continue语句也是循环结束语句,但是它与break的不同之处在于它只结束当次循环,会继续执行后面的循环语句,当然与java中的continue语句作用也是一致的。
我们来看一个例子:
# -*- coding: utf-8 -*-
'''
Created on 2018年12月19日
continue语句:打印100以内的偶数 @author: Herrt灬凌夜
'''
num = 0;
while num <= 100 :
if num % 2 != 0 :
num = num + 1;
continue
print(num)
num = num + 1
上面语句当num等于奇数时会执行continue,语句,跳出本次循环,所以这里只输出偶数。当然我们可以不使用其中的if语句而是将num = num + 1 直接改为 num = num + 2,但是我在这里这么写只是为了说明continue的作用而已,所以请忽略我智障的写法。
- else 语句
这里的else语句是while的else语句,他在正常的while语句执行结束之后才会去执行,如果是break强制结束while循环,else中的语句也不会执行。
我们可以将第一个例子改造为:
# -*- coding: utf-8 -*-
'''
Created on 2018年12月19日
将1-100累加: @author: Herrt灬凌夜
'''
sum = 0;
i = 1;
while i <= 100 :
sum = sum + i;
i = i + 1;
else :
print("1-100的和为:%d" % sum);
最后我们将昨天的那个猜拳游戏进行改造,当人或者机器谁先达到10分谁赢,并且输入quit可以退出游戏。
# -*- coding: utf-8 -*-
'''
Created on 2018年12月19日
猜拳游戏,当人或者机器谁先达到10分谁赢,并且输入quit可以退出游戏。 @author: Herrt灬凌夜
'''
import random;
computerScore = 0
personScore = 0;
personList = ["石头", "剪刀", "布", "quit"];
computer = random.choice(["石头", "剪刀", "布"]);
personTriumph = [["石头", "剪刀"], ["布", "石头"], ["剪刀", "布"]];
introduce = """
请出拳:
0.石头
1.剪刀
2.布
3.退出游戏
"""; while computerScore < 10 and personScore < 10 :
index = int(input(introduce)); if index not in [0, 1, 2, 3] :
print("输入有误,请重新输入!");
continue; if personList[index] == "quit" :
print("您退出了游戏!");
break; print("你出了%s, 电脑出了%s" % (personList[index], computer)); if personList[index] == computer :
print ("平局");
elif [personList[index], computer] in personTriumph :
print ("你赢了");
personScore += 1;
else :
print ("电脑赢了");
computerScore += 1;
else :
if personScore > computerScore :
print("您当前得分为%s分,电脑得分为%s分,您获胜了!" % (personScore, computerScore));
else:
print("您当前得分为%s分,电脑得分为%s分,电脑获胜了!" % (personScore, computerScore));
for 循环
- for 循环语法
for i in itrtable
suiteToRepeat
for循环需要一个变量i和一个元素,其中i每次循环为itrtable的一个,并且for循环也支持while中的break,continue和else语句。
看个简单的例子:
# -*- coding: utf-8 -*-
'''
Created on 2018年12月19日
for循环 @author: Herrt灬凌夜
'''
for i in "hello" :
print(i)
上面就会依次输出没有个字母,但是会换行输出,如果不想让其换行可以在最后加一个print (i, end = "");
for i in "hello" :
print (i, end = "");
- range 函数
range函数一般与for循环连用,range为循环提供循环条件。在之前的python2.0的时候还有一个xrange的函数,他不会立刻生成一个列表,而是使用了懒加载的方式,这样可以更节省内存,执行效率也更高,但是在python3.0以后将xrange取消了,而是由range直接取代,但是作用其实是range的作用。
range函数语法:
range(start,end,step)
其中startt为起始,end为结束,step为步长。我们看下面几个例子:
# -*- coding: utf-8 -*-
'''
Created on 2018年12月19日
range函数 @author: Herrt灬凌夜
'''
for i in range(10) :
print(i, end = " ");
else :
print(); for i in range(5, 10) :
print(i, end = " ");
else :
print(); for i in range(1, 10, 2) :
print(i, end = " ");
else :
print();
- 列表解析
列表解析是一种非常实用,非常简单,也非常灵活的动态创建列表的方式。
列表解析语法:
[expr for iterVar in iterable]
上述的语法中 expr 表示列表中的每一个成员,也可以是某种公式,而后面的则是一个循环,其实相当于循环去创建一个列表。
我们看下面的例子:
# -*- coding: utf-8 -*-
'''
Created on 2018年12月19日
列表解析 @author: Herrt灬凌夜
'''
print(["hello" for i in range(5)]);
print([i for i in range(5)]);
print([i * i for i in range(5)]);
print([i + (i + 1) for i in range(5)]);
print([i * i for i in range(5, 10)]);
print([i for i in range(0, 10, 2)]);
这样,我们可以生成很多有规律的列表。
- for 循环的几个练习
再简单的语言都离不开练习,没有练习,估计一个星期就会忘干净了,下面就来看几个例子:
1.用户输入一个数字,生成对应长度的斐波那契数列。
# -*- coding: utf-8 -*-
'''
Created on 2018年12月19日
用户输入一个数字,生成对应长度的斐波那契数列。 @author: Herrt灬凌夜
'''
fid = [0, 1];
while True :
num = int(input("请输入斐波那契数列的长度:")) - 2;
if num < 0 :
print("请输入大于2的数字:");
else :
break;
for i in range(num) :
fid.append(fid[-1] + fid[-2]);
else :
print(fid);
2.根据用户输入,显示乘法口诀表。
# -*- coding: utf-8 -*-
'''
Created on 2018年12月19日
2.根据用户输入,显示乘法口诀表。 @author: Herrt灬凌夜
'''
while True :
num = int(input("请输入一个数字:"));
if num < 1 :
print("请输入大于2的数字:");
else :
break;
for i in range(1, num + 1):
for j in range(1, i+1):
print("%sX%s=%s" % (i, j, i * j), end = " ")
print();
今天主要学习了python的循环语句,while循环和for循环,可以在某些场景重复的执行某些代码。在后面还会继续学习python的其他语法。
-------------------- END ---------------------
最后附上作者的微信公众号地址和博客地址
公众号:wuyouxin_gzh

Herrt灬凌夜:https://www.cnblogs.com/wuyx/
python语法(三)— 循环的更多相关文章
- python语法_while循环_for循环
while 循环: while 条件: print('''asdasd') print('''asdasd') print('''asdasd') 当条件为True时,持续循环 当条件为Flase时, ...
- Python语法三
1. from os.path import exists import 了又一个很好用的命令 exists.这个命令将文件名字符串作为参 数,如果文件存在的话,它将返回 True,否则将返回 Fal ...
- Python基础三(选择,循环)
序 首先我们知道程序的执行有三种结构:顺序.选择.循环三种结构,而为了方便我们书写和多次利用我们就需要把一段代码封装器来,这就是方法.今天我就说的是程序的基本结构的格式和方法. 注:所有的程序都可以通 ...
- 写给.NET开发者的Python教程(三):运算符、条件判断和循环语句
本节会介绍Python中运算符的用法,以及条件判断和循环语句的使用方法. 运算符 运算符包括算术运算符.赋值运算符.比较运算符.逻辑运算符等内容,大部分用法和C#基本一致,下面我们来看一下: 算数运算 ...
- PHP语法(三):控制结构(For循环/If/Switch/While)
相关链接: PHP语法(一):基础和变量 PHP语法(二):数据类型.运算符和函数 PHP语法(三):控制结构(For循环/If/Switch/While) 本文我来总结几个PHP常用的控制结构,先来 ...
- Python 基础语法(三)
Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)------------------------- ...
- python第三章:循环语句--小白博客
Python条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python程序语言指定任何非0和非 ...
- 三、Python语法介绍
三.Python语言介绍 3.1.了解Python语言 Python 是1989 年荷兰人 Guido van Rossum (简称 Guido)在圣诞节期间为了打发时间,发明的一门面向对象的解释性编 ...
- [Python笔记][第三章Python选择与循环]
1月28日学习 Python选择与循环 选择结构 多分枝选择结构 if 表达式 1: 语句块 1 elif 表达式 2: 语句块 2 elif 表达式 3: 语句块 3 ... else : 语句块 ...
- 详解Python中的循环语句的用法
一.简介 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性.须重要理解,if.while.for以及与它们相搭配的 else. elif.break.continue和pass语句 ...
随机推荐
- Scala进阶之路-Scala特征类与unapply反向抽取
Scala进阶之路-Scala特征类与unapply反向抽取 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Scala特征类分析 1>.Unit 答:用于定义返回值类型, ...
- Java基础-SSM之Spring快速入门篇
Java基础-SSM之Spring快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java ...
- JavaScript执行优先顺序
js在html中的加载执行顺序 1.加载顺序:引入标记<script />的出现顺序, 页面上的Javascript代码是HTML文档的一部分,所以Javascript在页面装载时执行的顺 ...
- 解决 phpmyadmin #2002 无法登录 MySQL 服务器
将 “phpMyAdmin/libraries”文件夹下的config.default.php文件中的 $cfg['Servers'][$i]['host'] = 'localhost'; 修改为 $ ...
- iOS 自己封装的网络请求,json解析的类
基本上所有的APP都会涉及网络这块,不管是用AFNetWorking还是自己写的http请求,整个网络框架的搭建很重要. 楼主封装的网络请求类,包括自己写的http请求和AFNetWorking的请求 ...
- Linux - sed 文本操作
SED 是一项Linux指令,功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大. sed全称是:Stream EDitor 调用sed命令有两种 ...
- centos7,php7 安装mysqli扩展
首先安装MySQL https://www.cnblogs.com/manzb/p/9560403.html php7安装后没有安装mysqli扩展的话: 安装mysqli扩展 1.到php文件e ...
- linux中使用corntab和shell脚本自动备份nginx日志,按天备份
编写shell脚本,实现nginx日志每天自动备份到指定文件夹! 需要的命令mv , corntab -e(定时任务),shell脚本 这里先说一下corntab: https://www.cnblo ...
- 二、vue中组件的使用
1.组件拆分 1.组件实质上也是一个vue实例,因此组件中也可以使用vue的对象属性,反过来每一个vue实例也是一个vue组件(注:1.唯一不同的是el是根实例的特有选项,2.组件中的data必须是一 ...
- python 列表元组加减乘除法
元组(typle)列表(list)没有减法和除法,但有加法和乘法. 1.加法,即把元素相加.只可以list和tuple相加,不能加其他类型. t= (1, ) + (2, 3, 4) print(t, ...