python

一、Python基础

1.1数据容器对比总结

​ 1、数据容器:

列表元组字符串集合字典
定义方式[ ]( )" "{ }{key : value}
数据类型可混合可混合仅字符可混合key:除字典外任意类型。value:任意
有序性
可修改

​ 2、特点

类型支持不支持
下标索引列表、元组、字符串集合、字典
元素重复列表、元组、字符串集合、字典
可修改列表、集合、字典元组、字符串

​ 3、通用操作

功能描述
max()取出容器中最大的元素
min()取出容器中最小的元素
len()容器中元素个数
list()转列表
tuple()转元组
str()转字符串
set()转集合
sorted(序列,[reverse = True])排序,reverse = True为降序,返回列表

1.2 函数

1.2.1 函数多返回值

​ java不可返回多个值,python可以返回多个值,且可以是不同的类型

def test():
    return 1, "hello", True

x, y, z = test()

print(x)
print(y)
print(z)
#---------输出结果------------
1
hello
True
1.2.2 函数的多入参

1、固定个数入参

​ 略

2、缺省入参

​ 当传入的参数不足时,函数会自动用默认值补全没有传入的参数

def user_info(name, age, gender='男'):
    print(f"姓名:{name},年龄:{age},性别:{gender}")

user_info("小米", "23")
#---------输出结果------------
姓名:小米,年龄:23,性别:男

3、多入参缺省

​ 当一个函数有多个入参,但是调用时不需要传递那么多的参数,则需要使用关键字指定传入的是哪一个参数

​ 定义函数时,不给入参的需要在定义函数时给定默认值

def fun(name, age, gender="男", addr="上海", phone=None):
    print(f"name={name},age={age},gender = {gender},phone = {phone},addr = {addr}")

fun("小明", "23", phone="12345678921")
#---------输出结果------------
name=小明,age=23,gender = 男,phone = 12345678921,addr = 上海

4、不定长入参

(1)位置不定长

​ 传入的关键字数量不受限制

def user_info(*args):
    print(f"args的参数类型是:{type(args)},内容是:{args}")

user_info(1, 2, 3, 4, '小米', '男')
#---------输出结果------------
args的参数类型是:<class 'tuple'>,内容是:(1, 2, 3, 4, '小米', '男')

(2)关键字不定长

​ 传入的必须是key : value类型的数据

def user_info(**args):
    print(f"args的参数类型是:{type(args)},内容是:{args}")

user_info(name='小王', age=11, gender='男', addr='北京')
#---------输出结果------------
args的参数类型是:<class 'dict'>,内容是:{'name': '小王', 'age': 11, 'gender': '男', 'addr': '北京'}
1.2.3 函数作为入参

这是计算逻辑的传递而非数据的传递

def test_function(compute):
    result = compute(1, 2)
    print(f"compute的类型是:{type(compute)}")
    print(f"计算结果:{result}")

def compute(x, y):
    return x + y

test_function(compute)
#---------输出结果------------
compute的类型是:<class 'function'>
计算结果:3
1.2.4 lambda匿名函数

​ def关键字定义的函数,可以带有名字,可重复调用

​ lambda定义的函数,没有名字,只能临时调用一次

def test_function(compute):
    result = compute(1, 2)
    print(f"compute的类型是:{type(compute)}")
    print(f"计算结果:{result}")

def compute(x, y):
    return x + y

test_function(lambda x, y: x + y)
#---------输出结果------------
compute的类型是:<class 'function'>
计算结果:3

1.3 文件操作

测试文件:F:/test/test.txt

本课程无缝衔接数据开发、人工智能、数据分析,后续挑战30w年薪。
从零基础	开始入门学习Python,开发环境使用最新版python3.10,从软件下载,IDE使用,让学生一步步了解Python,掌握Python基础语法,掌握代码编写的规范和技巧,Bug调试能力,用Python第三方库做出可视化图表。
课程+配套练习学练结合,锻炼学生的自主解决问题的能力和举一反三能力,课堂生动有趣,不枯燥。
1.3.1 读取文件(模式r)

在程序中多次调用read时,下一个read会在上一个read的结尾处接着读取

1、open(全路径, 模式, 编码格式)函数

​ 不会自动close掉文件

f = open("F:/test/test.txt", "r", encoding="UTF-8")

print(type(f))

# read 方法:读取指定字节、指定内容
print(f"读取10个字节的结果:{f.read(10)}")
# print(f"读取全部字节的结果:{f.read()}")
print("----------------------------")
# readlines 方法:从当前光标处开始读取剩余的全部行
lines = f.readlines()
print(f"lines对象的类型{type(lines)}")
print(f"lines对象的内容{lines}")
# readline 方法:从当前光标处开始读取一行
line = f.readline()
print(f"line对象的类型{type(line)}")
print(f"line对象的内容{line}")
f.close()

2、with open(全路径, 模式, 编码格式)函数

​ 当文件操作完毕后,会自动close

with open("F:/test/test.txt", "r", encoding="UTF-8") as f:
    print(f"{f.readlines()}")
1.3.2 写入文件(模式w)

​ 1、如果文件不存在,则会新建文件

​ 2、若文件存在,则会清空文件,再写入内容

f = open("F:/test/write.txt", "w", encoding="UTF-8")
f.write("Hello World")  # 写入文件
f.flush()  # 将文件内容刷新到硬盘(内置了close功能)
1.3.3 写入文件(模式a)

​ 1、如果文件不存在,则会新建文件

​ 2、若文件存在,则会追加写入内容

f = open("F:/test/write.txt", "a", encoding="UTF-8")
f.write("Hello World")  # 写入文件
f.flush()  # 将文件内容刷新到硬盘(内置了close功能)

1.4 异常

1.4.1 try catch

​ 在except后定义一个元组,用来捕获指定的异常

try:
    fr = open("F:/test/ccc.txt", "r", encoding="UTF-8")
     1 / 0
    print(name)
except (ZeroDivisionError,NameError):
    print(f"出现异常:文件不存在,使用w模式打开")
    fr = open("F:/test/ccc.txt", "w", encoding="UTF-8")
1.4.2 try catch else
try:
    fr = open("F:/test/ccc.txt", "r", encoding="UTF-8")
     1 / 0
    print(name)
except (ZeroDivisionError,NameError):
    print(f"出现异常:文件不存在,使用w模式打开")
    fr = open("F:/test/ccc.txt", "w", encoding="UTF-8")
else:
    print(f"没有出现异常")
1.4.3 try catch finally

​ 略

1.5 模块

1.5.1 导入python的模块

​ 相当于java中的导包

[from 模块名] import [模块 | 类 | 变量 | 函数 | *] as [别名]

1、方式1

import time  # 导入python内置的time模块

time.sleep(10)

2、方式2

from time import sleep
print("你好")
sleep(5)
1.5.2 导入自定义的模块

my_modul.py

def test():
    print("我是my_modul.py的test方法")

test.py

from my_modul import test
test()

1、main变量

使用from去导入时,自动执行模块中的方法

若不想再from时去执行内部的函数,可以使用_ name_

from my_modul import test
if __name__ == '__main__'
	test(1,2)

原因:python内置了变量_ name_,在导包时,自动将文件的名字赋值给这个变量,因为文件名和main不相等,所以不会执行。但是在单独运行这个文件时,会将这个变量默认复制为变量名,所以会执行这个逻辑

2、all变量

在导包时若使用*导入所有变量,则会正常导入,但是如果将函数名写到all变量中,则才允许导入,相当于java的private类型的方法,仅允许内部使用

__all__ = ['test']

def test():
    print("我是my_modul.py的test方法")
def test2():
    print("我是my_modul.py的test2方法")

测试类:

from my_modul import *
test()
test2()	# 此处无法导入这个函数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值