第二周Python讲课内容–日记

第二周Python讲课内容–日记1、初识模块:sys、os 标准模块库存放在lib文件夹里 三方库模块一般存放在packages文件夹里 模块调用方法:import sys/os sys模块: sys.path 打印环境变量 sys.argv 打印文件的相对路径 sys.argv[0/1] 0表示打印当前程序名,1表示打印执行文件

1、初识模块:sys、os

  标准模块库存放在lib文件夹里

  三方库模块一般存放在packages文件夹里

    模块调用方法:import sys/os

     sys模块:

          sys.path  打印环境变量

          sys.argv  打印文件的相对路径

             sys.argv[0/1]  0表示打印当前程序名,1表示打印执行文件后面输入的内容如:python sys.py 1 2 3    打印成(1,2,3)列表,以空格分割

     os模块:与系统打交道的模块

        os.system(“dir”)  列出系统目录,只能显示

        os.popen(“dir”)  列出目录,能存入变量

        os.mkdir      新建目录 

   创建库模块:

      1、文件同级目录下创建存放

      2、加绝对路径

      3、存放在site-packages目录下

    PYC文件:是python编译执行的文件,Py程序执行时会先检查是否有该文件,有就直接执行该 文件,如果源文件修改,Py则会先看是否有pyc文件如果有会检查时间是否最新,不是则会重新编译文件文件,老师这么讲的。  我个人觉得应该是Py没修改源码则会检查是否有pyc文件,有就直接执行,没有在编译,而修改了源的Py会直接重新编译

2、数据类型:

  整数型:

    int (整型)

    32位的机器 上,整数为32位,取值:2**31 和 -2**31-1

    64位的机器上,整数为64位,取值:2**63 和 -2**63-1

  长整数:

    长整 数是一些比较大的整数python3里面没有了

  布尔值:

    True真  Flose假

    0 或 1

3、运算符:

  &   按位与运算符

  |   按拉或运算符

  ^   按位异或运算符

  <<  左移动运算符

  >>  右移动运算符

  示例:

    128   64    32   16   8    4    2    1    十进制

    1    1    1    1    1    1    1    1    二进制

  

    0    0    0    0    1    1    0    0    12

    0    0    0    1    0    1    1    0    22

  12 & 22   &运算,相同的真为真,不同的都为假,最终结果:4

 

    0    0    0    0    0    1    0    0    4

  12 | 22  | 运算,一个为真或两个都为真就为真,最终结果:30

    0    0    0    1    1    1    1    0    30  

  12 ^ 22  ^ 运算,两个相同为假,不相同为真,最终结果:26

    0    0    0    1    1    0    1    0    26

4、映像类型:

  name = {“john”:[‘pipop’,12]}

    print(name[john])

      将打印出[]列表里的数据,john变量的类型为:dict  类型

5、三元运算:

  变量a = 值1 if a>b else 值2

    如果a大于b输出值a,如果a小于b则输出值2

6、16进制转换:

    1  2  3  4  5  6  7  8  9  A  B  C  D  E  

    16进制每个数占4个字节,0000,      如 E 等于 1111

7、编码和解码:

  ‘hello word!’.encode(‘UTF-8’)    用UTF-8格式进行编码      

  ‘hello word!’.decode(‘UTF-8’)    用UTF-8格式进行解码

8、列表:

  names = [“ZhangShan”,”LiShi”,”WangWu”,LiLiu]

    print (names[0],names[2])  用下标编号输出,ZhangShan和WangWu ——–指定输出

    print(names[1:3])    取出LiShi和WangWu    —-指定起始下标,获取指定值

    print(nnames[-2])    从后面开始取,取倒数第二个

    print(names[-2:0])    从倒数第二个开始取,直到最后一个,0个以省略如names[-2:0]

  添加:

    names.append(”xiaoming”)  默认添加到最后

    names.insert(1,xiaoming)    插入到指定位置

  修改:

    names[2] = “XiaoMing”      修改指定位置数组

  删除:

    names.remove(“XiaoMing”)  直接用数组名删除

    del names[1]         指定下标,删除数组

    names.pop()          指定下标删除,不指定默认删除最后一个

    names.clear()        统计有多少个重复的

  查找:

    names.index(“XiaoMing”)    取出指定数组名的下标号

        print(names.index(“XiaoMing”))    直接打印出来

     统计重复的:

          names.count(“XiaoMing”)    统计出有多少个重复的

  反转:reverse

    names.reverse()        反转数组

  排序:sort

    names.sort()          排序,:#1Aa    特殊-数字-大小写

  合并:

    names.extend(names2)      把names2合并到names里面来,原数据不删除

9、列表:

   复制:

    names2 = names.copy()    浅复制,只复制第一层列表,第二层不做完全复制,数据会跟着改变

    names3 = list(names)      浅复制,功能同上

      (使用案例,同一个数据,多个帐号登陆管理)

    完整复制:

      引入完整模块:import copy

      names2 = copy.deepcopy(names)    完整复制一份,一般不用,太占内存

   修改列表中的列表:

      names[1][2] = “yes”    修改第一个列表下标为1的数组,2为数组里的列表里下标为2的数组进行修改,赋值为yes

   布长切片:

      names[0:-1:2]    从0下标开始取,到倒数第1位,且跳2位取一位   —-0可以省略

      names[::2]      简写

      names[:]      

10、for循环:

    for i in names:    

      print(i)    for循环列表,赋值给i变量,输出i

        

11、元组:

    特点,只能读取,不能修改。

    方法:

      count:names.count(参数)  如果能匹配到元组里的参数则返回 1 , 匹配不到返回 0

      index:names.index(参数)  返回匹配到元组的下标

      for index names in enumerate(a)  同时输出下标号和元组内容

12、.isdigit方法:

    salary = input(“输出工资”)

      if salary.isdigit()      isdigit判断salary接收的数值是否为整数,如果是输出为真不是输出为假

13、购物车实例:

shoping = [('iphone',1200),('ipad',2300),('XiaoMi',5200),('Linux book',100)]     ----定义物品列表
shoping2 = []                ----定义一个空列表
salary = input("输入你的工资>>:")      ----输入工资
if salary.isdigit():            ----判断输入值是否为整数  
salary = int(salary)          ------如果是整数转换为int型
while True:                     -----循环   
for index,time in enumerate(shoping):    -----循环出列表内容和下标号,分别赋值给index和time
print(index,time)              ---输出内容
user_choice = input("选择商品>>:")        ---输入选择的商品
if user_choice.isdigit():                  -----判断输入的商品编号是否为整数
user_choice = int(user_choice)            ---把输入的编号转换为int型
if user_choice < len(shoping) and user_choice >=0:    ----判断,如果输入的编号小于列表的长度 且 输入编号大于等0
time = shoping[user_choice]            ---time里数组等于:用户输入编号下标的数组
if time[1] <= salary:              ---判断,如果time里下标为1的数组的值小于或者等于输入的工资
shoping2.append(time)            ---就把time的数组添加到shopping2的空列表中去
salary -= time[1]              ---然后现在的工资减去原有的工资,在赋给time里下标为1的数组
print("购买的商品:%s,剩余的钱:%s"%(time,salary))      ----打印出购买的商品,使用%s格式化传参 --%s and %s %(a,b)
else:
print("余额:%s,买不起了"%salary)        -----如果工资大于了商品的输出工资
else:
print("你输入:%s商品不存在。。。"%user_choice)    ---如果商品编号不等于下标数的,输出商品不存在
elif user_choice == 'a':                    ----如果中途输入a 执行下列条件
print("---------------shoping list---------------")
for p in shoping2:                    -----循环shopping2 空列表里的内容,并打印
print(p)
print("you are money :%s"%salary)          ----打印出工资
exit()

14、字符串的常用操作:

 name = “john ish tdk”

  name.capitalize()    首写字母大写

    .count(“H”)      统计指定字符个数,例:里边有2个H

    .center(22,’-‘)    保证name里的字符长度为22个,不够的用 – 填充

    .endswith(@.com)  判断指定结尾字符串,如邮箱:@.com  匹配成功返回True  和   Flase

    .expandtabs(tabsize=30)  把table转成30个空格,没什么用

    .find(“ish”)      最字符索引,查看ish是从多少个字符开始的

          方法:name[name.find(“ish”):]  从ish开始切片,到最后

    .format(a=’aa’,b=’bb’)    格式化输出,如:a=1   b=2    print (“{c},{d}”.format(c=a,d=b)) ,最后输出ab的结果

    .isalnum()         英文和数字返回为真:‘abc’.isalnum()  返回为True

    .isalpha()          纯英文字母返回为真,其它返回为假

    .isdecimal()        十进制返回为真,其它为假

    .isdigit()          整数为真,其它为假

    .isidentifier()        判断是否是一个合法的变量名、合法的标识符

    .isnumeric()        判断只有数字在里面返回为真,是数字为真,否则为假

    .istitle()          判断是否为标题,每个单词首写字母大写,为真

    .isupper()         判断字母全大写为真

    .join            字符串连接,例:print(‘+’.join([‘a’,’b’,’c’]))

    .ljust(23,’+’)        保证字符的长度为23位,如果不够后面补齐

    ..rjust(23,’+’)        同上相反          

    .lower()          把大写字母变小写

    .upper()          把小写字母变大写

    .lstrip()          去除左边的空格和回车

    .rstrip()          去除右边的空格和回车

    .strip()          全去掉

    .maketrans(‘原始参数’,’对应参数’)    对应参数赋值:

                                第二周Python讲课内容--日记

    .replace(‘n’,’N’,1)    把n替换成N,后面参数是替换多少个n,替换后:Nan

    .rfind(‘n’)        找到最后一个n的下标,返回下标

    .split()        把字符串分割成列表,默认是空格,可以用字符串里的特殊指定值为分割符,(’1’)指定1为分割符

     .splitlines()      按分行符来分割

    .swapcase()      把大写的变小写,小写的变大写

    .title()         变成标题,把每个单词的首写字母变成大写

    .zfill(20)        如果字符不够20位长,用0填充

15、字典的使用:

   info = {

      ‘stu1101’:”TaoBao”,    stu1101 为字典中的key,后面的为value值

      ’stu1102′:”JinDong”,

      ’stu1103′:”BaiDu”,

  }

  print(info[“stu1102”])    输出JinDong,不显示key

  增改:

    info[“1104”] = “MeiTuan”    直接通过key添加,如果有就直接修改

  删除:

    标准删除:info.pop(“stu1104”)

    DEL删除:del info[“stu1104”]

    随机删除:info.popitem()

  查找:

    标准用法:“stu1102” in info  有返回True没有返回Flose

    最安全的用法:info.get(‘stu1103’)    有返回为True、没有返回为None不会报错

  values:只打印所有的值,不打印key :info.values

  keys:只打印所有的key,:info.keys()

  setdefault  如果找到指定的就取出来,如果未找到就直接添加,例:info.setdefault(“stu1106″,”DoDo”)

  update()   合并两个字典,如果字典里有相同的将合并替换,没有的添加,例:info.update(b),合并b字典到info里

  循环:

    方法1:常用建议用这个

      for key in info:

         print(key,info[key])

    方法2:dict循环,这个会先把dict转换成list,数据大的时候很消耗资源

      for k,v in info.items():

          print(k,v)

16、三级菜单案例:  

# ------------------三级菜单---------------
date = {
"中国":{
"重庆":{
"江北":["北音桥","大庙"],
"渝北":["光电园","人和"]
},
"上海":{
"海边":["北音桥","大庙"],
"海里":["光电园","人和"]
}
},
"外国":{
"美国":{
"洛杉矶":["白宫","黑市"],
"北岸":["光阳","太和"]
}
}
}
exit_flag = False #定义一个布尔值
while not exit_flag: #默认只要为false就不退出,为True就退出
for i in date: #循环date第一层
print(i) #输出date
choice = input("选择进入1:") #输入你选择的那一层
if choice in date: #匹配choice的值在不在date字典里
while not exit_flag: #默认循环
for i2 in date[choice]: #循环date下choice输入的值下的字典,赋给i2
print(i2)
choice2 = input("输入进入2:") #输入打印i2,里的值
if choice2 in date[choice]: #如果输入和date下choice下的值匹配,往下执行
while not exit_flag: #默认循环
for i3 in date[choice][choice2]: #循环date[][]下的值 赋给i3
print(i3) #输出
choice3 = input("输入进入3:") #输入i3打印出来的值进行选择
if choice3 in date[choice][choice2]: #如果输入的值和date[][]下的值匹配
for i4 in date[choice][choice2][choice3]: #循环date[][][]下的值
print(i4)
choice4 = input("返回按A>>:")
if choice4 == 'a': #如果输入的是A,什么都不做,继续循环
pass
elif choice4 == 'q': #输入的为q,exit_fila变为真,则退出
exit_flag = True
if choice3 == 'a':
break
elif choice3 == 'q':
exit_flag == True
if choice2 == 'a':
break
elif choice2 == 'q':
exit_flag == True

 —–感觉有点跟不起,绕得有点多,跟不上套路,可能是写得少    

 

今天的文章第二周Python讲课内容–日记分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/54883.html

(0)
编程小号编程小号
上一篇 2023-08-28
下一篇 2023-08-28

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注