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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值