python基础学习第三天

目录:

3.1 字典

3.1.1 字典增加

3.1.2 查询

3.1.3 修改

3.1.4 删除

3.1.5 fromkeys

3.1.6 排序

3.1.7 遍历

3.2 字符串内置方法

3.3 蹩脚的三级菜单脚本

3.1 字典

字典: 键值对数据类型

字典必须是不可修改的类型,字典,元组 都不可以做为键

字典两大特点: 无序,键唯一

a=[1,2,3]

a=list((1,2,3))

dict()   跟list创建方法是一样的

dic1=[]

dic2=dict()  方法必须带括号   dic2=dict((("name","xiong"),("age",33),))

3.1.1 字典增加

dic1={"name":"xiong"}

dic["age"]=222

# 键存在,不改动,返回字典中相应的键的对应值

dic1.setdefault("hobby","NNN")

# 键不存在,在字典中增加新的键值对,并返回相应值

3.1.2 查询

dic1 = {"name":"xiong", "age":33,}

print(dic["age"])

# 将所有的键都取出做为一个列表, 类型为dict_keys

dic1.keys() 结果:dict_keys([‘name‘, ‘age‘, ‘1‘])

# 将字典中所有的值都出来

dic1.values() 结果: dict_values([‘xiong‘, 33, ‘test1‘])

# 将字典的键值对都取出来

dic1.items() 结果:dict_items([(‘name‘, ‘xiong‘), (‘age‘, 33), (‘1‘, ‘test1‘)])

xx = list((dic1.keys()))

print(type(xx)) <class ‘list‘>

3.1.3 修改

dic = {"name":"xiong", "age":33,}

dic["age"]=34

dic2 = {‘1‘:‘111‘,‘2‘:‘222‘}

dic.update(dic2) # 跟列表中extend功能一样

结果为 {"name":"xiong", "age":33, ‘1‘:‘111‘, ‘2‘:‘222‘}

3.1.4 删除

del dic1["name"] 结果: 删除name的键值对

del dic1 结果: 删除整个字典

dic1.clear() 结果: 清空字典

dic5.pop("age") 结果: 删除字典中指定键值对,并返回该键值对的值

# 随机删除一个键值对,并以元组方式返回值

dic1.popitem()

3.1.5 fromkeys

其它操作以及涉及到的方法

dic3=dict.fromkeys(["h1","h2","h3"],"hhh")

print(dic3) 得出结果 {‘h1‘: ‘hhh‘, ‘h2‘: ‘hhh‘, ‘h3‘: ‘hhh‘}

# 将多个值赋值给多个键

dic3=dict.fromkeys(["h1","h2","h3"],["hhh","ggg"])

print(dic3) 结果:{‘h1‘: [‘hhh‘, ‘ggg‘], ‘h2‘: [‘hhh‘, ‘ggg‘], ‘h3‘: [‘hhh‘, ‘ggg‘]}

字典的嵌套

data = [

{"1",22 },

{"2",33 },

]

3.1.6 排序

# 返回一个有序的包含字典所有key的列表

print(sorted(dic3.items()))

结果: [(‘h1‘, [‘hhh‘, ‘ggg‘]), (‘h2‘, [‘hhh‘, ‘ggg‘]), (‘h3‘, [‘hhh‘, ‘ggg‘])]

3.1.7 遍历

dic1=dict((("name","xiong"),("age",33),))

for i in dic1:

print(i,dic1[i])

3.2 字符串内置方法:

b = ‘abc1‘

b.count(‘1‘) #统计元素个数 结果 1

b.capitalize() #字符串首字母大写 结果 Abc1

b.center(12,‘-‘) #字符居中并两边打印- 结果 ----abc1----

print(‘abc‘.ljust(50,‘*‘)) 向左对齐

print(‘abc‘.rjust(50,‘*‘)) 向右对齐

print("   xiong   ".strip()) 去除所有空格,换行符也会自动取消  很重要的方法

print( ‘xiong‘.replace(‘x‘,‘X‘,1)) 替换

#两个参数,(想更改的),(要更改成啥),如有多个字符,1表示只替换一次

b.encode #编码

b.endswith(‘1‘) #以某个字符串结尾 结果 True

b.startswith(‘1‘) #以某个字符串起始 结果 False

b.expandtabs(tabsize=#) # 用得少

b.find(‘1‘) #查找第一个元素,并将索引值返回

print(‘xiong‘.rfind(‘g‘)) #与find功能一样

print(‘xiong‘.find(‘g‘))

两个打印结果都是: 4

b.index(‘1‘) #与find功能一样,多了一个元素没有的时候会报错,find不会报错

b.format #格式化输出的另一种方式

b = ‘abc1 {name} is {age}‘

print(b.format(name=‘xiong‘,age=‘123‘))

b.format_map({‘name‘:‘xiong‘,‘age‘:‘123‘})

print(str.isalnum()) # 判断所有字符都是数字或者字母

print(str.isalpha()) # 判断所有字符都是字母

print(str.isdigit()) # 判断所有字符都是数字 必须是一个整形

print(str.islower()) # 判断所有字符都是小写

print(str.isupper()) # 判断所有字符都是大写

print(str.istitle()) # 判断所有单词都是首字母大写,像标题

print(str.isspace()) # 判断所有字符都是空白字符、\t、\n、\r

# 返回结果不是True 就是 False

print(‘Abc‘,lower()) # 大写变小写 结果abc

print(‘Abc‘,upper()) # 小写变大写 结果ABC

print(‘Abc‘,swapcase()) # 小写变大写,大写变小写    结果 aBC

print (‘My test xiong‘.split(‘ ‘)) 将字符串变为一个列表

# split(‘ ‘,1)   以什么为分隔符进行分割字符串 [‘My‘, ‘test xiong‘]

print (‘My test xiong‘.rsplit(‘ ‘)) 将字符串变为一个列表

# rsplit(‘ ‘,1) 从右往左, 只分隔一次   [‘My test‘, ‘xiong‘]

print (‘My test xiong‘.title())    所有字符串 首字母都变成大写  My Test Xiong

join 连接方法   拼接   方法为 ‘‘.join(字符串提供的方法)

a=‘123‘

b=‘abc‘

c=‘‘.join([a,b]) #结果 123abc

c=‘****‘.join([a,b]) #结果 123****abc

3.3 蹩脚的三级菜单脚本

#!/usr/bin/env python
# -*- coding:utf-8 -*-
china = {"河北": {"石家庄": ("井径", "正定"),
                "秦皇岛": ("青龙", "昌黎"),
                "承德": ("平泉", "兴隆"),
                "邢台": ("临城", "内丘", "柏乡", "隆尧", "任县", "南和")},
         "湖北": {"武汉": ("黄陂", "新洲", "武昌", "汉阳"),
                "十堰": ("郧县", "郧西", "竹溪", "房县"),
                "襄樊": ("襄阳", "南漳", "谷城", "保康"),
                "黄冈": ("红安", "罗田", "英山", "浠水")},
         "湖南": {"长沙": ("芙蓉区", "天心区", "岳麓区", "开福区",),
                "株洲": ("天元区", "荷塘区", "芦淞区", "石峰区", "株洲县", "攸县,")}
         }

property_list = list(china.keys())
for v,i in enumerate(property_list,1):
    print(v,i)
stop = False
while  True:
    if stop is True:
        break

    property = input("1、请输入省份对应的序列号:如1,按Q退出: ")

    if property.isdigit():
        property = int(property)

        if property > 0 and property <= len(property_list):
            property = (property_list[property - 1])
            print("您输入的省份是: %s 请选择城市、列表如下: " % property)
            ciry_list = china[property]
            ciry = list(ciry_list.keys())
            for v,u in enumerate(ciry,1):
                print(v,u)

            while True:
                if stop is True:
                    break
                county = input("2、请输入县或区对应的序列号:如1,按Q退出,按A返回上一层: ")

                if county.isdigit():
                    county = int(county)

                    if county > 0 and county <= len(ciry):
                        county = ciry[county - 1 ]
                        print (county)
                    else:
                            print("无此选项")

                else:
                    if county == ‘q‘:
                        stop = True
                        print("退出脚本.")
                    elif county == ‘a‘:
                        print("回到上层,请选择省份 %s" % property_list )
                        break
                    else:
                        print("无此选项")
    else:
        if property == ‘q‘:
            print("退出脚本.")
            stop = True
        else:
            print("无此选项")

操作如下:

1 河北
2 湖北
3 湖南
1、请输入省份对应的序列号:如1,按Q退出: 1
您输入的省份是: 河北 请选择城市、列表如下: 
1 石家庄
2 秦皇岛
3 承德
4 邢台
2、请输入县或区对应的序列号:如1,按Q退出,按A返回上一层: q
退出脚本.
1 河北
2 湖北
3 湖南
1、请输入省份对应的序列号:如1,按Q退出: 1
您输入的省份是: 河北 请选择城市、列表如下: 
1 石家庄
2 秦皇岛
3 承德
4 邢台
2、请输入县或区对应的序列号:如1,按Q退出,按A返回上一层: 2
秦皇岛
2、请输入县或区对应的序列号:如1,按Q退出,按A返回上一层: a
回到上层,请选择省份 [‘河北‘, ‘湖北‘, ‘湖南‘]
1、请输入省份对应的序列号:如1,按Q退出: 2
您输入的省份是: 湖北 请选择城市、列表如下: 
1 武汉
2 十堰
3 襄樊
4 黄冈
2、请输入县或区对应的序列号:如1,按Q退出,按A返回上一层: q
退出脚本.
时间: 2024-08-05 23:49:54

python基础学习第三天的相关文章

Python基础学习(三)四

关于List的学习: """More on Lists? Using Lists as Stacks.""" fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana'] #Return the number of times x appears in the listprint(fruits.count('apple'))print(fruits.count(

Python基础学习篇章三

一. Python对象类型 1. 对象是Python最基本的概念,一个Python程序可以分解为模块.语句.表达式.和对象.它们的关系如下:(1)程序由模块构成 (2)模块包含语句 (3)语句包含表达式 (4)表达式建立并处理对象 2. Python核心数据类型(内置对象) (1)数字    324,3.1415,992L,3+4j,Decimal (2)字符串   'string','hello' (3)列表    [2, [3, 'world'], 4] (4)字典    {'name':

Python基础学习(三)

Python 模块: 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py.模块可以被别的程序引入,以使用该模块中的函数等功能.模块导入方式如下: 1.import sys 引入 python 标准库中的 sys.py 模块:这是引入某一模块的方法. 2.sys.argv 是一个包含命令行参数的列表. 3.sys.path 包含了一个 Python 解释器自动查找所需模块的路径的列表. 模块导入的语法: import module1[, module2[,... moduleN] Pyt

python基础学习(三)变量和类型

变量的作用:变量就是用来存储数据的. 变量的定义 在python中,变量在使用之前需要进行赋值,变量只有赋值后才能使用,如果变量没有赋值就使用会出现什么情况呢?如下图,使用之前变量未定义,会报错,如下: 变量时使用=来进行赋值的 =左边是一个变量名 =右边是值 练习 计算矩形的面积(长为100,高为10的矩形) 使用ipython3 使用PyCharm # 定义矩形的宽度 width = 100 # 定义矩形的高度 height = 10 # 计算面积 print(width * height)

python基础学习09(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #什么是函数 #就是引用,创建,使用 #例子 def foo(): print '233' foo() #返回与函数类型 def foo1():#是一个过程 print 'hello world!' foo1() foo

Python基础学习 总结篇

Python基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结构(概要) Python学习(四)数据结构 —— int float Python学习(四)数据结构 —— str Python学习(四)数据结构 —— bool Python学习(四)数据结构 —— list tuple range Python学习(四)数据结构 —— set frozenset

python基础学习2

python中的运算符 1.算术运算符:用来做算术运算的符号 ①.+ :求和,也可以做连接符 ②. - :求差 ③. * : 求积 ④. / :求商 ⑤.% :取余 ⑥.//  :取整 ⑦.**  :次方 注意:只能是数值 print(3*3) #求积结果:9 print(9/2) #相除结果:4.5 print(3**4) #3的4次方,结果:81 print(9//4) #小数部分直接丢掉,取整结果:2 print(13%3) #取余结果:1 运行结果是 9 4.5 81 2 1 比较运算符

python基础学习 第十七天 (一)

python基础学习 第十七天 (一) 一. 类与类之间的关系 ?千世界, 万物之间皆有规则和规律. 我们的类和对象是对?千世界中的所有事物进?归类. 那事物之间存在着相对应的关系. 类与类之间也同样如此. 在?向对象的世界中. 类与类中存在以下关系:我们会使用这个关系就行,不用扣这写名词 依赖关系 组合关系 继承关系(类的三大特性之一:继承.) 1.1 依赖关系 ?先, 我们设计?个场景. 夏天到了大象很热,大象想到冰箱中. 注意. 在这个场景中, 其实是存在了两种事物的. ?个是?象, ?象

python基础学习 第十七天 (二)

python基础学习 第十七天 (二) 一. 魔法方法 定义:双下方法是特殊方法,他是解释器提供的 由爽下划线加方法名加双下划线 方法名的具有特殊意义的方法,双下方法主要是python源码程序员使用的,我们在开发中尽量不要使用双下方法,但是深入研究双下方法,更有益于我们阅读源码. 调用:不同的双下方法有不同的触发方式,就好比盗墓时触发的机关一样,不知不觉就触发了双下方法,例如:init 1.1 len class B: def __len__(self): print(666) b = B()