zoukankan      html  css  js  c++  java
  • python之路第二天

    一 .Python引入模块

    1、模块是导入别人已经写好的python文件,里面已经有一些写好的功能,可以直接拿来使用
    使用import 关键字导入需要的模块,导入模块时,默认会在当前目录下去寻找该文件,如果当前目录下没有的话,回去python的
    环境变量中找,如果找不到就报错
    2、sys.argv 获取传入的参数,第一个参数是文件名
    sys.path 打印环境变量
    os模块是和操作系统相关的命令
    os.system('ls')
    执行操作系统命令,返回的是一个执行结果,成功或者失败,成功返回0
    os.popen('ls')
    这个也是执行操作系统的命令,和system区别就是,这个命令返回的是执行结果,也就是返回了什么东西,
    而不是返回的执行成功或者失败
    读取内容需用read方法
    os.popen('ls').read()
    os.mkdir()
    创建文件夹
    os.path.sep
    路径分隔符,根据不同的操作系统,分割符会变化

    二.列表和元组的操作

    列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作

    定义列表

    1 names=["zhangsan","lisi",[1,2],"wangermazi","houyafan"]

    可以通过列表角标的方式去获得list中的值

     1 print(names[0]) # 获取names中0角标元素的值
     2 print(names[1:3])# 顾头不顾尾  再切皮中开头包含 结尾不包含"niuhanyang","zouyi"
     3 print(names[-1]) # 倒叙的取值 -1取最后一个
     4 print(names[-2:]) # 取最后两位  可以省略不写
     5 print(names[:3]) # 取前面到某个位置  可以省略不写
     6 print(names[::2]) # 每隔一个切一回  可以省略0 -1 从头切到尾
     7 names.append("cc")# 追加
     8 names.insert(1,"hyf") # 插入 在列表元素的1前面插入hyf
     9 names[1]="yuanyuan" # 更改names 1角标的值
    10 # delete
    11 names.remove("yuanyuan") # 直接删除园园 这个在list中对应的值
    12 del names[1] # 删除角标对应字段  
    13 names.pop()# 默认删除last 最后一位
    14 names.pop(1) # 按角标位删除
    15 
    16 print(names.index("houyafan")) # 在列表中找到这个人对应的角标位
    17 print(names.count("houyafan"))# 列表中有几个houyafan
    18 names.clear() # 清空列表
    19 names.reverse() # 列表反转
    20 names.sort() # 排序 特殊符号-->数字-->大写字母-->小写字母
    21 name1=[1,2,3,4]
    22 del name1 # 删除变量

    介绍个特殊的方法extend()

    看下小练习

    num=[1,2]
    
    num1=[3,4]
    
    num.extend(num1)
    
    print(num) # 打印结果为[1, 2, 3, 4]

    可以看出来 这个方法的作用是将list num1扩展到num中 

    在介绍下深浅copy

    浅copy

    浅copy只会拷贝一层,不会对深层次拷贝

    如果在list中含有小list copy的是他的内存地址 所以更改小list中的值会变

    看下下面的练习

    name1=["a","b","c",[1,2]]
    
    name2=name1.copy()
    
    name1[-1][1]=1000
    
    print(name1,name2)

    通过上面的知识点我们可以知道  打印的name1 和 name2都会变为1000 因为list中含有小list 复制的是他的地址,所以只要改了一个地方 只要是指向他的都会变为1000

    3.元组

    元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表

    它只有2个方法,一个是count,一个是index,完毕。

    # 格式
    name=(1,2,3,3)
    
    name.count(3) # 获取这个元组中3的个数
    
    name.index(1) # 获取1这个元素在元组的位置

    4.字符串操作方法

    name='houyafan'
    
    name.capitalize() # 字符串的首字母大写
    
    name.count('a') # a在字符串中出现的次数
    
    name.center(50,'-')#  一共打印50个字符  不够的用-填
    
    name.endswith('an') # 判断是否以an结尾  返回真 假
    
    name.startswith('ho') # 判断是否以ho开始 返回 真 假
    
    name.find('a') # 所在字符串的位置 如果存在多个相同的,从左开始第一个
    
    name.format_map({}) # 传字典 没啥卵用
    
    name.isalnum() # 包含数或字母任意一个就返回真 否则返回假
    
    name.isalpha() # 只要全部是纯英文字符 则返回真 否则返回假
    
    name.isdecimal()  # 判断是否是10进制的数
    
    name.isdigit()  # 判断是否是整数
    
    'variable'.isidentifier() # 判断是否是一个合法的变量是返回真 否则返回假
    
    name.islower() # 是否是小写字符 是返回真 否则返回假
    
    name.isnumeric() # 是否只是数字组成的==isdigit 没什么卵用
    
    name.isspace() # 是否是一个空格 是则返回真 否则返回假 
    
    name.istitle() # 所有单词的首字母大写
    
    name.isupper() # 判断是否英文全部大写 是则返回真 否则返回假
    
    '+'.join(['1','2','3']) # 将字符拼接成字符串中间可以加上任何东西 输出结果 1+2+3
    
    name.ljust(50,'*') # 输出时 不够50 在末尾加*
    
    name.rjust(50,'*'))# 输出时 不够50 在前面加*
    
    name.lower() # 大写变小写
    
    name.upper())# 小写变大写
    
    name.lstrip() # 默认从左面去掉空格或回车
    
    name.rstrip())# 默认不写 从右面去掉空格或回车
    
    name.strip() # 去掉回车或空格
    
    name.replace('1','h',count=1) # 1替换h  count=1 代表左向右数第一个
    
    name.rfind('o') # 从左到右 找到最右边的o 的角标位置
    
    name.split(' ') # 字符串按照空格生成列表
    
    '1+2+3'.splitlines() # 自动识别换行
    
    name.swapcase() # 英文字母中大写就转小写 有小写就转大写
    
    name.zfill(50)) # 50个字符 不够用零填写

     上面是所有字符串的操作方法

    介绍个很高大上的东西,如果在写程序时想加密自己的字符串可以通过下面的方法:

    # 加密对照表 设置加密对照表
    
    p=str.maketrans('abcdef','123456')
    
     # 字符串引用加密
    
    print('houyf'.translate(p)) 
    
    # 同时加密了 我们也需要解密 反向设置对照表就可以实现解密了
    
    z=str.maketrans('123456','abcdef')# 反解加密
    
    # 字符串加密反解
    
    print('houyf'.translate(z)) 

    5.字典

    字典是无序的 没有下标 通过key去查找
    dict['1']='houyafan' # 修改
    
    dict['4']='yuanyuan' # 没有这个key 就新建
    
    del dict['1'] # 删除这个key和value
    
    dict.pop('2') # 指定删除 key 是'2'的1对字典
    
    dict.popitem()# 随机删除 没什么卵用
    
    dict.get('1') # 安全的获取value 有就返回没有 就None
    
    print('1' in  dict)# key'1' 是否在这个字典中
    
    dict.values() #打印所有的values
    
    dict.keys() # 打印所有的key
    
    dict.setdefault('4','yuanyuan') # 如果值存在就不动 不在就创建
    
    dict.items() # 字典转换成一个大list list中每个key value 放在一个元组中
    
    dict.update(dict1)# 合并字典,如果存在就更新,不存的key不存在就添加进去
    
    new_dict=dict.fromkeys([1,2,3],'aaa') #初始化一个字典 并给他赋值key分别是123 值都是aaa 

    字典的循环

    for i in dict:
        print(i,dict[i])# 循环他的key i  对应的dict[i]对应的value

    6.三元运算符

    a = 1
    
    b = 2
    
    c = 3
    
    d = a if a>b else c
    
    # d的值等于  如果 a大于b 则将a赋值给d 否则 c赋值给d

    第二天的python就这样了,留个作业

    实现商家和客户的商店接口,商家可以增加、删除、修改商品,同时同步到客户中,客户可以购买商品,第一次客户登陆提示输入存款,购买成功退出后,打印购买商品,同时记录余额。第二次进来直接展示余额。要求判断各种异常情况。

  • 相关阅读:
    利用cubieboard设置samba打印服务器
    CubieTruck上安装mjpg_streamer
    devexpress bandgridview使用总结(14.2)
    WeedFS0.6.8-引用库列表
    NSQ的消息订阅发布测试
    WeedFS问题收集
    WeedFS依赖库 0.6.1
    golang 前置补0
    MsChart<3> 饼状图
    在代码中去掉窗口,全屏显示
  • 原文地址:https://www.cnblogs.com/houyf/p/5727068.html
Copyright © 2011-2022 走看看