for循环
python中的for循环和C语言for循环不一样。
龟叔在设计python时,尽可能的减少重复的各种语法,所以将其他编程语言的三种循环减少到一种,就是while循环,设计是发现了新的问题,无法遍历无序数据,就引入了for循环,该for循环是一种迭代的概念,能够迭代无序数据,完成无序数据的遍历。
有序数据的遍历:
a = [1, 2, 3, 555, 5] >>> i = 0 >>> len(a) 5 >>> i = 0 >>> while i < len(a): ... print(a[i]) ... i += 1 ... 1 2 3 555 5
在开发中,存在一种无序的容器【哈希表】,不能使用下标,就无法使用下标来遍历:
s = {1, 2, 3, 555, 5} >>> i = 0 >>> while i < len(s): ... print(s[i]) ... i += 1 ... Traceback (most recent call last): File "<stdin>", line 2, in <module> TypeError: 'set' object is not subscriptable
for的语法结构:
for 临时变量 in 容器: # 每一次循环时,迭代出的子元素,会临时的保存在临时变量中 [else: # 只有循环正常结束,才会进入else中 ]
>>> for i in s: ... print(i) ... 16 1 2 3 5 10 555
当然也可以迭代有序的:
>>> for _ in a: ... print(_) ... 1 2 3 555 5
在for被创建之后,发现一个问题,for一般和容器配合使用,想要直接进行循环运算反倒比较麻烦,如:求1~100的和。
range函数
range是一个全局函数,是python提供给for循环使用,用来加强for循环的使用。
range返回可迭代对象。是一个范围内的可迭代对象。
-
range(num) # [0, num) 区间内的所有整数
-
range(start, end) # [start, end) 区间内的所有整数
-
range(start, end, step) # step表示步长,默认是1,可以自定义,可以是负数,如果是负数,表示减
>>> # 0~10的和 >>> s = 0 >>> for i in range(11): ... print(i) ... 0 1 2 3 4 5 6 7 8 9 10 >>> for i in range(11): ... s += i ... >>> s 55 >>> # 10 ~ 20 >>> for j in range(10, 21): ... print(j) ... 10 11 12 13 14 15 16 17 18 19 20 >>> # 10 ~ 20 的偶数 >>> for i in range(10, 21): ... if i % 2 == 0: ... print(i) ... 10 12 14 16 18 20 >>> for i in range(10, 21, 2): ... print(i) ... 10 12 14 16 18 20 >>> for i in range(10, -1, -1): ... print(i) ... 10 9 8 7 6 5 4 3 2 1 0 >>> for i in range(10, 0, -1): ... print(i) ... 10 9 8 7 6 5 4 3 2 1
课堂案例练习:
-
使用for循环输出九九乘法表
-
使用for求出50~100的奇数和和偶数和
-
输入一个正整数(>1),判断该数是否是质数
-
输入行数,在控制台上输出对应的图案
* *** ***** ******* ********* * ** *** **** ***** * *** ***** ******* ********* ********* ******* ***** *** * * *** ***** ******* ********* ******* ***** *** * * * * * * * * * * * * * * * * * * *** * * * * * * ********* * * * * * * *** *
-
存在一个三位数ABC,这个数的个位是3,十位是个位的倍数,百位都等于个位和十位之和,求符合条件的所有三位数Python实现
-
鸡兔同笼问题:有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔
-
猜数字游戏: 电脑随机生成一个0~100这个范围内的整数,用户来猜,会给对应的提示
-
计算器: 请输入两个数和一个符号,完成两个数的+ - * / % // **
-
让用户输入一个月份,判断这个月是哪个季节?假定3到 4月是春季,5到8月是夏季,9到10是秋季,11、12、1、2 月是冬季
-
提示用户输入用户名,然后再提示输入密码,如果用户名 是“admin”并且密码是“88888”,则提示正确,否则,如果 用户名不是admin还提示用户用户名不存在,如果用户名是 admin则提示密码错误。
-
有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是几?
-
编程求一个四位自然数ABCD,它乘以A后变成DCBA
-
用户输入两个数a、b。如果a能被b整除或a加b大于1000,则输出a;否则输出b
-
输入赵本山的考试成绩,显示所获奖励 成绩==100分,爸爸给他买辆车 成绩>=90分,妈妈给他买MP4 90分>成绩>=60分,妈妈给他买本参考书 成绩<60分,什么都不买
-
请输入一个数,判断这个数是偶数还是奇数,如果使用偶数,请判断从1到该数是3的倍数有哪些,如果是奇数,请判断从1到该数是5的倍数有哪些
-
输入三边的长度,求三角形的面积和周长(海伦公式)
-
某商店T恤的价格为35元/件(2件9折,3件以上8折),裤子的价格为120 元/条(2条以上9折).小明在该店买了3件T恤和2条裤子,请计算并显示小明应该付多少钱?
-
输入一个年份,判断该年是否是闰年
图一:
图二:
图三:
图四:
图五:
图六:
作业5:
作业6:
作业7:
作业8:
作业9:
作业10:
作业11:
作业12:
作业13:
作业14:
作业15:
作业16:
作业17:
作业18: