• python学习之路,python基础(一)


    变量和简单数据类型

    变量

    python中的变量定义无需声明变量类型

    变量的命名和使用

    1.变量名只能包含字母,下划线,数字。变量名只能以字母或下划线打头,不能使用数字打头。

    2.变量名不能包含空格

    3.不要将python关键字和函数名作为变量

    4.变量名应该简短又具有描述性,尽量少使用数字1和字母O

    简单数据类型

    1.数字

    python中的数字类型分为整型,长整型,浮点型

    (int)整型:

    在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647

    在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

    使用 int(字符串类型数字)强制转换

    (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.布尔型

    真:True,

    假:False,

    3.字符串

     1 "Hello world" 

    万恶的字符串拼接 +
      python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。
    #优先掌握的操作:
    #1、按索引取值(正向取+反向取) :只能取
    #2、切片(顾头不顾尾,步长)
    #3、长度len
    #4、成员运算in和not in
    #5、移除空白strip
    #6、切分split
    #7、循环
    #1、strip,lstrip,rstrip :去除首尾相关字符
    #2、lower,upper  :大小写转换 , title:单词首字母大写 
    #3、startswith,endswith :判断是否以xxx开头,结尾,返回布尔值
    #4、format的三种玩法 : 格式化输出
    #5、split,rsplit :分割,返回列表对象
    #6、join :obj1.jion(obj2),将obj1依次插入到可迭代对象我obj2的每个元素之间
    #7、replace 替换
    #8、isdigit 可以判断bytes和unicode类型,是最常用的用于于判断字符是否为"数字"的方法
    #strip
    name='*egon**'
    print(name.strip('*'))
    print(name.lstrip('*'))
    print(name.rstrip('*'))
    
    #lower,upper
    name='egon'
    print(name.lower())
    print(name.upper())
    
    #startswith,endswith
    name='alex_SB'
    print(name.endswith('SB'))
    print(name.startswith('alex'))
    
    #format的三种玩法
    res='{} {} {}'.format('egon',18,'male')
    res='{1} {0} {1}'.format('egon',18,'male')
    res='{name} {age} {sex}'.format(sex='male',name='egon',age=18)
    
    #split
    name='root:x:0:0::/root:/bin/bash'
    print(name.split(':')) #默认分隔符为空格
    name='C:/a/b/c/d.txt' #只想拿到顶级目录
    print(name.split('/',1))
    
    name='a|b|c'
    print(name.rsplit('|',1)) #从右开始切分
    
    #join
    tag=' '
    print(tag.join(['egon','say','hello','world'])) #可迭代对象必须都是字符串
    
    #replace
    name='alex say :i have one tesla,my name is alex'
    print(name.replace('alex','SB',1))
    
    #isdigit:可以判断bytes和unicode类型,是最常用的用于于判断字符是否为"数字"的方法
    age=input('>>: ')
    print(age.isdigit())
    
    示例
    示例

    其他操作,了解即可

    #1、find,rfind,index,rindex,count
    #2、center,ljust,rjust,zfill
    #3、expandtabs
    #4、captalize,swapcase,title
    #5、is数字系列
    #6、is其他
     1 #find,rfind,index,rindex,count
     2 name='egon say hello'
     3 print(name.find('o',1,3)) #顾头不顾尾,找不到则返回-1不会报错,找到了则显示索引
     4 # print(name.index('e',2,4)) #同上,但是找不到会报错
     5 print(name.count('e',1,3)) #顾头不顾尾,如果不指定范围则查找所有
     6 
     7 #center,ljust,rjust,zfill
     8 name='egon'
     9 print(name.center(30,'-'))
    10 print(name.ljust(30,'*'))
    11 print(name.rjust(30,'*'))
    12 print(name.zfill(50)) #用0填充
    13 
    14 #expandtabs
    15 name='egon	hello'
    16 print(name)
    17 print(name.expandtabs(1))
    18 
    19 #captalize,swapcase,title
    20 print(name.capitalize()) #首字母大写
    21 print(name.swapcase()) #大小写翻转
    22 msg='egon say hi'
    23 print(msg.title()) #每个单词的首字母大写
    24 
    25 #is数字系列
    26 #在python3中
    27 num1=b'4' #bytes
    28 num2=u'4' #unicode,python3中无需加u就是unicode
    29 num3='' #中文数字
    30 num4='' #罗马数字
    31 
    32 #isdigt:bytes,unicode
    33 print(num1.isdigit()) #True
    34 print(num2.isdigit()) #True
    35 print(num3.isdigit()) #False
    36 print(num4.isdigit()) #False
    37 
    38 #isdecimal:uncicode
    39 #bytes类型无isdecimal方法
    40 print(num2.isdecimal()) #True
    41 print(num3.isdecimal()) #False
    42 print(num4.isdecimal()) #False
    43 
    44 #isnumberic:unicode,中文数字,罗马数字
    45 #bytes类型无isnumberic方法
    46 print(num2.isnumeric()) #True
    47 print(num3.isnumeric()) #True
    48 print(num4.isnumeric()) #True
    49 
    50 #三者不能判断浮点数
    51 num5='4.3'
    52 print(num5.isdigit())
    53 print(num5.isdecimal())
    54 print(num5.isnumeric())
    55 '''
    56 总结:
    57     最常用的是isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景
    58     如果要判断中文数字或罗马数字,则需要用到isnumeric
    59 '''
    60 
    61 #is其他
    62 print('===>')
    63 name='egon123'
    64 print(name.isalnum()) #字符串由字母或数字组成
    65 print(name.isalpha()) #字符串只由字母组成
    66 
    67 print(name.isidentifier())
    68 print(name.islower())
    69 print(name.isupper())
    70 print(name.isspace())
    71 print(name.istitle())
    72 
    73 示例
    示例

    4.列表

    list = ["jack","tom","john","thomas"]
    #取值
       list[0] >>> "jack"
       list[-1] >>> "thomas"

    #重新赋值
        list[0] = 'boby'


    #优先掌握的操作:
    #1、按索引存取值(正向存取+反向存取):即可存也可以取      
    #2、切片(顾头不顾尾,步长)
    #3、长度 len()
    #4、成员运算in和not in
    #5、追加 append()
    #6、删除 del(),pop(),remove()
    #7、循环 for in

    #其他操作:
    #1、排序 sort()永久性,sorted()临时
    #2、翻转顺序 reverse()
    #3、创建数字列表 range()
    #4、列表生成式,生成器
    #5、复制列表,copy()

    #ps:反向步长
    l=[1,2,3,4,5,6]
    
    #正向步长
    l[0:3:1] #[1, 2, 3]
    #反向步长
    l[2::-1] #[3, 2, 1]
    #列表翻转
    l[::-1] #[6, 5, 4, 3, 2, 1]

    5.元组(不可变列表)

    作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),主要是用来读,但是可以重新定义元组的内容
    #定义:与列表类型比,只不过[]换成()
    age=(11,22,33,44,55)本质age=tuple((11,22,33,44,55))
    
    #优先掌握的操作:
    #1、按索引取值(正向取+反向取):只能取   
    #2、切片(顾头不顾尾,步长)
    #3、长度
    #4、成员运算in和not in
    #5、循环

    6.字典(无序)

    作用:存多个值,key-value存取,取值速度快
    
    #定义:key必须是不可变类型,value可以是任意类型
    info={'name':'egon','age':18,'sex':'male'} #本质info=dict({....})
    或
    info=dict(name='egon',age=18,sex='male')
    或
    info=dict([['name','egon'],('age',18)])
    或
    {}.fromkeys(('name','age','sex'),None)
    
    #优先掌握的操作:
    #1、按key存取值:可存可取
    #2、长度len
    #3、成员运算in和not in
    #4、删除
    #5、键keys(),值values(),键值对items()
    #6、循环

    7.集合

    作用:去重,关系运算,
    
    #定义:
                知识点回顾
                可变类型是不可hash类型
                不可变类型是可hash类型
    
    #定义集合:
                集合:可以包含多个元素,用逗号分割,
                集合的元素遵循三个原则:
                 1:每个元素必须是不可变类型(可hash,可作为字典的key)
                 2:没有重复的元素
                 3:无序
    
    注意集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值
    
    #优先掌握的操作:
    #1、长度len
    #2、成员运算in和not in
    #3、|合集
    #4、&交集
    #5、-差集
    #6、^对称差集
    #7、==
    #8、父集:>,>= 
    #9、子集:<,<=  

    8.数据类型总结

    按存储空间的占用区分(从低到高)
    数字 字符串
    集合:无序,即无序存索引相关信息 元组:有序,需要存索引相关信息,不可变 列表:有序,需要存索引相关信息,可变,需要处理数据的增删改 字典:无序,需要存key与value映射的相关信息,可变,需要处理数据的增删改

    按存值个数区分
    标量/原子类型 数字,字符串
    容器类型 列表,元组,字典




    按可变不可变区分

    可变 列表,字典
    不可变 数字,字符串,元组

     

    按访问顺序区分

    直接访问 数字
    顺序访问(序列类型) 字符串,列表,元组
    key值访问(映射类型) 字典

      



  • 相关阅读:
    jquery 页面滚动到底部事件
    01上古天真论 [音频]
    pyjnius 通过包名获取其他应用程序的名称
    python3 获取当前网络子网ip
    堆排序、快速排序、归并排序总结
    Linux 进程
    链表(转载)
    15-C语言结构体(转载)
    IP地址的分类
    TCP/IP详解
  • 原文地址:https://www.cnblogs.com/Thomas-blog/p/8900221.html
Copyright © 2020-2023  润新知