W2_python_module_list_tuple_dirct_file

w2_sys_os_list_tuple_dict

16、第02章节-Python3.5-模块初识

sys模块

import sys

sys.path

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

sys.argv

print(sys.argv)
返回列表:脚本相对路径,[以及传入参数]
print(sys.argv[1]) 表示打印传入的第一个参数值,依次类推

os模块

import os

os.system

result = os.system("ls")
print(result)
result可能的值为0或1,代表执行成功与否,不保存命令执行返回数据

os.popen

cmd_res = os.popen("dir").read()
cmd_res可以读取到命令执行的返回数据

os.mkdir

os.mkdir("new_dir")
创建一个目录

17、第03章节-Python3.5-模块初识2

18、第04章节-Python3.5-pyc是什么

检查源文件与pyc的时间,如果源文件更新,则预编译一次再执行

19、第05章节-Python3.5-python数据类型

int float complex(复数)
bool

20、第06章节-Python3.5-bytes数据类型

数据运算(略)

三元运算:

result = 值1 if 条件 else 值2
if 条件为真,则为值1
if 条件为假,则为值2
a,b,c = 1,3,5
d = a if a>b else c
print(d)

str与bytes

21、第07章节-Python3.5-列表的使用

列表与元组

列表

list_A = []
list_A.append("string")
list_A.insert(0,"string_A")
list_A[1] = "stringC"
list_A.remove("stringc")
del list_A[1]
list_A.pop()
list_A.pop(index)
list_A.clear() #清空列表
list_A.reverse() #顺序反转
list_A.sort() #排序
注:排序规则按accssic码规则排列

元组

元组可以看作是只读的列表。
只有count,index属性

练习:购物车程序

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

#!/usr/bin/env python
#-*-coding:utf-8-*-
#Author:wu.
products = [
    ("手机",5000),
    ("电视",3000),
    ("空调",3500),
    ("冰箱",4000),
    ("微波炉",400),
    ("风扇",200),
    ("书",50),
    ("椅子", 1500)
]
shopping_list = []
while True:
    salary = input("Input your salary:")
    if salary.isdigit():
        salary = int(salary)
        balance = salary
        break
    else:
        print("please input int number!")

while True:
    for index,p_item in enumerate(products,1):
        print(index,p_item)

    user_choice = input("input product num to purchase or press \033[41m q \033[0m to quite\n\033[32m>>>\033[0m").strip()
    if user_choice.isdigit():
        user_choice = int(user_choice)
        if int(user_choice) in range(len(products)+1):
            p_item = products[user_choice - 1]
            if balance > p_item[1]:
                shopping_list.append(p_item)
                balance = balance - p_item[1]
                print("shopping cart list:",shopping_list)
                print("your balance",balance)
                continue
            else:
                print("\033[41m sorry, you don't have enough balance!\033[0m")
                print("your balance \033[31m {balance} \033[0m".format(balance=balance))
                continue

        else:
            print("Your choice out of range!")
            continue
    elif user_choice == 'q':
        print("shopping cart list:", shopping_list)
        print("total cost:", salary - balance)
        print("your balance", balance)
        exit()
    else:
        print("invalid input,please check!")

参考alex blog:http://www.cnblogs.com/alex3714/articles/5717620.html

22、第08章节-Python3.5-列表的使用2

list_A.extend(list_B) #将list_B的元素扩展到list_A

尝试:列表的深copy,浅copy的区别

import copy
list_B = copy.deepcopy(list_A)


列表按步长取元素
print(list_A[0: -1:2]) #按步长为2,从0个元素取值到最后一个
print(list_A[::2]) #其中0和-1可以省略不写,与上一种等价

23、第09章节-Python3.5-元组与购物车程序练习

24、第10章节-Python3.5-购物车程序练习实例

25、第11章节-Python3.5-字符串常用操作

字符串操作

strings = 'Alex li'

print(list(strings))
strings.capitalize()
print(strings.count("l"))
strings.encode()
print(strings.endswith(' li')) #是否以指定字符结尾

strings = 'Alex \ li'
print(strings.expandtabs(tabsize=100)) #打印tab的个数
strings.format()
strings = 'Alex name li'
print(strings[strings.find("name"):9]) #找出以指定字符开始到第N个字符为止的中间字条串
print(strings[-1])
//# strings.format_map()
strings.isdigit()
print(strings.index('le'))
strings.isalnum() #包含所有的英文字符和阿拉伯数字
strings.isalpha() #包含纯英文字符
strings.isdecimal() #16进制
strings.isidentifier() #是否合格的变量名
strings.islower()
strings.isupper()
strings.isnumeric()
strings.isprintable()
strings.isspace()
strings.istitle()
strings = "+"
list_s = ["a","b","c"]
print(strings.join(list_s))
print(strings.ljust(50,"="))
//# strings.rjust()
strings = 'AAbbCC1ccbb'
print(strings.lower())
strings.upper()
strings.lstrip()

p = str.maketrans('abcdefg','1234567')
print("abcggg".translate(p))
en_string = "abcggg".translate(p)
d = str.maketrans('1234567','abcdefg')
print(en_string.translate(d))

print(strings.replace('bb','ZZ', 1))
strings.rfind('e') #从右边找
strings.split("l") #以指定字符分割
strings.splitlines() #以换行符分割
strings.swapcase() #大小写交换

26.第12章节-Python3.5-字典的使用

字典基本操作

dict = {key:value}
dict[key] #查询此key对应的value,此法不安全,如果此key无,则代码异常
dict.get(key) #查询此key对应的value,安全有效,代码无异常处理
dict[key] = "strings" #有此key,则修改,无此key则添加
del dict #删除整个字典
del dict[key] #删除此条键值对
dict.pop(key) #删除此条键值对
dict.popitem() #随机删除一个
print(key in info) #判断key是否在字典中,返回布尔值

多级字典的嵌套操作

dict.setdefult(key,new_value) #从dict中取key,如果key存在,则返回key对应的value,取不到,则创建该key,并把new_value作为值

dict_a = {key_a1:value_a1,key_a2:value:a2}
dict_b = {key_b1:value_b1,key_a2:value:a2}
dict_a.update(b) #update方法,可以将b中的key对应的值更新给dict_a中的相同key的值,如果dict_a中没有的key,则加入进去

25:00

dict.items() #将字典转为列表
dict.fromkeys([key1,key2,key3],value) #把列表中的数据作为keys,初始化一个字典,
尤其注意:以这种方式初始化的dict,value为列表时,更改任务一个key的value,所有的key的value都会改变

字典的循环

for key in dict: #最建议的循环方式
print(key,dict[key])

for k,v in dict.items(): #不建议的方式,因为数据大时,不够高效,因为items()是先将字典变成列表,再遍列
print(k,v)

 

posted @ 2018-07-18 22:25  rootid  阅读(328)  评论(0编辑  收藏  举报