Python学习Day2

Posted king95923

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习Day2相关的知识,希望对你有一定的参考价值。

  1. 模块
     1 import os
     2 #调用操作系统的操作
     3 
     4 os.system("dir")
     5 #结果为乱码,因为输出结果编码不是windows的utf-8
     6 #结果是在cmd中运行dir得到的结果
     7 
     8 cmd_res = os.system("dir")#执行命令,不保存结果,结果直接输出到屏幕
     9 print("--->",cmd_res)#结果为0,意为命令执行成功与否的状态,即失败
    10 
    11 cmd_res = os.popen("dir").read()#结果临时存放到内存中,需要read()来读取
    12 print("--->",cmd_res)#结果为内存的对象地址
    13 
    14 os.mkdir("new_dir")#在当前目录下创建一个新的文件夹
    1 import login #仅从当前目录下,或全局变量即site-package文件夹下寻找
    2 ‘‘‘
    3 当程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,
    4 Python解释器则将PyCodeObject写回到pyc文件中
    5 当Python程序第二次运行的时候首先程序会在硬盘中寻找pyc文件,如果找到则直接载入,否则重复上述过程
    6 ‘‘‘
    1 import sys
    2 #模块名一定不能为sys
    3 print(sys.path)#功能为打印环境变量
    4 #上述语句结果为路径列表,得到的路径为模块或python内部调用的路径
    5 
    6 print(sys.argv)#打印相对路径,后面可添参数
    7 
    8 print(sys.argv[2])#可通过列表形式读取参数
  2. 数据类型
     1 a,b,c=1,3,5
     2 
     3 d = a if a>b else c
     4 print(d)
     5 
     6 #三元运算:如果条件为真:result=值1,否则,result=值2
     7 #python 3.x中文本都是str,二进制数据则有bytes类型表示
     8 #python 3.x不会以任意方式混用str和bytes
     9 #既无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然)
    10 #二进制转换为字符串,使用decode方法(解码)
    11 #通过网络传输数据时,字符串必须转换为二进制,使用encode方法(编码)
    12 
    13 msg=我爱你
    14 
    15 print(msg)
    16 print(msg.encode())#(=msg.encode(‘utf-8‘))若使用时没有指定编码,则使用utf-8
    17 print(msg.encode().decode(encoding=utf-8))#同上,若使用时没有指定编码,则使用utf-8
  3. 列表
     1 #作者:king
     2 names = ["FangChao","JiangLai","MaRui","JianHao","ZanWei"]
     3 names.append("SongFangJie")#append追加,在列表结尾添加
     4 names.insert(1,"JianHao")#insert插入,1为插入的位置
     5 names.insert(3,"JinQiuYang")#python不能批量插入,只能一次次进行
     6 names[3] = "WuYiFan"#修改列表内容
     7 print(names)
     8 #print(names[0],names[2])
     9 #print(names[1:3])#切片:起始位包括,结束位不包括(顾头不顾尾)
    10 #print(names[-1])#从列表右侧开始取值
    11 #print(names[-2:])#读取时从左往右,此处为取列表后两位
    12 #print(names[0:3])#=names[:3]
    13 #names.remove("WuYiFan")#直接删除“WuYiFan”
    14 #del names[3]#通过下标位置删除
    15 #names.pop()#默认删除最后一位元素
    16 #names.pop(3)#输入下标则删除指定位置
    17 #print(names)
    18 print(names.index("ZanWei"))#index函数返回查找元素的位置
    19 print(names[names.index("ZanWei")])
    20 
    21 print(names.count("JianHao"))#统计列表中同名元素的个数,如“JianHao”
    22 #names.clear()#清除列表中所有元素
    23 #print(names)
    24 names.reverse()#反转列表
    25 print(names)
    26 names.sort()#按顺序排序列表,默认升序
    27 print(names)
    28 names2=[1,2,3,4]
    29 names.extend(names2)#将extend()中的列表与前面的列表合并
    30 del names2
    31 print(names)
    32 print(names2)

    列表的copy相关

    #作者:king
    import copy
    names = ["FangChao", "FangJiangLai", "SongFangJie", ["alex", "jack"], "MaRui", "ChengJianHao"]
    #name2 = names.copy()#copy为浅copy,仅复制第一层,
    # 若列表包含第二或其他层,则只复制其他层的内存地址
    # 即更改第二层内容拷贝的列表的第二层也被拷贝
    #name2 = names#指向同一个内存,即更改其中一个列表,全部改变
    ‘‘‘
    a=[1,2,3]
    b=a
    a[1]=555
    b=[1,555,3]
    ‘‘‘
    #name2 = copy.copy(names)#等同于列表中copy
    ‘‘‘name2 = copy.deepcopy(names)#深度copy
    print(names)
    print(name2)
    names[5] = "陈建豪"
    names[3][0]="ALEX"
    print(names)
    print(name2)‘‘‘
    
    for i in names:
        print(i)
    
    for i in range(1,10,2):
        print(i)
    
    print(names[0:-1:2])#跳切列表元素
    print(names[::2])#0,-1可以被省略,效果同上
    print(names[:])#若省略步长,则打印列表中所有元素
  4. 元组
    1 #作者:king
    2 
    3 names = ("king","jin")#元组只能读取,不能增删改
    4 #希望值不能被改变的情况下使用元组
    5 names.count()
    6 names.index()
  5. 字符串
     1 #作者:king
     2 name = my name \tis {name} and i am {year}#字符串1
     3 
     4 print(name.capitalize())#首字母大写
     5 print(name.count("a"))#统计字符串2在字符串1中出现的次数
     6 print(name.center(50,"-"))#一共打印50个字符,若字符串字数不足,则有后面的字符补充完整
     7 print(name.endswith("ng"))#若字符串1以字符串2结尾,则返回True
     8 print(name.expandtabs(tabsize=30))#将字符串中的tab转换为n个空格
     9 print(name.find(name))#将字符串2在字符串1中所在第一个位置返回
    10 print(name[name.find(name):])#find函数多用于字符串切片
    11 print(name.format(name=king,year=18))#将变量传入参数从而传入字符串
    12 print(name.format_map({name:king,year:18}))#将字典传入字符串
    13 print(king923.isalnum())#是否仅包含阿拉伯数字或字母
    14 print(king923.isalpha())#是否为纯英文字符,不区分大小写
    15 print(1A.isdecimal())#是否为十进制
    16 print(89.isdigit())#是否为整数
    17 print(king923.isidentifier())#判断是否为合法的表示符(变量名 )
    18 print(1aA.islower())#判断字符串中字母是否全为小写
    19 print(1.123.isnumeric())#判断是否仅含数字
    20 print(king 923.isspace())#判断字符串是否为空格
    21 print(My Name Is.istitle())#字符串是否每个单词首字母大写
    22 print(My Name Is.isprintable())#是否可打印,与tty file,drive file有关
    23 print(My Name Is.isupper())#是否全为大写
    24 print(+.join([1,2,3]))#将某个字符放入后面的列表中各个元素之间,使之成为字符串
    25 print(name.ljust(50,*))#是字符串长度为50,不足则在字符串右边加上后面的字符
    26 print(name.rjust(50,*))#是字符串长度为50,不足则在字符串左边加上后面的字符
    27 print(King.lower())#使字符串由大写变为小写
    28 print(King.upper())#使字符串由小写变为大写
    29 print(\nKing\n.lstrip())#去除字符串左边的空格或回车
    30 print(\nKing\n.rstrip())#去除字符串右边的空格或回车
    31 print(\nKing\n.strip())#去除字符串两边的空格或回车
    32 p = str.maketrans("abcdef",[email protected]#$%^)
    33 print("fedcba".translate(p))#明文密文的使用
    34 print(kingnn.replace(n,N,1))#替换函数,将字符串中的所选字符替换为另外的字符,后面数字指替换的个数,若无特指,则全部替换
    35 print(kingn.rfind(n))#字符串从左往右查找,返回最右边被查找字符的位置
    36 print(1+2+3+4.split(+))#将字符串按所选字符分割转换为列表,默认字符为空格
    37 print(1+2\n+3.splitlines())#将字符串按换行符分割转换为列表
    38 print(King Jin.swapcase())#字符串大小写逆转
    39 print(King Jin.title())#字符串转换为标题,各单词首字母大写
    40 print(asdf.zfill(50))#字符串不够位数时在字符串左侧添加0
  6. 字典
     1 #作者:king
     2 
     3 #key_value
     4 info = {
     5     stu1101:king,
     6     stu1102:fang,
     7     stu1103:ma
     8 }#字典是无序的
     9 
    10 print(info["stu1101"])#
    11 print(info.get("stu1104"))#有则返回值,没有则返回none
    12 print(stu1104 in info)#info.has_key("stu11-4") in py2.x 判断key是否存在字典中
    13 
    14 info[stu1101] = "武藤兰"
    15 info[stu1104] = "苍老师"#存在就修改,不存在就添加一条新的键值对
    16 print(info)
    17 
    18 #del info["stu1101"]#删 del是python内置函数
    19 info.pop(stu1101)#出栈
    20 info.popitem()#随机删除字典中的键值对
    21 print(info)
    22 
    23 print(info.values())#输出所有值
    24 print(info.keys())#输出所有key
    25 
    26 info.setdefault("stu1101","www.360.com")
    27 info.setdefault("stu1102","www.baidu.com")#在字典中查找key,若未找到则添加新的键值对,若找到则返回
    28 
    29 b = {
    30     stu1101:qiu,
    31     1:3,
    32     2:5
    33 }
    34 info.update(b)#将两个字典合并,若有相同的key,则更新前个字典key所对的值,若没有相同的,则添加新的键值对
    35 print(info)
    36 
    37 print(info.items())#将字典转为列表
    38 
    39 c = dict.fromkeys([6,7,8,9,10],[1,{"name":"king"},999])#创建一个新的字典,key为之前列表中的值,值为后面的参数
    40 print(c)#由下面实验可得,创建的新字典中,多个key指向同一个值,则修改一个值的同时,全部改变
    41 
    42 c[7][1][name]=Jin
    43 print(c)
    44 
    45 for i in info:
    46     print(i,info[i])#更高效
    47 
    48 for k,v in info.items():
    49     print(k,v)

    二层嵌套字典

     1 #作者:king
     2 av_catalog = {
     3     "欧美":{
     4         "www.youporn.com": ["很多免费的,世界最大的","质量一般"],
     5         "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
     6         "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
     7         "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
     8     },
     9     "日韩":{
    10         "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
    11     },
    12     "大陆":{
    13         "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
    14     }
    15 }
    16 
    17 av_catalog[大陆][1024][1]="可以在国内做镜像"
    18 
    19 print(av_catalog)
  7. 三级菜单
     1 #作者:king
     2 
     3 data = {
     4     北京:{},
     5     山东:{
     6         "青岛":{},
     7         "济南":{}
     8     },
     9     广州:{
    10         "东莞":{},
    11         "常熟":{},
    12         "佛山":{}
    13     },
    14     安徽:{
    15         安庆:{振风塔,迎江寺},
    16         合肥:{包公祠,天鹅湖},
    17         淮南:{吃的,好吃的}
    18     }
    19 }
    20 
    21 exit_flag = False
    22 
    23 while not exit_flag:
    24     for i in data:
    25         print(i)
    26 
    27     choice = input("选择进入>>:")
    28     if choice in data:
    29         while not exit_flag:
    30             for j in data[choice]:
    31                 print("\t",j)
    32             choice2 = input("选择进入2>>:")
    33             if choice2 in data[choice]:
    34                 while not exit_flag:
    35                     for m in data[choice][choice2]:
    36                         print("\t\t",m)
    37                     choice3 = input("选择进入3>>:")
    38                     if choice3 in data[choice][choice2]:
    39                         for n in data[choice][choice2][choice3]:
    40                             print("\t\t\t",n)
    41                         choice4 = input("最后一层,按b返回>>")
    42                         if choice4 == "b":
    43                             pass
    44                         elif choice4 == q:
    45                             exit_flag = True
    46                     if choice3 == b:
    47                         break
    48                     elif choice3 == q:
    49                         exit_flag = True
    50             if choice2 == b:
    51                 break
    52             elif choice2 == q:
    53                 exit_flag = True
  8. 购物车实例
     1 #作者:king
     2 
     3 product_list = [
     4     (Iphone,5800),
     5     (Mac Pro,9800),
     6     (Bike,800),
     7     (Watch,10600),
     8     (Coffee,31),
     9     (Alex Python,120),
    10 ]
    11 shopping_list = []
    12 salary = input("Input your salary:")
    13 if salary.isdigit():#若果输入内容为整数,则为真
    14     salary = int(salary)
    15     while True:
    16         for index,item in enumerate(product_list):#效果同下语句,输出列表的下标
    17             #print(product_list.index(item),item)
    18             print(index,item)
    19         user_choice = input("选择需要的商品>>>:")
    20         if user_choice.isdigit():
    21             user_choice = int(user_choice)
    22             if user_choice < len(product_list) and user_choice >= 0:
    23                 p_item = product_list[user_choice]
    24                 if p_item[1] <= salary:#可以购买
    25                     shopping_list.append(p_item)
    26                     salary -= p_item[1]
    27                     print("Added %s into shopping cart,your current balance is \033[31;1m%s\033[0m" %(p_item,salary))
    28                     #"\033[31;1m%s\033[0m"输出红色字符串,若32则为绿色,需死记
    29                 else:
    30                     print("\033[41;1m你的余额仅剩[%s],请剁手\033[0m" % salary)#效果为背景红色
    31             else:
    32                 print("商品[%s]不存在" % user_choice)
    33         elif user_choice == q:
    34             print("--------shopping list--------")
    35             for p in shopping_list:
    36                 print(p)
    37             print("Your current balance:",salary)
    38             exit()
    39         else:
    40             print("invaild option")

     

以上是关于Python学习Day2的主要内容,如果未能解决你的问题,请参考以下文章

python学习笔记Day2

day2 python学习

python学习之路-day2

python学习day2(字符串的一些小魔法)

Python学习day2作业总结

day2::(python-学习之路)-文件处理