Python入门2

时隔如此之久才写了入门2,真是不太好意思了。

  • 列表、元组
首先,列表和元组都是有序的,元组可以理解成只读的列表(const),列表用'[',元组用'('。
#! /usr/bin/env python
# Author: JackyHou

names = ["zhangsan", "lisi", "wangwu"]

names.append("lijingyi")#后加

names.insert(1, "xiaolizi")



# print(names[0:2])#左闭右开
#
# print(names[-1])#从右开始数


# print(names[-3:])#冒号后不写东西, 就是右边第三个直到最后全部
# print(names[:3])

print(names)

#delete
#方法1
# names.remove("xiaolizi")
# print(names)
#方法2
# del names[1]
# print(names)
#方法3
# names.pop()#可带参数
# print(names)


#find
print(names.index("xiaolizi"))
print(names.pop(names.index("xiaolizi")))
print(names)

#count
names.append("lijingyi")
print(names.count("lijingyi"))

#reverse
names.reverse()
print(names)

#sort
names.sort()
print(names)


#extend
names2 = [1, 2, 4, 5]
names.extend(names2)
del names2
print(names)
在使用列表时要注意一个地方:关于浅拷贝和深拷贝的问题
 浅拷贝:copy
 深拷贝:deepcopy
他们的的区别在于当列表是多级列表时,浅拷贝和直接赋值会使两个对象的二级列表的指针指向同一个对象(即任何操作都会在两个对象上反应出来,一损俱损一荣俱荣),而深拷贝才是平时所理解的拷贝(完全拷贝)
#! /usr/bin/env python
# -*- coding:utf-8 -*-
# Author: JackyHou

import copy

person = ['name', ['saving', 100]]


# p1 = copy.copy(person)
# p2 = person[:]
# p3 = list(person)

p1 = person[:]
p2 = person[:]

p1[0] = 'hjq'
p2[0] = 'ljy'

p1[1][1] = 50

print(p1)
print(p2)
[1, ['equal', 2, 4], 4]
[1, ['equal', 2, 4], 4]
[1, ['equal', 'copy', 4], 4]
[1, ['equal', 'copy', 4], 4]
[1, ['equal', 'copy', 4], 4]
[1, ['equal', 'copy', 'deepcopy'], 4]


  • String的基本操作
#! /usr/bin/env python
# Author: JackyHou

name = "my name is {name}, I'm {year}."


print(name.capitalize())
print(name.count('a'))
print(name.center(50, '*'))
print(name.endswith("ou"))
print(name.expandtabs(30))
print(name.find('is'))
print(name.format(name='JackyHou', year=22))
print(name.format_map({'name': 'JackyHou', 'year': 22}))
print(name.isalnum())
print('abc123'.isalnum())
print('abcABC'.isalpha())
print('1A'.isdecimal())
print('_1a'.isidentifier())#判断是不是一个合法的标识符
print('abc'.islower())#是不是小写
print('22.11'.isnumeric())#纯数字
print(name.isspace())
print('My Name Is'.istitle())
print('My Name is'.isprintable())#tty file, drive file
print("My Name is".isupper())
print(':'.join(['1', '2', '3']))
print(name.ljust(50, '*'))
print(name.rjust(50, '*'))
print("Jacky".lower())
print("Jacky".upper())
print('     \nhaha'.lstrip())
print('haha     \n'.rstrip())
print('       hha      '.strip())
la = str.maketrans("abcdef", '123456')
print("JackyHou".translate(la))
print(name.replace('m', '1', 2))
print('hahahxhahahxha'.rfind('x'))#从右边开始找
print('hah hah haha ah'.split(' '))#分割
print('hahah+dkfjal\njldafjlad'.splitlines())#行分割
print('JackyHou'.swapcase())#反向大小写
print('hah hah ha'.title())
print('jacky hou'.zfill(50))
  • 字典
#! /usr/bin/env python
# Author: JackyHou

#key-value

info = {
    'stu1101': "TengLan Wu",
    'stu1102': "LongZe Luola",
    'stu1103': "XiaoZe Maliya",
}

print(info)
#print(info["stu1101"])
info["stu1101"] = "武藤兰"
info["stu1104"] = "CangJingkong"
print(info)


#del info["stu1101"]
# info.pop("stu1101")
# info.popitem()#随机删一个
# print(info)

#find
print(info.get('stu1105'))
print('stu1105' in info)

b = {
    'stu1101': "Rihana",
    1: 3,
    4: 5,
}
info.update(b)
print(info)
c = dict.fromkeys([6, 7, 8], [1, {"name": "alex"}, 444])
print(c)
c[7][1]['name'] = "Jack Chen"#这是一个坑!!!!!!!!!!! fromkeys函数会把后面的当成一个整体,所以改了一个就全部都改了
print(c)
print(info.items())

#高效
for i in info:
    print(i, info[i])


#低效
for k, v in info.items():
    print(k, v)
  • 三级菜单
#! /usr/bin/env python
# Author: JackyHou


# data = {
#     '北京': {
#         "沙河": ["oldboy", "test"],
#         "天通苑": ["链家地产", "我爱我家"]
#     },
#     "朝阳": {
#         "望京": ["奔驰", "陌陌"],
#         "国贸": ["CICC", "HP"],
#         "东直门": ["Advent", "飞信"],
#     },
#
# }


data = {
    '北京': {
        '海淀': {
            '五道口': {
                'soho': {},
                '网易': {},
                'google': {}
            },
            '中关村': {
                '爱奇艺': {},
                '汽车之家': {},
                'youku': {},
            },
            '上地': {
                '百度': {},
            },
        },
        '昌平': {
            '沙河': {
                '老男孩': {},
                '北航': {},
            },
            '天通苑': {},
            '回龙观': {},
        },
        '朝阳': {},
        '东城': {},
    },
    '上海': {
        '闵行': {
            "人民广场": {
                '炸鸡店': {}
            }
        },
        '闸北': {
            '火车战': {
                '携程': {}
            }
        },
        '浦东': {},
    },
    '山东': {},
}

exit_flag = False

while not exit_flag:
    #第一层菜单
    for i in data:
        print(i)
    choice = input("SELECT>>>>>:")
    if choice in data:
        while not exit_flag:
            #第二层菜单
            for j in data[choice]:
                print("\t", j)
            choice2 = input("SELECT>>>>>:")
            if choice2 in data[choice]:
                while not exit_flag:
                    #第三层菜单
                    for k in data[choice][choice2]:
                        print("\t\t", k)
                    choice3 = input("SELECT>>>>>:")
                    if choice3 in data[choice][choice2]:
                        for n in data[choice][choice2][choice3]:
                            print("\t\t\t", n)
                        choice4 = input("INPUT 'b' TO BACK")
                        if choice4 == 'b':
                            pass
                        elif choice4 == 'q':
                            exit_flag = True
                    if choice3 == "b":
                        break
                    elif choice3 == 'q':
                        exit_flag = True
            if choice2 == 'b':
                break
            elif choice2 == 'q':
                exit_flag = True
    if choice == 'b':
        break
    elif choice == 'q':
        exit_flag = True

注意pass的用法:
 其实没啥用。pass是空语句,为了保持程序结构的完整性。不做任何事情,
一半用作占位语句。



猜你喜欢

转载自blog.csdn.net/ringggr_h/article/details/79163141
今日推荐