python基础三

多级菜单

  • 多级菜单
  • 可依次选择进入各子菜单
  • 所需新知识点:列表、字典
#!/usr/bin/env python
# -*- coding: utf-8 -*-
menu = {
    ‘北京‘:{
        ‘海淀‘:{
            ‘五道口‘:{
                ‘soho‘:{},
                ‘网易‘:{},
                ‘google‘:{}
            },
            ‘中关村‘:{
                ‘爱奇艺‘:{},
                ‘汽车之家‘:{},
                ‘youku‘:{},
            },
            ‘上地‘:{
                ‘百度‘:{},
            },
        },
        ‘昌平‘:{
            ‘沙河‘:{
                ‘老男孩‘:{},
                ‘北航‘:{},
            },
            ‘天通苑‘:{},
            ‘回龙观‘:{},
        },
        ‘朝阳‘:{},
        ‘东城‘:{},
    },
    ‘上海‘:{
        ‘闵行‘:{
            "人民广场":{
                ‘炸鸡店‘:{}
            }
        },
        ‘闸北‘:{
            ‘火车战‘:{
                ‘携程‘:{}
            }
        },
        ‘浦东‘:{},
    },
    ‘山东‘:{},
}

current_level = menu
last_level = []

while True:
    for key in current_level:
        print(key)
    choice = input(">>:").strip()
    if len(choice) ==0:break
    if choice ==‘b‘:
        if len(last_level)==0:break
        current_level = last_level[-1]
        last_level.pop()
    if choice not in current_level:continue
    last_level.append(current_level)
    current_level = current_level[choice]

字典

查询

#!/usr/bin/env python
# -*- coding: utf-8 -*-
dic={‘name‘:‘alex‘,‘age‘:18}

print(dic[‘name‘])
print(dic.get(‘namedf‘))#用get,如果没有这个值,查询不会报错

以上代码运行结果

alex
None

add

#!/usr/bin/env python
# -*- coding: utf-8 -*-
dic={‘name‘:‘alex‘,‘age‘:18}

dic[‘gender‘]=‘female‘
print(dic)#打印字典是无序的

以上代码运行结果

{‘age‘: 18, ‘gender‘: ‘female‘, ‘name‘: ‘alex‘}

change

#!/usr/bin/env python
# -*- coding: utf-8 -*-
dic={‘name‘:‘alex‘,‘age‘:18}

dic[‘name‘]=‘lhf‘
print(dic)

以上代码运行结果

{‘name‘: ‘lhf‘, ‘age‘: 18}

del

#!/usr/bin/env python
# -*- coding: utf-8 -*-
dic={‘name‘:‘alex‘,‘age‘:18}

del dic[‘name‘]
print(dic)

以上代码运行结果

{‘age‘: 18}

字典里嵌入其它数据类型

#!/usr/bin/env python
# -*- coding: utf-8 -*-
dic1={
    1:‘alex‘,
    ‘name‘:‘lhf‘,
    (1,2,3):{‘age‘:18},
    ‘name‘:‘alex‘
}

print(dic1[1])
print(dic1[‘name‘])
print(dic1[(1,2,3)])
print(dic1[(1,2,3)][‘age‘])

以上代码运行结果

alex
alex
{‘age‘: 18}
18

字典的其它用法

#!/usr/bin/env python
# -*- coding: utf-8 -*-

dic1=dict.fromkeys(‘abc‘,1)
print(dic1)

以上代码运行结果(注意:此处类似浅拷贝)

{‘b‘: 1, ‘c‘: 1, ‘a‘: 1}
#!/usr/bin/env python
# -*- coding: utf-8 -*-
dic={‘name‘:‘alex‘,‘age‘:18}

dic2 =dict.fromkeys([‘a‘,‘b‘],1)
print(dic2)
print(dic.get(‘name‘))

以上代码运行结果

{‘b‘: 1, ‘a‘: 1}
alex
#!/usr/bin/env python
# -*- coding: utf-8 -*-
dic={‘name‘:‘alex‘,‘age‘:18}

for k,v in dic.items():
    print(k,v)
print(dic.keys())
for i in dic.keys():
    print(‘key is %s,value is %s‘%(i,dic[i]))

以上代码运行结果

age 18
name alex
dict_keys([‘age‘, ‘name‘])
key is age,value is 18
key is name,value is alex

指定删除

#!/usr/bin/env python
# -*- coding: utf-8 -*-
dic={‘name‘:‘alex‘,‘age‘:18}

dic.pop(‘name‘)
print(dic)

以上代码运行结果

{‘age‘: 18}

随机删除

#!/usr/bin/env python
# -*- coding: utf-8 -*-
dic={‘name‘:‘alex‘,‘age‘:18}

dic.popitem()
print(dic)

以上代码运行结果

{‘name‘: ‘alex‘}
#!/usr/bin/env python
# -*- coding: utf-8 -*-
dic={‘name‘:‘alex‘,‘age‘:18}

dic.setdefault(‘gender‘,[]).append(‘male‘)
dic[‘gender‘].append(‘female‘)

以上代码运行结果

{‘age‘: 18, ‘name‘: ‘alex‘, ‘gender‘: [‘male‘, ‘female‘]}
__author__ = "zhou"
#!/usr/bin/env python
# -*- coding: utf-8 -*-
dic={‘name‘:‘alex‘,‘age‘:18}
dic1 = {‘gender‘:‘male‘,‘name‘:‘ldf‘}

dic.update(dic1)
print(dic)

以上代码运行结果

{‘name‘: ‘ldf‘, ‘age‘: 18, ‘gender‘: ‘male‘}

常用的取字典里面键值的方法

#!/usr/bin/env python
# -*- coding: utf-8 -*-
dic={‘name‘:‘alex‘,‘age‘:18}

for k in dic:
    print(k,dic[k])
for i in dic.values():
    print(i)

以上代码运行结果

age 18
name alex
18
alex

浅拷贝

#!/usr/bin/env python
# -*- coding: utf-8 -*-
dic ={‘name‘:‘alex‘,‘age‘:18,‘gfs‘:["Monkey","Cythrina","Rachel"]}

dic2=dic.copy()
print(dic)
print(dic2)
dic2["name"]="Jack"

dic2["gfs"][2] = "hhhh"
print(dic)
print(dic2)

以上代码运行结果

{‘gfs‘: [‘Monkey‘, ‘Cythrina‘, ‘Rachel‘], ‘name‘: ‘alex‘, ‘age‘: 18}
{‘gfs‘: [‘Monkey‘, ‘Cythrina‘, ‘Rachel‘], ‘name‘: ‘alex‘, ‘age‘: 18}
{‘gfs‘: [‘Monkey‘, ‘Cythrina‘, ‘hhhh‘], ‘name‘: ‘alex‘, ‘age‘: 18}
{‘gfs‘: [‘Monkey‘, ‘Cythrina‘, ‘hhhh‘], ‘name‘: ‘Jack‘, ‘age‘: 18}

集合

字符编码

字符---gb2313--->硬盘硬盘---gb2313--->字符字符 --->unicode--->内存

1、内存固定使用unicode编码,硬盘的编码(即你可以修改的软件编码)2、使用什么编码往硬盘存,就用什么编码去读3、程序运行分两阶段:  1、从硬盘读到内存  2、python解释器运行已经读到内存的代码4、针对一个test.py文件来说python与nodpad++\vim区别是多了第二步。
时间: 2024-08-03 09:53:09

python基础三的相关文章

python基础三(列表和元组)

数据结构:数据结构是以某种方式(如通过编号)组合起来的数据元素集合.在python中,最基本的数据结构为序列,序列中每个元素都有编号从0开始. 1.序列概述:?python内置了许多种序列,列表.元组.字符串等.?列表和元组的不同在于,列表是可以修改的,而元组不可以,这意味着列表用于需要中途添加元素的情形,而元组适用于禁止修改元素的情形. 1.1.创建列表 假设你现在需要一个东西来储存多个名字,那么用列表正合适 list_name = ["王晓明","李二"] #所

进击的Python【第三章】:Python基础(三)

Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合(set):把不同的元素组成一起形成集合,是python基本的数据类型. 集合元素(set elements):组成集合的成员 >>> li=['a','b','c','a'] >>> se =set(li) >>> se set(['a', 'c', 'b

Python基础(三) 数据类型、文件操作

我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点型以及布尔类型.这些基本数据类型组成了基本控制块,从而创建的Python应用程序. 一.基本结构 1.数值: Python支持不同的数值类型: int (有符号整数): 通常被称为只是整数或整数,是正或负整数,不带小数点. long (长整数 ): 或长,是无限大的整数,这样写整数,后面跟着一个大写或小写的L. 注意:自从Python2.2起,如果整数发生溢出,Python会自动将整数转换为长整数,所以如今在长整数数据后面不加字

python基础(三)

set集合 set集合创建 #方式1: se = {'123','456'} #与字典类似dict1 = {'k1','v1','k2','v2'} #方式2: se = set() #创建一个空的集合 list1 = [11,22,33,44] se = set(list1) print(se) 操作集合 s = set() print(s) s.add(123) #添加集合元素 s.add(123) s.add(123) #体现集合不重复性,添加多个但是集合中只有一个123 print(s)

走入计算机的第十五天(python基础三)

一 变量值之类型与对象程序中需要处理的状态很多,于是有了不同类型的变量值,x='egon',变量值'egon'存放与内存中,绑定一个名字x,变量值即我们要存储的数据. 在python中所有数据都是围绕对象这个概念来构建的,对象包含一些基本的数据类型:数字,字符串,列表,元组,字典等程序中存储的所有数据都是对象,一个对象(如a=1)有: 一个身份(id) 一个类型(type) 一个值(通过变量名a来查看) 二 可变对象与不可变对象    实例被创建后,身份和类型是不可变的,    如果值是不可以被

Python 基础三

基础数据类型 数字int 数字主要用于计算,有加减乘除等操作,下面介绍一种使用方法 #bit_length(),将十进制数转换成二进制数的二进制数位数 v = 9 data = v.bit_length() print(data) 布尔值bool 布尔值有True和False,对应条件的真和假 True           真             非0数 False          假                 0 字符串str 字符串的索引与切片 字符串的索引即下标是从0开始的,从

python基础三(字符串)

一.字符串 1.1什么是字符串 字符串是python中不可变的一种数据类型,主要用来表示文本. 1.2创建一个字符串 a是变量名称右边是双引号里的字符,只要是被引号引起的python都会认为是字符串. 这里采用的是单引号,结果和上图双引号完全相同,那么为什么还有单引号和双引号呢?因为在某些情况下可能会很适用. 下图中第一个字符串包含一个单引号(这里叫撇感觉更合适),因此不能使用单引号将字符串括起,否则会报错.这里就用到了双引号.注释:在上图中字符串为'Let',因此python不知道如何处理余下

python基础(三)文件操作和集合

一.文件操作 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 1.文件基本操作: f = open('file.txt','r') #以只读方式打开一个文件,获取文件句柄,如果是读的话,r可以不写,默认就是只读, 在python2中还有file方法可以打开文件,python3中file方法已经没有了,只有open frist_line = f.readline()#获取文件的第一行内容,返回的是一个list print(frist

python基础(三)序列

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 谢谢thunder424纠错 sequence 序列 sequence(序列)是一组有顺序的元素的集合 (严格的说,是对象的集合,但鉴于我们还没有引入“对象”概念,暂时说元素) 序列可以包含一个或多个元素,也可以没有任何元素. 我们之前所说的基本数据类型,都可以作为序列的元素.元素还可以是另一个序列,以及我们以后要介绍的其他对象. 序列有两种:tuple(定值表: 也有翻译为元组