Python模块列表字典


一、模块

sys

#!/usr/bin/env Python
# -*- coding:utf-8 -*-
import sys

# print(sys.path) #打印环境变量
print(sys.argv)

os

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

# cmd_res = os.system("dir")  #执行命令,不保存结果
cmd_res = os.popen("dir").read()
print("-->",cmd_res)
os.mkdir("new_dir")

二、数据类型

1、数字

int(整型)

  在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
  在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

long(长整型)
  跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
  注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
float(浮点型)

  浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
complex(复数)
  复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。

2、布尔值

真或假

1或0

三、三元运算


result = 值1 if 条件 else 值2
a,b,c=1,3,5
d=a if a>b else c

四、进制

二进制,01
八进制,01234567
十进制,0123456789
十六进制,0123456789ABCDEF

五、列表

1、创建列表

names = ["hhh","aaa","bbb",["kkk","jjj"],"ccc","bbb"]

names = list(["hhh","aaa","bbb",["kkk","jjj"],"ccc","bbb"])

2、索引

print(names)
print(names[0],names[2])

3、切片

print(names[1:3])
print(names[3])
print(names[-2])
print(names[-2:])
print(names[:3])

4、追加

names.append("ddd") #末尾增加
names.insert(1,"eee") #按位置增加
names[2] = "fff" #替换


5、删除

names.remove("fff")
# del names[1] = names.pop(1)
names.pop(1)
print(names)

6、长度

print(names.index("ccc"))
print(names.count("bbb"))
names.clear() #清空
names.reverse() #反转
names.sort() #排序

7、循环

for i in names:
    print(i)

8、复制

import copy
name2 = names.copy()
names2 = copy.deepcopy(names) #深复制,占用
print(names)
print(name2)

9、包含

names2 = [1,2,3,4]
names.extend(names2)
print(names,names2)

六、元组

元组其实跟列表差不多,也是存一组数,只不过它一旦创建,便不能再修改,所以又叫只读列表
它只有2个方法,一个是count,一个是index

ages = (11, 22, 33, 44, 55)

ages = tuple((11, 22, 33, 44, 55))

七、程序:购物车程序

需求:
1、启动程序后,让用户输入工资,然后打印商品列表
2、允许用户根据商品编号购买商品
3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
4、可随时退出,退出时,打印已购买商品和余额

 

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

product_list = [
    ('Iphone',5800),
    ('Mac Pro',9800),
    ('Bike',800),
    ('Watch',10600),
    ('Coffee',31),
    ('Alex Python',120),
]
shopping_list = []
salary = input("Input your salary:")
if salary.isdigit():
    salary = int(salary)
    while True:
        for index,item in enumerate(product_list):
            # print(product_list.index(item),item)
            print(index,item)
        user_choice = input("选择要买嘛?>>>:")
        if user_choice.isdigit():
            user_choice = int(user_choice)
            if user_choice < len(product_list) and user_choice >=0:
                p_item = product_list[user_choice]
                if p_item[1] <= salary: #买得起
                    shopping_list.append(p_item)
                    salary -= p_item[1]
                    print("Added %s into shopping cart,your current balance is \033[31;1m%s\033[0m" %(p_item,salary))
                else:
                    print("\033[41;1m你的余额只剩[%s]啦,还买个毛线\033[0m" %salary)
            else:
                print("product code [%s] is not exist!"% user_choice)
        elif user_choice == 'q':
            print("----------shopping list------------")
            for p in shopping_list:
                print(p)
            print("Your current balance:",salary)
            exit()
        else:
            print("invalid option")

 

八、字符串

 

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

name = "my \tname is {name} and i am {year} old"

print(name.capitalize())    #首字母
print(name.count("a"))
print(name.center(50,"-"))
print(name.endswith("ex")) #以什么结尾
print(name.expandtabs(tabsize=30))
print(name[name.find("name"):])
print(name.format(name='alex',year=23))
print(name.format_map({'name':'alex','year':12}))
print('ab23'.isalnum())
print('abA'.isalpha())
print('1A'.isdecimal()) #十进制
print('a 1A'.isidentifier()) #判读是不是一个合法的标识符
print('a 1A'.islower())
print('33.33'.isnumeric())
print('My Name Is'.istitle())
print('My Name Is'.isprintable())
print('My Name Is'.isupper())
print(''
      '+'.join(['1','2','3']))
print(name.ljust(50,'*'))
print(name.rjust(50,'-'))
print('Alex'.lower())
print('Alex'.upper())
print('\nAlex'.lstrip())
print('\nAlex\n'.rstrip())
print('  \nAlex\n'.strip())
p = str.maketrans("abcdef",'123456')

print("alex li".translate(p))
print('alex li'.replace('l','L',1))
print('alex lil'.rfind('l'))
print('1+2+3+4'.split('+'))
print('1+2\n+3+4'.splitlines())
print('Alex Li'.swapcase())
print('lex li'.title())
print('lex li'.zfill(50))

 

九、字典(无序的)

字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。

 

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#key-value
'''
av_catalog = {
    "欧美":{
        "www.youporn.com": ["很多免费的,世界最大的","质量一般"],
        "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
        "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
        "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
    },
    "日韩":{
        "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
    },
    "大陆":{
        "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
    }
}
av_catalog["大陆"]["1024"][1] = "可以在国内做镜像"

av_catalog.setdefault("taiwan",{"www.baidu.com":[1,2]})
print(av_catalog)
'''
info = {
    'stu1101': "TengLan Wu",
    'stu1102': "LongZe Luola",
    'stu1103': "XiaoZe Maliya",
}

for i in info:
    print(i,info[i])

for k,v in info.items():
    print(k,v)
# b = {
#    'stu1101':"Alex",
#    1:3,
#    2:5
# }
# info.update(b)
# print(info)
# c = dict.fromkeys([6,7,8],[1,{"name":"alex"},444])
# print(c)
# c[7][1]['name'] = "Jack Chen" #共用一个内存
# print(c)
# print(info.items())


# print(info)
# # print(info["stu1101"])
# print(info.get('stu1103'))
#
# print('stu1103' in info) #info.has_key("1103") in py2.x
# info["stu1101"] = "武藤兰"
# info["stu1104"] = "CangJingkong"

#del
# del info["stu1101"]
# info.pop("stu1101")
# info.popitem()
# print(info)

 

十、三级菜单

 

#!/usr/bin/env python
# -*- coding:utf-8 -*-
data = {
    '北京':{
        "昌平":{
            "沙河":["oldboy","test"],
            "天通苑":["链家地产","我爱我家"]
        },
        "朝阳":{
            "望京":["奔驰","陌陌"],
            "国贸":{"CICC","HP"},
            "东直门":{"Avent","飞信"},
        },
        "海淀":{},
    },
    '山东':{
        "德州":{},
        "青岛":{},
        "济南":{}
    },
    '广东':{
        "东莞":{},
        "常熟":{},
        "佛山":{},
    },
}
exit_flag = False

while not exit_flag:
    for i in data:
        print(i)
    choice = input("选择进入1>>:")
    if choice in data:
        while not exit_flag:
            for i2 in data[choice]:
                print("\t",i2)
            choice2 = input("选择进入2>>:")
            if choice2 in data[choice]:
                while not exit_flag:
                    for i3 in data[choice][choice2]:
                        print("\t", i3)
                    choice3 = input("选择进入3>>:")
                    if choice3 in data[choice][choice2]:
                        for i4 in data[choice][choice2][choice3]:
                            print("\t\t",i4)
                        choice4 = input("最后一层,按b返回>>:")
                        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

 

十一、作业

购物车
用户入口:
1、商品信息存在文件里
2、已购商品,余额记录

商家入口:
2、可以添加商品,修改商品价格

 

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 用户或者是商家
# 用户-登陆信息-卡里剩多少钱-打开商品列表-选择商品-打印已购商品,余额记录
# 商家-登陆信息-添加商品/修改商品价格-存入文件
user_info = {"zhangsan":[333333,30000],"lisi":[444444,40000],"wangwu":[555555,50000]}
shopper_info = {"hhh":666666}
user = input("user:")
password = input("password:")
shopping_list = []
product_list = open("product_list.txt").readlines()
if user in user_info and int(user_info[user][0]) == int(password):
    salary = int(user_info[user][1])
    print("Welcome %s to our shopping center!Your salary is %s" % (user, salary))
    while True:
        for k, v in enumerate(product_list):
            print(k, v)
        choice = input("Which product do you want to select?")
        shopping_list.append(product_list[int(choice)])
        shop_price = int(product_list[int(choice)].split(":")[1])
        salary -= shop_price
        print("Your shopping_list is %s and your salary is %s" % (shopping_list, salary))
        choice2 = input("Do you want to continue to shopping?")
        if choice2 == "n":
            print("Welcome to you next time!Your shopping_list is %s and your salary is %s" % (shopping_list, salary))
            break
        elif choice2 == "y":
            pass
elif user in shopper_info and int(shopper_info[user]) == int(password):
    while True:
        print("1 add product\n""2 modify price")
        choice3 = input("What do you want to do?")
        if choice3 == "1":
            product = input("Which product do you want to add?")
            price = input("This product's price is?")
            product_info = "\n"+product+":"+price
            with open("product_list.txt",'a+') as f:
                f.write(product_info+'\n')
            choice4 = input("Do you want to continue?")
            if choice4 == "y":
                pass
            elif choice4 == "n":
                break
        elif choice3 == "2":
            for k, v in enumerate(product_list):
                print(k, v)
            choice5 = input("Which product do you want to modify?")
            new_price = input("This product's price is modify to?")
            old_price = product_list[int(choice5)].split(":")[1]
            file_data = ""
            with open("product_list.txt","r") as f:
                for line in f:
                    if old_price in line:
                        line = line.replace(old_price,new_price) + '\n'
                    file_data += line
            with open("product_list.txt","w") as f:
                    f.write(file_data)
            choice6 = input("Do you want to continue?")
            if choice6 == "y":
                pass
            elif choice6 == "n":
                break

https://www.linuxboy.net/topicnews.aspx?tid=17

linuxboy的RSS地址:https://www.linuxboy.net/rssFeed.aspx

本文永久更新链接地址:https://www.linuxboy.net/Linux/2019-09/160555.htm

相关内容