zoukankan      html  css  js  c++  java
  • 【python-Day2】

    【心灵鸡汤】
    推荐书籍:《三体》《百年孤独》《硅谷钢铁侠》

    【Tips && Review】

    1. vim中,tab键就是一个tab键,一个tab不是4个空格,会比4个空格要长,所以执行程序时会报错。所以如果在linux中编写代码,不要用tab。

    2. 格式化,如果单行,可以"" or '' 如果多行,用''' ''' or """ """

    3. python 没有常量的概念,代表常量要通常要大写, 例如: MYSQL_CONNECTION = '192.168.1.23'

    4. 能直接import的就是标准库,python自带100多个。
    使用三方库,下载安装方式(pip或者源码),然后导入即可。下载源可修改成国内镜像源:豆瓣, linux下修改配置文件即可。

    5. 全局三方库存放位置:site-packages目录 or dist-packages目录 (可用sys.path查看)

    6. python3: pyc文件会默认放到__pycache__目录下
    python是先编译后解释,实际是将pyc交给解释器。
    手动执行一个py文件,不会生成pyc,除非是执行另一个程序去调用这个py文件,才会生成pyc。
    如果py文件有改动,先会判断py和对应的pyc的时间是否一致,如果py改动了,那py文件修改时间也会是新的,这时就会重新编译。

    7. 退出程序
    exit()

    exit('Bye!') #退出时打印字符串

    sys.exit() #前提是import sys

    8. user = 'hexu'
    passwd = '123456'
    ==> 可以写成: user,passwd = 'hexu','123456' # 由这个引出列表的概念

    9. 数据类型
    包括:数字、布尔值、字符串、列表、元组、字典
    查看类型:type()
    (1)数字
    整型:int
    浮点型:float
    长整型:long

    (2)布尔值(用作判断)
    True是1
    False是2
       (3)元组(只读)
    # 定义一个元组
    read = ('AAA','BBB','CCC','AAA')
    
    # 打印
    print(read)
    ==> ('AAA', 'BBB', 'CCC', 'AAA')
    
    # 计数
    print(read.count('AAA'))
    ==> 2
    
    # 找索引,有重复的数据时,只能找到重复数据的第一个索引
    print(read.index('AAA'))
    ==> 0

    【重点介绍列表、字符串、字典的使用】

    1. 列表

    python列表:解决一个变量中存多个值。python叫列表,其它语言叫数组,列表中每一个值叫做一个元素,列表中也可以放变量,可以放元组。
    列表中的元素开始都是从0开始,取最后一个是[-1],这叫下标。
    切片:顾首不顾尾,不能反着取值,也就是不能取倒数第一 【至】 倒数第5这类的
    列表中也可以放列表、元组

    # 列表基本格式
    team = ['aaa','bbb','ccc','ddd','eee','fff','ggg','hhh']
    print(team)
    ==> ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg', 'hhh']
    
    # 4-5列插入'alex','wupeiqi'
    team.insert(3,'alex')
    team.insert(4,'wupeiqi')
    print(team)
    ==> ['aaa', 'bbb', 'ccc', 'alex', 'wupeiqi', 'ddd', 'eee', 'fff', 'ggg', 'hhh']
    
    # 取出第3-6人
    print(team[2:6])
    ==> ['ccc', 'alex', 'wupeiqi', 'ddd']
    
    # 取前五人
    print(team[:5])
    ==> ['aaa', 'bbb', 'ccc', 'alex', 'wupeiqi']
    
    # 取第5到最后的人
    print(team[4:])
    ==> ['wupeiqi', 'ddd', 'eee', 'fff', 'ggg', 'hhh']
    
    # 取后4人
    print(team[-4:])
    ==> ['eee', 'fff', 'ggg', 'hhh']
    
    # 删除第7个人
    team.remove(team[6])
    print(team)
    ==> ['aaa', 'bbb', 'ccc', 'alex', 'wupeiqi', 'ddd', 'fff', 'ggg', 'hhh']
    
    # 删除新加入的两个人:'alex','wupeiqi'
    del team[3:5]  # del 可以删除任何数据
    print(team)
    ==> ['aaa', 'bbb', 'ccc', 'ddd', 'fff', 'ggg', 'hhh']
    
    # 修改元素
    team[0] = 'aaa-leader'
    print(team)
    ==> ['aaa-leader', 'bbb', 'ccc', 'ddd', 'fff', 'ggg', 'hhh']
    
    # 隔人打印=迈2步
    print(team[0::2])  # 也可以写成 print(team[::2])
    ==> ['aaa-leader', 'ccc', 'fff', 'hhh']
    
    # 取完一次还可继续取
    >>> name = ['hexu','liuwei']
    >>> name[0][0]
    'h'
    
    # index只会显示找到的第一个索引
    >>> name = ['hexu','liuwei','hexu']
    >>> name.index('hexu')
    0
    
    # 排序:排序字母从a-z,数字从小到大 注意:py3中,sort不会将数字和字符串同时排序,py2可以
    name = ['c','d','a','e','b']
    name.sort()
    print(name)
    ==> ['a', 'b', 'c', 'd', 'e']
    
    # 列表追加
    name = ['c','d','a','e','b']
    name1 = ('xxx','yyy','zzz')
    name.extend(name1)
    print(name)
    >>> ['c', 'd', 'a', 'e', 'b', 'xxx', 'yyy', 'zzz']
    
    # pop() 默认是将最后一个元素删除
    list = [1,2,3,4,5,6]
    list.pop()
    print(list)
    ==> [1, 2, 3, 4, 5]
    
    # 删除第四个元素
    list = [1,2,3,4,5,6]
    list.pop(3)
    print(list)
    ==> [1, 2, 3, 5, 6]
    
    # 反转
    list = [1,2,3,4,5,6]
    list.reverse()
    print(list)
    ==> [6, 5, 4, 3, 2, 1]
    
    # 操作列表的函数
    list = [1,2,3,4,5,6]
    print(len(list)) # 打印列表的长度
    ==> 6
    
    print(max(list)) # 打印列表中最大的值
    ==> 6
    
    print(min(list)) # 打印列表中最小的值
    ==> 1
    
    列表中增加一个列表,name.copy()的话,如果把列表中的列表更新,两边都会同时更新 ,因为内存地址是一致的
    完全cpoy:
    import copy # 三方库
    copy.copy() # 浅copy
    copy.deepcopy()  # 深copy  内存数据也copy过来了

    2. 字符串

    #定义字符串
    string = 'Hello World!'
    
    # 打印字符串
    print(string)
    ==> Hello World!
    # 查看字符串长度,空格也算一个字符 print(len(string)) ==> 12
    # 字符类型 print(type(string))
    ==> <class 'str'>
    # strip() 去掉字符串结尾的空格,可以用作判断输入的内容结尾有空格时,也会识别
    string = 'Hello World! '
    print(string.strip())
    ==> Hello World!
    # 分割 split() name = 'hexu,xuelu' name1 = name.split(',') # 以逗号进行分隔 print(name1) # 输出的结果是列表 ==> ['hexu', 'xuelu']
    # 合并 join() print('|'.join(name1)) # 用'|' 将刚才生成的列表合并
    ==> hexu|xuelu
    # 判断字符串有没有空格,有返回True,没有则返回False
    msg = 'I am a Man!'
    print('' in msg)
    ==> True
    # 变量赋值的两种形式 _first_ = 'My name is {name},{age} years old' second = _first_.format(name = 'Hexu', age = 28) print(second)
    ==> My name is Hexu,28 years old _first_
    = 'My name is {0},{1} years old' second = _first_.format('Xuelu', 26) print(second) ==> My name is Xuelu,26 years old
    # 切片 msg = 'ABCDEFGHIJKLMN' print(msg[3:7:2]) # 先取出第4-7的字符:DEFG 最后的2表示步长,隔2取字符
    ==> DF
    # 以输出的字符为中心,平均分配40个‘#’,也就是一边一半 print(string.center(40, '#'))
    ==> ##############Hello World!##############
    # 判断字符串中有没有某些内容
    string = 'This is a new begining!'
    if string.find('hero'): print(string) else: print('没有找到你输入的内容')
    ==> This is a new begining! # 字符串里没有‘hero’,为什么也打印出来了?
    # isdigit表示判断age的值是不是数字类型: age = '28' if age.isdigit(): print('True') else: print('False')
    # 规定用户必须输入数字类型时,可使用isdigit
    age = input('年龄: ')
    if age.isdigit():
        age = int(age)
        print('你输入的年龄是:',age)
    else:
        print('输入有误,必须是数字,请重新输入.')
    # 判断有无特殊字符,有返回False,没有则返回True name = 'Hero#CC' print(name.isalnum())
    ==> False
    # startswith endswith 判断是以什么字符开头,匹配到返回True,匹配不到返回False car = 'My car is a CC!' print(car.startswith('M'))
    ==> True
    print(car.startswith('My'))
    ==> True
    print(car.endswith('Passat'))
    ==> False
    # 大小写字符转换 color = 'blue,red,balck,Yellow'
    print(color.upper()) # 全部转成大写
    ==> BLUE,RED,BALCK,YELLOW

    print(color.lower()) # 全部转成小写
    ==> blue,red,balck,yellow

    print(color.capitalize()) # 首个字母大写 ==> Blue,red,balck,Yellow

    3. 字典

     没有下标,通过key取值
    打印出的字典是无序的
    几个需要注意使用的函数:
    items 转换成列表了,数据量大的时候不要这么做,很耗时
    setdefault 如果存在就返回 如果不存在,就默认添加k,v值
    popitem 随机删,不要用
    fromkeys 不要用
    id_db = {
        1111:{
            'name':'Hexu',
            'age':28,
            'addr':'Beijing'
        },
        2222:{
            'name':'Xuelu',
            'age':26,
            'addr':'Shahe'
        }
    }
    
    # 字典是无序的
    print(id_db)  
    ==> {2222: {'name': 'Xuelu', 'addr': 'Shahe', 'age': 26}, 1111: {'name': 'Hexu', 'addr': 'Beijing', 'age': 28}}
    
    # 通过key取value
    print(id_db[1111]) 
    ==> {'name': 'Hexu', 'addr': 'Beijing', 'age': 28}
    
    # 另一种通过key取value的方式,get取值不报错
    v = id_db.get(1111)
    print(v)
    ==> {'name': 'Hexu', 'addr': 'Beijing', 'age': 28}
    
    # 修改key名字
    id_db[1111]['name'] = 'new-Hexu'
    print(id_db)
    ==> {2222: {'name': 'Xuelu', 'addr': 'Shahe', 'age': 26}, 1111: {'name': 'new-Hexu', 'addr': 'Beijing', 'age': 28}}
    
    # 添加key-value,无序的
    id_db[2222]['qq_num'] = '664076968'
    print(id_db)
    ==> {2222: {'name': 'Xuelu', 'addr': 'Shahe', 'qq_num': '664076968', 'age': 26}, 1111: {'name': 'new-Hexu', 'addr': 'Beijing', 'age': 28}}
    
    # 删除key,对应的值也会跟着删除
    id_db[2222].pop('addr')
    print(id_db)
    ==> {2222: {'name': 'Xuelu', 'qq_num': '664076968', 'age': 26}, 1111: {'name': 'new-Hexu', 'addr': 'Beijing', 'age': 28}}
    
    # 将字典test加入到id_db字典中
    test = {
        3333:{
            'name':'bbbb    '
        }
    }
    id_db.update(test)   
    print(id_db)
    ==> {3333: {'name': 'bbbb'}, 2222: {'name': 'Xuelu', 'qq_num': '664076968', 'age': 26}, 1111: {'name': 'new-Hexu', 'addr': 'Beijing', 'age': 28}}
    
    # 取出所有value,输出的结果是以列表的形式展现
    print(id_db.values())  
    ==> dict_values([{'name': 'bbbb'}, {'name': 'Xuelu', 'qq_num': '664076968', 'age': 26}, {'name': 'new-Hexu', 'addr': 'Beijing', 'age': 28}])
    
    # 取出所有key,输出的结果是以列表的形式展现
    print(id_db.keys())  
    ==> dict_keys([3333, 2222, 1111])
    
    # 判断某个key是否在整个字典中,
    print(1111 in id_db)
    ==> True


  • 相关阅读:
    测试EF6.1.3和OrmLite性能
    MVC自定义分页(附表跳转页Loading提示)
    仿京东手机充值进度导航
    PTA(Advanced Level)1052.Linked List Sorting.
    用双指针法巧解——PTA(Advanced Level)1032.Sharing
    PTA(Advanced Level)1022.Digital Library
    PTA(Advanced Level)1071.Speech Patterns
    PTA(Advanced Level)1054.The Dominant Color
    PTA(Advanced Level)1100.Mars Numbers
    PTA(Advanced Level)1060.Are They Equal
  • 原文地址:https://www.cnblogs.com/begin00/p/5510198.html
Copyright © 2011-2022 走看看