Python1.2-Python入门之进阶语法 2023.4.28

目录

一.列表推导式

二.三元表达式

三.断言

四.with-as

五.异常捕获处理方法

六.lambda

七.文件

八.常用库


一.列表推导式

# 列表推导式 如果数据很大会比for循环节省时间
def list_drived():
    my_list = [1, 2, 3]
    new_list = []
    for i in my_list:
        new_list.append(i * 2)
    print(new_list) # [2, 4, 6]
    new_list1=[i*2 for i in my_list if i>=1]
    print(new_list1) # [2, 4, 6]
    new_list2=[(x,y) for x in range(3) for y in range(3)]
    print(new_list2)
    # [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
if __name__=='__main__':
    list_drived()

二.三元表达式

# 三元表达式/条件表达式
# lam(1) True if if_lam(1) else lab(1) False
def ternary_expresion():
    age=18
    flag=1 if age>=18 else 0
    print(flag)
    flag2=(0,1)[age>=18]# 前为假后为真
    print(flag2)
if __name__=='__main__':
    ternary_expresion()

三.断言

# 断言 断言是简易版的if语句 用于判断某个表达式的值
# 若为假 则程序停止运行 抛出AssertionError错误
def assert_test():
    """
    断言是给开发人员看的,常用断言函数有
    assertEqual(a,b,msg=msg):判断两个值是否相等;
    assertNotEqual(a,b,msg=msg):上一函数的反义;
    self.assertTrue(a,msg=none):判断变量是否为 True;
    assertFalse(a,msg=none):同上反义;
    assertIsNone(obj=‘’):判断 obj 是否为空;
    assertIsNotNone(obj=‘’):同上反义
    :return:
    """
    age=17
    assert age>=18,'sorry you age too small'
    # AssertionError: sorry you age too small
    print('begin ganme')
    
if __name__=='__main__':
    assert_test()

四.with-as

# with-as 可以理解成python的控制流语句也可以是简化版的try
def with_as():
    # 手动打开文件
    file=open('./file.txt')
    try:
        data = file.read()
        print(data)
    finally:
        file.close()
    #with-as 打开文件
    with open('file.txt') as file:
        data = file.read()
    print(data)
if __name__=='__main__':
    with_as()

五.异常捕获处理方法

# 异常捕获
def try_except():
    """
    try:
        可能出错的代码块
    except 异常类型:
        代码出错执行的代码块
    else:
        代码正常执行的代码块
    finally:
        无论代码是否有异常出现都会执行的的代码块

    其中常见异常类型
        AttributeError 某个对象没有属性
        Exception 通用型异常对象
        FileNotFoundError 找不到文件
        IOError 输入输出异常
        IndexError 索引异常
        KeyError 键异常
        NameError 对象名称异常
        SyntaxError 语法错误
        TypeError 类型错误
        ValueError 值错误
    :return:
    """

六.lambda

def lambda_learn():
    fun= lambda x:x+1
    print(fun(1))# 输出为2
    """
        lambda表达式也叫匿名表达式(单表达式函数)
        lambda与def区别:1.lambda无函数名 
                       2.for不能用在lambda但是if可以 
                       3.lambda不能共享给其他程序调用 
                       4.lambda能作为其他数据类型的值
    """
if __name__=='__main__':
    lambda_learn()

七.文件

import os
def file():
    print(os.getcwd())# D:\pythonProjects\learnPython
    #打开文件
    fileName='file.txt'
    with open(fileName,encoding='utf-8') as file1:
        data1=file1.read()
    print(data1)
    writeNode=data1+'\nhello world3'
    with open(fileName,mode='w',encoding='utf-8') as file2:
        file2.write(writeNode)# 会删除前面内容重新写

if __name__=='__main__':
     file()

八.常用库

常用标准库清单如下

  1. sys
  2. os
  3. math
  4. random
  5. pikle
  6. subprocess
  7. queue
  8. StringIO
  9. logging
  10. json
  11. time
  12. datetime
  13. re
  14. csv
  15. threading
  16. asyncio
import random
def random_test():
    num1=0#r andom.seed(100)# 如果使用seed产生的随机数会不变
    num2=random.random()
    num3=random.randint(1,10)#生产一个x,y区间之内的整数
    num4=random.randrange(1,10)
    num5=random.gauss(0,1)
    """
    expovariate:生成一个 (0,∞) 之间的随机整数,指数分布;
    gammavariate:采用 gamma 分布;
    gauss:采用高斯(正太)分布;
    lognormvariate:对数正太分布;
    normalvariate:正太分布;
    vonmisesvariate:冯米赛斯分布;
    paretovariate:帕累托分布;
    weibullvariate:韦伯分布。
    """

这就是今天python的学习内容啦。明天大概会学习数据库的操作,socket和发送文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值