下载APP
登录
关闭
讲堂
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者
当前播放: 17 | 字典的定义和常用操作
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看

零基础学Python

共71讲 · 71课时·约540分钟
16024
免费
01 | Python语言的特点
免费
02 | Python的发展历史与版本
免费
03 | Python的安装
免费
04 | Python程序的书写规则
免费
05 | 基础数据类型
免费
06 | 变量的定义和常用操作
07 | 序列的概念
08 | 字符串的定义和使用
09 | 字符串的常用操作
10 | 元组的定义和常用操作
11 | 列表的定义和常用操作
12 | 条件语句
13 | for循环
14 | while循环
15 | for循环语句中的if嵌套
16 | while循环语句中的if嵌套
17 | 字典的定义和常用操作
18 | 列表推导式与字典推导式
19 | 文件的内建函数
20 | 文件的常用操作
21 | 异常的检测和处理
22 | 函数的定义和常用操作
23 | 函数的可变长参数
24 | 函数的变量作用域
25 | 函数的迭代器与生成器
26 | Lambda表达式
27 | Python内建函数
28 | 闭包的定义
29 | 闭包的使用
30 | 装饰器的定义
31 | 装饰器的使用
32 | 自定义上下文管理器
33 | 模块的定义
34 | PEP8编码规范
35 | 类与实例
36 | 如何增加类的属性和方法
37 | 类的继承
38 | 类的使用-自定义with语句
39 | 多线程编程的定义
40 | 经典的生产者和消费者问题
41 | Python标准库的定义
42 | 正则表达式库re
43 | 正则表达式的元字符
44 | 正则表达式分组功能实例
45 | 正则表达式库函数match与s...
46 | 正则表达式库替换函数sub...
47 | 日期与时间函数库
48 | 数学相关库
49 | 使用命令行对文件和文件夹...
50 | 文件与目录操作库
51 | 机器学习的一般流程与NumP...
52 | NumPy的数组与数据类型
53 | NumPy数组和标量的计算
54 | NumPy数组的索引和切片
55 | pandas安装与Series结构
56 | Series的基本操作
57 | Dataframe的基本操作
58 | 层次化索引
59 | Matplotlib的安装与绘图
60 | 机器学习分类的原理
61 | Tensorflow的安装
62 | 根据特征值分类的模型和代...
63 | 网页数据的采集与urllib库
64 | 网页常见的两种请求方式ge...
65 | HTTP头部信息的模拟
66 | requests库的基本使用
67 | 结合正则表达式爬取图片链...
68 | Beautiful Soup的安装和...
69 | 使用爬虫爬取新闻网站
70 | 使用爬虫爬取图片链接并下...
71 | 如何分析源代码并设计合理...
本节摘要

课程源码、课件及课后作业地址:

https://github.com/wilsonyin123/geekbangpython

精选留言(26)

  • 2018-07-15
    老师您好,在统计生肖案例中,声明两个字典,一个记录生肖的数量,一个记录星座的数量,我们是先声明一个空字典,然后依次赋值。用for in 的方式一次取出生肖的名字,到这里都懂,但是下一句,cz_num[i]=0 让它的值都等于0赋给cz_num这个字典是什么意思呢?为什么要值等于0呢?(sorry 我是零基础😂)

    作者回复: 您好,所有人学编程都是要从0基础慢慢学习积累的,所以想到一些问题就多利用搜索引擎和文档查看,多调试和编写程序,会很快提升你的编程能力的。有觉得技术点把握不好的地方也欢迎你多留言:p

    下面我把程序做一下简化和修改,它的目的是为了每输入一次年份,计算一次生肖,并且记录年份对应生肖的查询次数。


    chinese_zodiac = u'猴鸡狗猪鼠牛虎兔龙蛇马羊'
    cz_num = {}

    for i in chinese_zodiac:
        cz_num[i] = 0

    while True:
        year = int(input('year:'))

        cz_num[chinese_zodiac[year % 12]] += 1

        for eachKey in cz_num.keys():
            print('%s %d' %(eachKey, cz_num[eachKey]))

    为了达到这个目的,我要先让字典里面的key是生肖,计数器是0
    for i in chinese_zodiac:
        cz_num[i] = 0
    这两个语句就是起到这个功能的。执行完之后,字典就变成下面这样
    {猴:0,鸡:0,狗:0,猪:0,鼠:0,牛:0,虎:0,兔:0,龙:0,蛇:0,马:0,羊:0}
     当我输入2018 赋值给变量year之后,程序会计算它对应的年份--狗,执行
    cz_num['狗'] += 1
    字典就变成了
    {猴:0,鸡:0,狗:1,猪:0,鼠:0,牛:0,虎:0,兔:0,龙:0,蛇:0,马:0,羊:0}
    如果再次输入2018、会再执行cz_num['狗'] += 1 对生肖进行累加,相应的生肖狗会变为值2,其他的生肖因为没有输入,所以依然为0。
    如果不为字典赋初始值0,无法进行上面的 += 1 的运算,它是数学运算,不能和空值进行相加;也没办法对生肖为0的结果进行输出了,不知道我这样解释你能否理解这行代码起到的作用。
    建议在需要观察的变量下面增加print()函数,以便你能更直观的看到执行结果。

    20
  • 2018-06-03
    您好,最近正在学Python,看到您发布了课程立马就购买学习了。在这一讲中,有个字典多层嵌套的问题始终没搞明白,
    USERS = {"tom":{"name":"tom","age":"22","password":"123123"},
            "jack":{"name":"jack","age":"20","password":"123456"}}
    比如,我要在以上例子中再添加个Mary,该如何添加呢,尝试了多次,感觉没理顺,不知是否可以帮忙解答下
    展开

    作者回复: 现阶段使用字典有两大好处需要掌握,第一个是相对于字符串、数字、列表等基础数据结构,它有一个唯一的名字,即“键”,方便你使用名字操作具体的内容“值”,
    第二个就是使用字典类型存储大量的内容,查找速度要比其他基本类型要快
    字典的嵌套可以理解为,以前将字符串、数字作为“值”赋值给字典的“键”,现在将一个字典作为“值”赋值给字典的“键”
    看下下面的例子
    # 首先我们可以定义一个非嵌套的字典
    dict1 = {'tom': 'a', 'jerry': 'b'}

    # 为非嵌套的字典增加一个新的键/值对,赋值的类型是字符串
    dict1['mary1'] = 'c'

    # 输出新的字典的内容
    print('没有嵌套的字典 %s' % dict1)

    # 如果mary2本身就是一个字典可以直接像字符串一样增加到dict1中
    dict1['mary2'] = {'name': 'mary mary', 'age': 18}

    # 输出新的字典的内容
    print('有嵌套的字典 %s' % dict1)

    # 输出外层字典的内容
    print(dict1['mary2'])

    # 输出内层字典的内容
    print(dict1['mary2']['age'])

    这种字典里面的值也是字典类型就是字典嵌套了

    4
  • 2019-05-31
    Desktop/python/练习/循环与判断.py
    请输入一段字:123adb中国人民
    字符串长度等于10
    在py里数中英文字长的等价的吗

    作者回复: “等价”不准确,在输入时由于python上层函数做了处理,所以一个汉字和一个英文字符都被计数为1个,当然底层不是这样,如果是utf-8编码,一个汉字是三个字节

    2
  • 2018-10-16
    adult = "成年","未成年"

    year0 = int(input('请输入年龄'))

    year1 = {}
    for i in adult:
        year1[i] = 0

    if year0 >= 18:
        year1[adult[0]] +=1
        print('您已成年')
    elif year0 <18:
        year1[adult[1]] +=1
        print('您未成年')

    print('统计数据:',year1)

    昨天看完后,觉得不太理解,又写了一份,后来感觉其实这个和投票机有点像,如果使用了某个值,就给这个值+1..我觉得用户可能理解起来更容易,您可以看看。
    展开

    作者回复: 这个例子很好,如果能把year0 year1变量替换为更有意义的变量名称, elif改写为else形式,是一个非常好的演示用例。

    1
    2
  • 2019-01-11
    老师,我想问一下,关于输出星座中的判断语句,是像您实例中放在while循环里面好呢,还是像我这样先做判断好?

    n = 0
        if int_month == 12 and int_day >= 22:
            pass
        else:
            while zodiac_days[n] <= (int_month, int_day):
                n += 1
        print(zodiac_name[n])
    展开

    作者回复: 程序写法的好坏要根据需求而定,像demo这么短小的代码两种写法没有比较的意义,如果一定要对这段代码比较的话,为什么不写成:
    if 条件成立:
        wiile 开始执行循环
    更易读呢?

    1
  • 2018-08-30
    老师,您是怎么把那一小段代码一键放入while循环的?

    作者回复: 使用ctrl+v 粘贴之后,pycharm会自动为你调整缩进格式。如果缩进不符合你的要求,可以选中多行,用tab键一次性多行缩进。

    1
  • 2019-12-11
    标记 星座总结
  • 2019-08-29
    老师我照的你的代码打了一遍,输入年月日后,就报错了,方便看一下哪里出错了吗?谢谢
    chinese_zodiac = '猴鸡狗猪鼠牛虎兔龙蛇马羊'
    zodiac_name=(u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',u'金牛座',u'双子座',u'巨蟹座',
                 u'狮子座',u'处女座',u'天秤座',u'摩羯座',u'射手座',)
    zodiac_days = ((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),
                (7,23),(8,23),(9,23),(10,23),(11,23),(12,23))
    cz_num = {}
    for i in chinese_zodiac:
        cz_num[i] = 0 #先全部赋值为0,初始化
    z_num = {}
    for i in zodiac_days:
        z_num[i] = 0
    while True:#死循环,进行多次输入
        # 用户输入月份与日期
        year = int(input('请输入年份'))
        month = int(input('请输入月份')) # 这个是字符串类型,所以需要强转类型
        day = int(input('请输入日期'))
        n = 0
        while zodiac_days[n] < (month, day):
            if month == 12 and day > 23:
                break
            n += 1
        print(zodiac_name[n])
        print('%s 年的生肖是 %s' % (year, chinese_zodiac[year % 12]))
        cz_num[chinese_zodiac[year % 12]] += 1
        z_num[zodiac_name[n]] += 1
        for each_key in cz_num.keys():
             print('生肖 %s 有 %d 个'%(each_key,cz_num[each_key]))
        for each_key in z_num.keys():
             print('生肖 %s 有 %d 个'%(each_key,z_num[each_key]))



    C:\Users\康虎\AppData\Local\Programs\Python\Python36\python.exe C:/Users/康虎/PycharmProjects/test1_py/test_liebiao.py
    请输入年份2018
    请输入月份3
    请输入日期18
    双鱼座
    2018 年的生肖是 狗
    Traceback (most recent call last):
      File "C:/Users/康虎/PycharmProjects/test1_py/test_liebiao.py", line 25, in <module>
        z_num[zodiac_name[n]] += 1
    KeyError: '双鱼座'
    展开
    1
  • 2019-08-28
    在输入年月日,运行后,就报错了,才学python,还不咋会调试,请老师看一下问题出在哪里,谢谢

    #记录生肖,根据用户输入的年份判断生肖
    chinese_zodiac = '猴鸡狗猪鼠牛虎兔龙蛇马羊'
    #在字符串前面有一个小写的u,表示unicode,在这里主要是标识星座,不要出现乱码
    zodiac_name=(u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',u'金牛座',u'双子座',u'巨蟹座',
                 u'狮子座',u'处女座',u'天秤座',u'摩羯座',u'射手座',)
    #还需要存存储一下每个星座的开始和结束的日期。这个如期是由月份和日期组成的,
    # 在这里希望月份和日期同时存储,那么就需要用到元组的一个嵌套功能,月份和日期后面再加一个括号()
    zodiac_days = ((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),
                (7,23),(8,23),(9,23),(10,23),(11,23),(12,23))
    #如果元组中单个数字比较就像单个数字大小比较一样
    #当元组中出现两个(或者多个的时候)可以把它当成两个数字的一个叠加如(1,20)可以当成120

    #后面会优化这部分代码
    cz_num = {}
    for i in chinese_zodiac:
        cz_num[i] = 0 #先全部赋值为0,初始化
    z_num = {}
    for i in zodiac_days:
        z_num[i] = 0
    while True:#死循环,进行多次输入
        # 用户输入月份与日期
        year = int(input('请输入年份'))
        month = int(input('请输入月份')) # 这个是字符串类型,所以需要强转类型
        day = int(input('请输入日期'))
        n = 0
        while zodiac_days[n] < (month, day):
            if month == 12 and day > 23:
                break
            n += 1
        #输出生肖和星座
        print(zodiac_name[n])
        print('%s 年的生肖是 %s' % (year, chinese_zodiac[year % 12]))
        # 接下来进行记录,需要再前面申明两个字典,记录生肖/星座的数量,
        # 现在不让他直接输出,而是把它的值赋给初始化的字典
        cz_num[chinese_zodiac[year%12]]+=1
        z_num[zodiac_name[n]]+=1
        #输出生肖和星座的统计信息
        #cz_num.keys()将字典里的所有keys都取出来
        for each_key in cz_num.keys():
            print('生肖 %s 有 %d 个'%(each_key,cz_num[each_key]))
        for each_key in z_num.keys():
            print('生肖 %s 有 %d 个'%(each_key,z_num[each_key]))


    展开

    作者回复: 1 首先看下报错信息,在哪一行出现的问题
    2 根据报错信息向程序的上游排查
    3 将和出错不相关的逻辑注释掉,观察程序运行情况
    4 对怀疑出错的位置可以print()输出,来观察程序运行和自己预想的结果是否一致
    5 输入不同的内容,观察是否有异常出现

    总之根据报错推断哪里出了问题,跟着程序流程往上游回推,遇见奇怪的结果就打印一下中间变量

  • 2019-08-05
    chinese_zodiac='猴鸡狗猪鼠牛虎兔龙蛇马羊'
    zodiac_name = (u'摩羯座', u'水瓶座', u'双鱼座', u'白羊座', u'金牛座', u'双子座',
                   u'巨蟹座', u'狮子座', u'处女座', u'天秤座', u'天蝎座', u'射手座')
    zodiac_days = ((1, 20), (2, 19), (3, 21), (4, 21), (5, 21), (6, 22),
                   (7, 23), (8, 23), (9, 23), (10, 23), (11, 23), (12, 23))

    cz_num={}
    for i in chinese_zodiac:
        cz_num[1]=0

    z_num={}
    for i in zodiac_name:
        cz_num[1]=0

    while true:

        year=int(input('请输入年份:'))
        month=int(input('请输入月份:'))
        day=int(input('请输入日期:'))

        n=0
        while zodiac_days[n]<(month,day):
            if month == 12 and day > 23:
                break
            n +=1

        print(zodiac_name[n])

        print('%s 年生肖是 %s'%(year,chinese_zodiac[year%12]))

        cz_num [chinese_zodiac[year%12]] += 1
        z_num [zodiac_name[n]] += 1

        for each_key in cz_num.keys():
            print('生肖 %s 有 %d 个' %(each_key,cz_num[each_key]))

        for each_key in z_num.keys():
            print('星座 %s 有 %d 个' %(each_key,z_num[each_key]))


    C:\Users\hhh\PycharmProjects\untitled\venv\Scripts\python.exe "C:/Users/hhh/PycharmProjects/untitled/chinese_zodiac v3.py"
      File "C:/Users/hhh/PycharmProjects/untitled/chinese_zodiac v3.py", line 35
        print('生肖 %s 有 %d 个' %(each_key,cz_num[each_key]))
                                      ^
    SyntaxError: invalid character in identifier

    Process finished with exit code 1

    这里没有检查出错误
    展开

    作者回复: 这里的圆括号() 使用了中文的全角格式“(“ ”)”,导致了报错

  • 2019-07-24
    老师您好,我感觉不太理解字典的实际应用。范例中对cz_num[i]=0这句代码没有特别理解。字典的赋值不是需要对哈希值加单引号吗?cz_num['i']=0难道不是这样表示吗?而且,对于字典输出的格式,不应该是有冒号的那种吗?

    作者回复: 首先定义字典是使用冒号隔开key和value两个部分的
    输出的话,一般是通过key 取得value
    即 字典名称['key'] 的方式调用来得到value

  • .
    2019-06-01
    老师您好,下面截图中的部分是不是有错误,换成d%还是报同样的错误,求解
    截图无法粘贴,代码大概如下:
    year = int(input('请输入年份:'))
    month = int(input('请输入月份:'))
    day = int(input('请输入日期:'))
    print('d%年 的生肖是 s%' % (year, chinese_zodiac[year % 12]))*******d%换成s%也会报错,如下错误:
    请输入年份:2018
    请输入月份:3
    请输入日期:8
    双鱼座
    Traceback (most recent call last):
      File "/Users/paulakisscat/PycharmProjects/venv/zodiac_v3.py", line 48, in <module>
        print('d%年 的生肖是 s%' % (year, chinese_zodiac[year % 12]))
    ValueError: unsupported format character '?' (0x5e74) at index 2
    展开

    作者回复: 百分号% 放在前面 %d %s

  • 2019-04-22
    person_class = (u"成年", u"未成年")

    count = {}

    for i in person_class:
        count[i] = 0

    while True:
        age = int(input('请输入年龄'))
        if age >= 18:
            count[person_class[0]] += 1
        elif age < 18:
            count[person_class[1]] += 1
        elif age == None:
            break
        print('统计数据:', count)

    报错:ValueError: invalid literal for int() with base 10: '' #不可转换空字符串为整型
    这里怎么处理?
    展开

    作者回复: 使用int()强制转换

  • 2019-04-14
    # 取字典中某个元素
    dict2 = {'a':10,'b':50,'c':100,'d':200}
    d = dict2['d']
    print(d)
  • 2019-04-14
    # 定义一个字典,分别使用a、b、c、d作为字典的关键字,值为任意内容
      # 为该字典增加一个元素‘c':'cake'后,将字典输出到屏幕

    dict3 = {'a':15,'b':20,'c':25,'d':30}
    dict3 ['c'] = 'cake'
    print(dict3)
     元素c的值被新定义cake给代替了,而不是新增加。
    展开
  • 2019-03-18
    chinese_zodiac = ('猴鸡狗猪鼠牛虎兔龙蛇马羊')
    zodiac_name = (u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',u'金牛座',u'双子座',u'巨蟹座',u'狮子座',u'处女座',
                u'天秤座',u'天蝎座',u'射手座')
    zodiac_days = ((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,23),(8,23),(9,23),(10,23),(11,23),(12,23) )
    (month , day ) =(11 , 14)
    sx_num = {}
    for i in chinese_zodiac:
        sx_num['i'] = 0
    xz_num = {}
    for i in zodiac_name:
        xz_num['i'] = 0
    while True:
        year = int (input('请用户输入出生年份') )
        int_month = int (input('请您输入出生月份') )
        int_day = int (input('请您输入出生日期') )
        n = 0
        while zodiac_days [n]<(int_month , int_day ):
            if int_month == 12 and int_day >23:
                break
            n += 1
        print(zodiac_name[n])
        print(chinese_zodiac[year % 12])
        sx_num[chinese_zodiac[year % 12]] +=1

        xz_num [zodiac_name [n]] +=1
        for each_key in sx_num.keys():
            print('生肖%s的个数是%d'%(each_key ,sx_num [each_key ]))
        for each_key in xz_num.keys() :
            print('星座%s的个数是%d'%(each_key, xz_num[each_key ] ))

    老师这个总报错,老师您能帮我看一下是什么原因吗?
    F:\新建文件夹\venv\Scripts\python.exe F:/新建文件夹/test_dict.py
    请用户输入出生年份1111
    请您输入出生月份11
    请您输入出生日期11
    天蝎座
    Traceback (most recent call last):

      File "F:/新建文件夹/test_dict.py", line 28, in <module>
        sx_num[chinese_zodiac[year % 12]] +=1
    KeyError: '兔'

    Process finished with exit code 1
    展开

    作者回复: sx_num[chinese_zodiac[year % 12]] +=1
    这条语句 “year % 12” 其中的 year变量取值为‘兔’ ,类型是字符串,对字符串做 %12 运算自然会报错了

    1
  • 2019-02-27
    老师为什么我写作业时写的这个代码它在列表里的存储顺序不是字符串的正常顺序,并且都去掉了重复的l呢?
    str = 'hello'
    dirct = {i:0 for i in str}
    print(dirct)
    list = {i for i in str}
    print(list)
    C:\Users\11236\PycharmProjects\untitled\venv\Scripts\python.exe C:/Users/11236/PycharmProjects/untitled/exercise01.py
    {'h': 0, 'e': 0, 'l': 0, 'o': 0}
    {'l', 'h', 'o', 'e'}
    展开

    作者回复: 第一个问题,字典的key是哈希值,哈希值有一个特性就是不重复、不可变,所以dirct取得的字典key是去重的。
    第二个问题, {i for i in str} 得到的类型是set(集合),通过print(type(list))可以得到确切的类型,如果需要得到list(列表)类型需要使用 list = [i for i in str]的方式,这里注意花括号{}和方括号[]的区别。

  • 2019-02-18
    老师 ,麻烦帮我看看下面的代码,运行之后不能显示统计结果。
    chinese_zodiac = "猴鸡狗猪鼠牛虎兔龙蛇马羊"
    zodiac_name = (u"摩羯座", u"水瓶座", u"双鱼座", u"白羊座", u"金牛座", u"双子座",
                u"巨蟹座", u"狮子座", u"处女座", u"天秤座", u"天蝎座", u"射手座")
    zodiac_days = ((1, 20), (2, 19), (3, 21), (4, 21), (5, 21), (6, 22),
                  (7, 23), (8, 23),(9, 23), (10, 23), (11, 23), (12, 23))


    cz_num = { }
    for i in chinese_zodiac:
        cz_num[i] = 0

    z_num = { }
    for i in zodiac_name:
        z_num[i] = 0

    while True:
        year = int(input("请输入年份:"))
        month = int(input("请输入月份:"))
        day = int(input("请输入日期:"))

        n = 0
        while zodiac_days[n] < (month, day):
            if month == 12 and day > 23:
                break
            n += 1

        #输出生肖和星座
        print(zodiac_name[n])
        print("%s年的生肖是%s" % (year, chinese_zodiac[year % 12]))


    cz_num[chinese_zodiac[year % 12]] +=1
    z_num[zodiac_name[n]] +=1

    #输出生肖和星座的统计信息
    for each_key in cz_num.keys( ):
        print('生肖%s 有 %d 个' %(each_key,cz_num[each_key]))

    for each_key in z_num.keys( ):
        print('星座%s 有 %d 个'%(each_key,z_num[each_key]))

    运行之后是这样的,没有统计结果:

    "D:\Users\acer-v5\PycharmProjects\Practice 1\venv\Scripts\python.exe" "D:/Users/acer-v5/PycharmProjects/Practice 1/zodiac_v3.py"
    请输入年份:888
    请输入月份:5
    请输入日期:5
    金牛座
    888年的生肖是猴
    请输入年份:
    展开

    作者回复: 你好, 问题在 for ... in ... 语句的统计结果在 while循环之外,而while 循环的写法 是 while True -- 既死循环,所以不会运行到 for ... in ... 语句,也就不会显示统计结果了,可以把统计的语句放在 while 循环里,或者再while循环增加判断,例如输入“q”退出循环等方式。

  • 2019-02-11
    老师,能把源代码上传在百度云盘里,可以吗

    作者回复: https://pan.baidu.com/s/1hHCbivJyMVxh0-JOmMZtbA

  • 2018-12-26
    序列练习:
    # 练习一 条件语句的使用
    # 使用if语句判断字符串的长度是否等于10,根据判断结果进行不同的输出

    str = input('请输入字符串:')
    if len(str) == 10:
        print('恭喜发财!')
    else:
        print('继续努力呦。')

    # 提示用户输入一个1-40之间的数字,使用if语句根据输入数字的大小进行判断,如果输入的数字在 1-10,11-20,21-30,31-40,分别进行不同的输出

    int = int(input('请输入1-40之间的数字:'))
    if int in range(1, 11):
        print('您好,你现在处于第一区')
    elif int in range(11, 21):
        print('您好,你现在处于第二区')
    elif int in range(21, 31):
        print('您好,你现在处于第三区')
    elif int in range(31, 41):
        print('您好,你现在处于第四区')
    else:
        print('您的输入有误,请重新输入')

    # 练习二 循环语句的使用
    # 使用for语句输出1-100之间的所有偶数

    for i in range(1, 101):
        if i % 2 == 0:
            print(i)

    # 使用while语句输出1-100之间能够被3整除的数字
    i = 0
    while i <= 100:
        if i % 3 == 0:
            print(i)
        i += 1
    展开