Python基础4
Python基础4
1. 条件判断语句和循环语句
if条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
if 判断条件:
执行语句……
else:
执行语句……
# 例1:if 基本用法
flag=False
name="sara"
if name=="hellen":
flag=True
print("welcome sara")
else:
print(name)
运行结果:
sara
if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。当判断条件为多个值时,可以使用以下形式:
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
num=0
if num==1:
print("a")
elif num==2:
print("b")
elif num==3:
print("c")
else:
print("hello")
if多个条件
num = 9
if num >= 0 and num <= 10: # 判断值是否在0~10之间
print ("haha")
# 输出结果: haha
2.while 循环
只要符合条件(条件语句返回的是True)则循环执行某个代码段
num = 5
while num < 5:
print (num, " 小于 5")
num = num + 1
else:
print (num, " 大于或等于 5")
运行结果:
5 大于或等于 5
3.for语句
for循环常使用in对序列化对象(如列表、元祖等)进行遍历
for i in range(3):
print(i)
运行结果:
0
1
2
4.break和continue语句
break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行
for letter in 'abc': # 第一个实例
if letter == 'c':
break
print('当前字母为 :', letter)
var = 3 # 第二个实例
while var > 0:
print('当期变量值为 :', var)
var = var - 1
if var == 2:
break
print("Good bye!")
运行结果:
当前字母为 : a
当前字母为 : b
当期变量值为 : 3
Good bye!
continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
for letter in 'abc': # 第一个实例
if letter == 'c':
continue
print('当前字母为 :', letter)
var = 3 # 第二个实例
while var > 0:
print('当期变量值为 :', var)
var = var - 1
if var == 2:
continue
print("Good bye!")
运行结果:
当前字母为 : a
当前字母为 : b
当期变量值为 : 3
当期变量值为 : 2
当期变量值为 : 1
Good bye!
5.容器(container)
容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in关键字判断元素是否包含在容器中。通常这类数据结构把所有的元素存储在内存中(也有一些特例,并不是所有的元素都放在内存,比如迭代器和生成器对象)在Python中,常见的容器对象有:list(列表),set(集合),dict(字典),tuple(元组),str(字符串)(也有相关资料说str是原子类型数据,不属于容器范畴)等。
6.可迭代对象(iterable)
-
凡是可以返回一个迭代器的对象都可称之为可迭代对象。
-
可以对list、tuple、str等类型的数据使⽤for…in…的循环语法从其中依次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代。
-
整型不是可以迭代的
-
把可以通过for…in…这类语句迭代读取一条数据供我们使用的对象称之为可迭代对象(Iterable)
-
只要实现了_iter_方法的对象就是可迭代的。 _iter_方法会返回迭代器(iterator)本身
判断一个对象是否是可迭代对象:
>>> from collections import Iterable # 只导Iterable方法 >>> isinstance('abc', Iterable) True >>> isinstance(1, Iterable) False >>> isinstance([], Iterable) True
大部分对象都是可迭代,只要实现了__iter__方法的对象就是可迭代的。
__iter__方法会返回迭代器(iterator)本身
L1=[1,2,3] L2=L1.__iter__() print(L2) 运行结果: <list_iterator object at 0x000002A64186D4A8>
7.迭代器(Iterator)
迭代器是用来帮助我们记录每次迭代访问到的位置,当我们对迭代器使⽤next()函数的时候,迭代器会向我们返回它所记录位置的下一个位置的数据。实际上,在使用next()函数的时候,调⽤的就是迭代器对象的 next 方法(Python3中是对象的 next 方法,Python2中是对象的next()方法)。所以,我们要想构造一个迭代器,就要实现它的__next__ 方法。但这还不够,python要求迭代器本身也是可迭代的,所以我们还要为迭代器实现 iter 方法,而 iter 方法要返回一个迭代器,迭代器自身正是一个迭代器,所以迭代器的 iter 方法返回自身即可。一个实现了 iter 方法和 next 方法的对象,就是迭代器。
可迭代对象与迭代器的区别
1)可迭代对象包含迭代器。
2)如果一个对象拥有__iter__方法,其是可迭代对象;如果一个对象拥有next方法,其是迭代器。
3)定义可迭代对象,必须实现__iter__方法;定义迭代器,必须实现__iter__和next方法。
8.生成器
生成器是一种特殊的迭代器,生成器自动实现了“迭代器协议”(即__iter__和next方法),不需要再手动实现两方法。
#生成器表达式
result=(x for x in range(3))
print(result)
运行结果:
<generator object <genexpr> at 0x000001994EBFFDE0>
# 列表解析表达式
result=[x for x in range(3)]
print(result)
运行结果:
[0, 1, 2]
9.作业
请对方输入一个0-9之间的数字,进行检查,若不是数字提示:您输入的不是数字,请输入0-9间的数字,若数字不在0-9范围内,提示用户输入0-9之间的数字,直至用户输入正确。
系统随机生成一个长度为3的数字列表,且列表中元素在0-9之间并且不相等。将用户输入与该列表进行比较,若为列表第一个元素,则荣获第一名,列表第二个元素,则荣获第二名,列表第三个名字,则荣获第三名,否则提示用户未得奖,输入1重新开始游戏,输入2则结束游戏。
注意:每次游戏中列表中数字要求随机生成,每轮游戏都不相等。
import random
flag = 1
while flag!=2 :
while 1:
num=input('请输入一个0-9之间的数字')
if num.isdigit(): #判断是否为数字
num=int(num)
if num in range(10):
break
else:
print('范围不再0-9中,请输入0-9之间的数字')
else:
print('您输入的不是数字,请输入0-9间的数字')
continue
list = random.sample(range(0,9),3)
print(alist)
if num==list[0]:
print('荣获第一名')
elif num==list[1]:
print('荣获第二名')
elif num==list[2]:
print('荣获第三名')
else:
print('未得奖')
flag = input('输入1重新开始游戏,输入2则结束游戏')
flag = int(flag)
上一篇: 导航点击跳转点击后给那个li加选中样式用jq的实现
下一篇: Python基础4