判断语句
(注意不要少写了冒号:)
if 判断条件:
执行语句……
a=2
if a>3:
print('yes')#不满足条件,不执行print
a=2
if a<3:
print('yes')
#输出结果
yes
if 判断条件:
执行语句……
else:
执行语句……
(如果if判断是False,不要执行if的内容,去把else执行)
a=2
if a<3:
print('yes')
else:
print('no')
#输出结果
yes
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
else:
<执行3>
(if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else)
a=2
if a<2:
print('小于二')
elif a>2:
print('大于二')
else:
print('等于二’)
如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。
此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。
a=2
if a>1 and a<3: #判断值是否在1~3之间
print('yes')
#输出结果
yes
a=2
if a<3 or a>4: #判断值是否小于3或大于4
print('yes')
#输出结果
yes
循环语句
1.for…in循环,依次把list或tuple中的每个元素迭代出来
a=[1,2,3]
for b in a:
print('当前数字:',b)
#输出结果
当前数字: 1
当前数字: 2
当前数字: 3
a=0
for b in [1,2,3,4,5,]:
a=a+b
print(a)
c=0
for d in range(6):
c=c+d
print(a)
#输出结果
15
15
for e in [1,2,3,4,5,6,7,8,9,]:
for f in [1,2,3,4,5,6,7,8,9,]:
g=e*f
print(e,'*',f,'=',g)
2.while循环,只要条件满足,就不断循环,条件不满足时退出循环。
a=100
while a>50:
a=a-10
print(a)
#输出结果
50
在循环过程中,break语句可以提前退出循环,也可以通过continue语句,跳过当前的这次循环,直接开始下一次循环。
三目表达式
格式:为真时的结果 if 判定条件 else 为假时的结果
a=2
if a>3:
print('hello')
else:
print('world')
#输出结果
world
x=2
y=3
print('hello' if(x>y) else 'world')#使用三目运算符
#输出结果
world
容器
Python中常见的数据结构可以统称为容器。如列表、元祖、字典等。
可迭代对象
凡是可作用于for循环的对象都是Iterable类型;
凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列;
集合数据类型如list、dict、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。
迭代器
迭代是Python最强大的功能之一,是访问集合元素的一种方式。
迭代器是一个可以记住遍历的位置的对象。
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
迭代器有两个基本的方法:iter() 和 next()。
字符串,列表或元组对象都可用于创建迭代器。
list=[x for x in range(2)]
a=iter(list)
type(a)
#输出结果
list_iterator
list=(x for x in range(6))
a=iter(list)
print(next(a))
print(next(a))
#输出结果
0
1
生成器
把一个列表生成式的[]改成(),就创建了一个generator
list=[x for x in range(10)]
print(list)
list2=(x for x in range(10))
type(list2)
#输出结果
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
generator
如果要一个一个打印出来,可以通过next()函数获得generator的下一个返回值。generator保存的是算法,每次调用next(g),就计算出g的下一个元素的值,直到计算到最后一个元素,没有更多的元素时,抛出StopIteration的错误。
list=(x for x in range(2))
print(next(list))
print(next(list))
print(next(list))
#输出结果
0
1
---------------------------------------------------------------------------
StopIteration Traceback (most recent call last)
<ipython-input-10-6cc6f3687fa5> in <module>()
2 print(next(list))
3 print(next(list))
----> 4 print(next(list))
5 print(next(list))
6 print(next(list))
StopIteration:
使用for循环打印
list=(x for x in range(2))
for a in list:
print(a)
#输出结果
0
1
作业
import random
a = 1
while a!=2:
while a==1:
num = input('请输入一个0-9之间的数字:')
if str.isdigit(num):
num1=int(num)
if num1<0 or num1>9:
print('您输入的数字不在0~9之间,请重新输入:')
else:
break
else:
print('您输入的不是数字,请输入0~9间的数字:')
_list=random.sample(range(0,9),3)
print(_list)
if num==_list[0]:
print('恭喜您荣获第一名!')
elif num==_list[1]:
print('恭喜您荣获第二名!')
elif num==_list[2]:
print('恭喜您荣获第三名!')
else:
print('你未得奖。')
a=(input('输入1重新开始游戏,输入2则结束游戏'))
a=int(a)