zoukankan      html  css  js  c++  java
  • Python 模块,数据类型,元组

    模块

    Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,以后的课程中会深入讲解常用到的各种库,现在,我们先来象征性的学2个简单的。

    sys

    #!/usr/bin/env python
    #-*- coding: utf-8 -*-
    import sys
    print(sys.argv)
    
    #输出
    $ python test.py hello world
    ["test.py","hello","world"]   #把执行脚本时传递的参数获取到了
    

    os

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import os
    os.system("df -h") #调用系统命令
    

    结合起来

    import os,sys
    
    os.system(''.join(sys.argv[1:]))  #把用户的输入的参数当作一条命令交给os.system来执行
    

      

    数据类型初识

    1.数字

      2 是一个整数的例子。
      长整数 不过是大一些的整数。
      3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。
      (-5+4j)和(2.3-4.6j)是复数的例子,其中-5,4为实数,j为虚数,数学中表示复数是什么?。

    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都是实数。
    注:Python中存在小数字池:-5 ~ 257
     
    2.布尔值
      真或假
      1 或 0
     
    3.字符串

      "Hello world"

    字符串格式化输出

    name = "King golden horn"
    
    print("I am %s" % name)
    
    #输出 I am King golden horn

    4.列表

    创建列表

    1 name = ["a","b","c","d","a","f"]
    2 3 name = list(["a","b","c","d","a","f"])
    4 name2 = ["1","2","3","4"]

    增删改查

     1 name.append("g")  #从最后面插入
     2 name.insert(1,"h")  #选择插入的位置,1代表下标
     3 name.pop(3)       #删除d pop是默认删除最后一个
     4 name.remove("a")  #删除
     5 del name[1]     #删除
     6 
     7 name[0] = 'i'  #修改,把a改成i
     8 print(name[name.index("b")]) #查找b
     9 print(name.count("a")) #统计有多少个a
    10 
    11 name.clear()
    12 print(name) #清空
    13 name.reverse()
    14 print(name)  #反转
    15 name.sort
    16 print(name)  #排序 特殊符号-->数字-->大写字母-->小写字母
    17 name.extend(name2) 
    18 print(name)#合并 结果是 ['a', 'b', 'c', 'd', 'e', 'f', '1', '2', '3', '4']
    19 
    20 name3 = name.copy() #浅复制 只复制列表的第一层
    21 import copy    #引入模块
    22 name = copy.deepcopy #深复制 完全复制一份

    切片取

    print(name[1])     #这就把b取出来了,因为b的下标是1,所以 name[1]  写1
    print(name[0:2])   #切片  #这就把a,b取出来了,2 的下标是c,因为不包括2所以把a,b取出来了 
    print(name[-1])   #这就把f取出来了,因为 -1 代表最后一个
    print(name[:2])    #name[:2]=name[0:2]  如果前面是0可以省略
    print(name[0:-1:2]) #隔一个取一个值
    

    元组

    元组跟列表差不多,也是存一组数据,只不过他一单创建,便不能在修改,所以又叫做只读列表

    语法:

     1 name = ("a","b","c") 

      

     字符串常用操作

    name = "my 	name is {name} and i am {year} old"
    print(name.capitalize())    #输出>>>Alex    #首字母大写
    print(name.count("a"))      #输出>>>2       #统计有几个a
    print(name.center(50,"-"))             #打印50个字符如果不够用-补齐把列表放中间
    print(name.endswith("ex"))  #输出>>>True    #以什么结尾
    print(name.expandtabs(tabsize=30))        #吧tab键换成30个空格
    print(name.find("y"))       #输出>>>1       #查找y的下标
    print(name.format(name="alex",year=100))
    print(name.format_map({"name":"alex","year":11111}))
    print(name.isalnum())            #判断是不是阿拉伯数字加阿拉伯字符
    print(name.isblpha())            #判断是不是纯英文字符
    print(name.isdecimal())          #判断是不是十进制
    print(name.isdigit())            #判断是不是一个整数
    print(name.isidentifier())       #判断是不是一个合法的标识符
    print('ab'.islower())            #判断是不是小写
    print('33'.isnumeric())          #是不是只有数字在里面
    print(' '.isspace())             #判断是不是空格
    print('My Name Is'.istitle())    #判断首字母是不是大写
    print('My Name Is'.isprintable())#tty file,drive file
    print('My Name Is'.isupper())    #判断是不是全是大写
    print('+'.join(['1','2','3']))   #输出>>>1+2+3
    print(name.just(50,'*'))        #保证长度50,不够的用*在后面补齐
    print(name.rjust(50,'-'))        #保证长度50,不够的用-在前面面补齐
    print('Alex'.lower())            #把大写变成小写
    print('Alex'.upper())            #把小写变大写
    print('alex'.lstrip())            #lstrip去掉左边的空格回车 strip去掉两边的空格回车
    print('alex'.rstrip())            #rstrip去掉右边的空格回车
    p = str.maketrans('abcdef','123456') #2.2版本
    print('alex li'.translate(p))  #输出>>> 115 li
    print('alex li'.replace('l','L',1)) #把l替换成大写 1是只替换一个
    print('alex'.rfind('e'))          #从左往走找到最右边的值返回下标
    print('alex li'.split())         #按照空格分成列表 输出>>> ['alex','li']
    print('1+2
    3+4'.splitlines())   #按换行来分
    print('Alex Li'.swapcase())      #大写换下写,小写换大写
    print('lex li'.title)  #输出>>>Lex Li
    print('lex li'.zfill(50))        #不够的用0填充
    print('alex'.strip())            #strip去掉两边的空格回车
    print(name.startswith("name",4,8))    #判断是否以字符串 "my" 开头,返回 True或False ,在第4个开始,第8个结束
    print(name.endswith("old"))           #判断是否以字符串 "old" 结尾,返回 True或False ,在第4个开始,第8个结束

    字典

    字典一种key-value的数据类型,使用就像我们上学用的字典,通过笔画,字母来查找对应页的详细内容。
    语法:
    1 info= {
    2     'sut1':'1',
    3     'sut2':'2',
    4     'sut3':'3',
    5 }
    字典的特性:
    dict 是无序的
    key 必须是唯一的,so天生去重
     1 print(info.get('sut1')) #查找
     2 print(info['sut1'])  输出>>>1
     3 info['sut1'] = '11'     #修改
     4 info['sut4'] = '11'     #如果存在就修改,不存在就创建
     5 print(info)
     6 #del
     7 del info['sut1']
     8 info.pop('sut1')
     9 info.popitem()          #随机删
    10 print(info)
    11 
    12 print('sut2' in info)   #判断sut2在不在info里
    13 
    14 
    15 info.value              #打印所有值
    16 info.key                #打印说有key
    17 
    18 info['大陆']['1024'][1] = 'abcde'
    19 info.setdefault('大陆',{'www.baidu.com':[1,2]})
    20 #去字典里取大陆这个值,如果能取到返回和这个值,如果取不到就创建一个新的
    21 
    22 info.items              #items把字典改成列表
    23 c = info.fromkeys([6,7,8],'test')  #创建一个字典
  • 相关阅读:
    C连载5-函数与return拾贝
    Android连载15-复习以往内容(一)
    Spring security OAuth2.0认证授权学习第四天(SpringBoot集成)
    Spring security OAuth2.0认证授权学习第三天(认证流程)
    Spring security OAuth2.0认证授权学习第二天(基础概念-RBAC)
    Spring security OAuth2.0认证授权学习第二天(基础概念-授权的数据模型)
    Spring security OAuth2.0认证授权学习第一天(基础概念-认证授权会话)
    JVM学习第三天(JVM的执行子系统)之类加载机制补充
    FastJSON解析JSON的时候保证深堆的顺序
    JVM学习第三天(JVM的执行子系统)之类加载机制
  • 原文地址:https://www.cnblogs.com/smile1/p/5723181.html
Copyright © 2011-2022 走看看