01. Python基础学习笔记

  1. Python特点
    Python 是完全面向对象的语言
    a. 函数、模块、数字、字符串都是对象,在 Python 中一切皆对象
    b. 完全支持继承、重载、多重继承
    c. 支持重载运算符,也支持泛型设计
    Python 拥有一个强大的标准库,Python 语言的核心只包含 数字、字符串、列表、字典、文件 等常见类型和函数,而由 Python 标准库提供了 系统管理、网络通信、文本处理、数据库接口、图形系统、XML 处理 等额外的功能
    Python 社区提供了大量的第三方模块,使用方式与标准库类似。它们的功能覆盖 科学计算、人工智能、机器学习、Web 开发、数据库接口、图形系统 多个领域

  2. Python的优缺点
    优点
    a. 简单、易学
    b. 免费、开源
    c. 面向对象
    d. 丰富的库
    e. 可扩展性
    如果需要一段关键代码运行得更快或者希望某些算法不公开,可以把这部分程序用 C 或 C++ 编写,然后在 Python 程序中使用它们
    ……

缺点
a. 运行速度
b. 国内市场较小
c. 中文资料匮乏

  1. Centos7安装Python3的方法(使用conda安装吧)
    链接:https://www.cnblogs.com/s-seven/p/9105973.html
    windows虚拟环境搭建链接:https://blog.csdn.net/qq_33404767/article/details/86479820

  2. 算术运算符
    // 取整除 返回除法的整数部分(商) 9 // 2 输出结果 4

  • 处理乘法运算外,还能拼接字符串
  1. 变量的基本使用
    在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 才会被创建

5.1. 变量的类型
在 Python 中定义变量是 不需要指定类型(在其他很多高级语言中都需要)
数据类型可以分为 数字型 和 非数字型
数字型
整型 (int)
浮点型(float)
布尔型(bool)
真 True 非 0 数 —— 非零即真
假 False 0
复数型 (complex)
主要用于科学计算,例如:平面场问题、波动问题、电感电容等问题

	非数字型
		字符串
		列表
		元组
		字典

使用 type 函数可以查看一个变量的类型

5.2. 变量格式化输出
在 Python 中可以使用 print 函数将信息输出到控制台
如果希望输出文字信息的同时,一起输出 数据,就需要使用到 格式化操作符
% 被称为 格式化操作符,专门用于处理字符串中的格式
包含 % 的字符串,被称为 格式化字符串
% 和不同的 字符 连用,不同类型的数据 需要使用 不同的格式化字符

格式化字符 含义
%s 字符串
%d 有符号十进制整数,%06d 表示输出的整数显示位数,不足的地方使用 0 补全
%f 浮点数,%.2f 表示小数点后只显示两位
%% 输出 %

a. 定义字符串变量 name,输出 我的名字叫 小明,请多多关照!
b. 定义整数变量 student_no,输出 我的学号是 000001
c. 定义小数 price、weight、money,输出 苹果单价 9.00 元/斤,购买了 5.00 斤,需要支付 45.00 元
d. 定义一个小数 scale,输出 数据比例是 10.00%

print(“我的名字叫 %s,请多多关照!” % name)
print(“我的学号是 %06d” % student_no)
print(“苹果单价 %.02f 元/斤,购买 %.02f 斤,需要支付 %.02f 元” % (price, weight, money))
print(“数据比例是 %.02f%%” % (scale * 100))

  1. 判断语句
    6.1. 需求
    6.1.1. 从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3)
    6.1.2. 电脑 随机 出拳 —— 先假定电脑只会出石头,完成整体代码功能
    6.1.3. 比较胜负

6.2. 基础代码实现
# 从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3)
player = int(input(“请出拳 石头(1)/剪刀(2)/布(3):”))

# 电脑 随机 出拳 - 假定电脑永远出石头
computer = 1

# 比较胜负
# 如果条件判断的内容太长,可以在最外侧的条件增加一对大括号
# 再在每一个条件之间,使用回车,PyCharm 可以自动增加 8 个空格
if ((player == 1 and computer == 2) or
		(player == 2 and computer == 3) or
		(player == 3 and computer == 1)):

	print("噢耶!!!电脑弱爆了!!!")
elif player == computer:
	print("心有灵犀,再来一盘!")
else:
	print("不行,我要和你决战到天亮!")

6.3. 随机数的处理
在 Python 中,要使用随机数,首先需要导入 随机数 的 模块 —— “工具包”
import random

导入模块后,可以直接在 模块名称 后面敲一个 . 然后按 Tab 键,会提示该模块中包含的所有函数
random.randint(a, b) ,返回 [a, b] 之间的整数,包含 a 和 b
例如:
	random.randint(12, 20)  # 生成的随机数n: 12 <= n <= 20   
	random.randint(20, 20)  # 结果永远是 20   
	random.randint(20, 10)  # 该语句是错误的,下限必须小于上限
  1. 循环语句(九九乘法表)
    row = 1

while row <= 9:
col = 1
# 最大打印row列
while col <= row:
# end = “”,表示输出结束后,不换行
# “\t” 可以在控制台输出一个制表符,协助在输出文本是对齐
print("%d * %d = %d" % (col, row, row * col), end=" ")
col += 1

print("")
row += 1

//===========================================================================================================
students = [
{“name”: “阿土”,
“age”: 20,
“gender”: True,
“height”: 1.7,
“weight”: 75.0},
{“name”: “小美”,
“age”: 19,
“gender”: False,
“height”: 1.6,
“weight”: 45.0},
]

find_name = “阿土”

for stu_dict in students:

print(stu_dict)

# 判断当前遍历的字典中姓名是否为find_name
if stu_dict["name"] == find_name:
    print("找到了")

    # 如果已经找到,直接退出循环,就不需要再对后续的数据进行比较
    break

else:
print(“没有找到”)

print(“循环结束”)

  1. 函数基础
  2. 高级变量
    列表
    尽管 Python 的 列表 中可以 存储不同类型的数据
    但是在开发中,更多的应用场景是
  3. 列表 存储相同类型的数据
  4. 通过 迭代遍历,在循环体内部,针对列表中的每一项元素,执行相同的操作

元组
元组和列表之间的转换
使用 list 函数可以把元组转换成列表
list(元组)

使用 tuple 函数可以把列表转换成元组
tuple(列表)
字典

字符串

切片
切片 方法适用于 字符串、列表、元组
a. 切片 使用 索引值 来限定范围,从一个大的 字符串 中 切出 小的 字符串
b. 列表 和 元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
c. 字典 是一个 无序 的集合,是使用 键值对 保存数据

    1. 截取从 2 ~ 5 位置 的字符串
    1. 截取从 2 ~ 末尾 的字符串
    1. 截取从 开始 ~ 5 位置 的字符串
    1. 截取完整的字符串
    1. 从开始位置,每隔一个字符截取字符串
    1. 从索引 1 开始,每隔一个取一个
    1. 截取从 2 ~ 末尾 - 1 的字符串
    1. 截取字符串末尾两个字符
    1. 字符串的逆序(面试题)

num_str = “0123456789”

1. 截取从 2 ~ 5 位置 的字符串

print(num_str[2:6])

2. 截取从 2 ~ 末尾 的字符串

print(num_str[2:])

3. 截取从 开始 ~ 5 位置 的字符串

print(num_str[:6])

4. 截取完整的字符串

print(num_str[:])

5. 从开始位置,每隔一个字符截取字符串

print(num_str[::2])

6. 从索引 1 开始,每隔一个取一个

print(num_str[1::2])

倒序切片

-1 表示倒数第一个字符

print(num_str[-1])

7. 截取从 2 ~ 末尾 - 1 的字符串

print(num_str[2:-1])

8. 截取字符串末尾两个字符

print(num_str[-2:])

9. 字符串的逆序(面试题)

print(num_str[::-1])

变量进阶
使用 id() 函数可以查看变量中保存数据所在的 内存地址

在 Python 中,函数的 实参/返回值 都是是靠 引用 来传递来的
def test(num):

print("-" * 50)
print("%d 在函数内的内存地址是 %x" % (num, id(num)))

result = 100

print("返回值 %d 在内存中的地址是 %x" % (result, id(result)))
print("-" * 50)

return  result

a = 10
print(“调用函数前 内存地址是 %x” % id(a))

r = test(a)

print(“调用函数后 实参内存地址是 %x” % id(a))
print(“调用函数后 返回值内存地址是 %x” % id®)

全局变量和局部变量
num = 10

def demo1():

print("demo1" + "-" * 50)

# global 关键字,告诉 Python 解释器 num 是一个全局变量
global num

num = 100
print(num)

def demo2():

print("demo2" + "-" * 50)
print(num)

demo1()
demo2()

print(“over”)

函数进阶
函数返回多个值
def measure():
“”“返回当前的温度”""

print("开始测量...")
temp = 39
wetness = 10
print("测量结束...")

return temp, wetness

temp, wetness = measure()

print(temp)
print(wetness)

交换两个数
解法 1 —— 使用其他变量

# 解法 1 - 使用临时变量
c = b
b = a
a = c

解法 2 —— 不使用临时变量

# 解法 2 - 不使用临时变量
a = a + b
b = a - b
a = a - b

解法 3 —— 异或运算
a = a ^ b
b = a ^ b
a = a ^ b

解法 4 —— Python 专有,利用元组

a, b = b, a

面试题 —— +=
def demo(num, num_list):

print("函数内部代码")

# num = num + num
num += num
# num_list.extend(num_list) 由于是调用方法,所以不会修改变量的引用
# 函数执行结束后,外部数据同样会发生变化
num_list += num_list

print(num)
print(num_list)
print("函数代码完成")

gl_num = 9
gl_list = [1, 2, 3]
demo(gl_num, gl_list)
print(gl_num)
print(gl_list)

多值参数
有时可能需要 一个函数 能够处理的参数 个数 是不确定的,这个时候,就可以使用 多值参数
python 中有 两种 多值参数:
参数名前增加 一个 * 可以接收 元组
参数名前增加 两个 * 可以接收 字典
一般在给多值参数命名时,习惯使用以下两个名字
*args —— 存放 元组 参数,前面有一个 *
**kwargs —— 存放 字典 参数,前面有两个 *
args 是 arguments 的缩写,有变量的含义
kw 是 keyword 的缩写,kwargs 可以记忆 键值对参数

def demo(num, *args, **kwargs):

print(num)
print(args)
print(kwargs)

demo(1, 2, 3, 4, 5, name=“小明”, age=18, gender=True)

元组和字典的拆包
def demo(*args, **kwargs):

print(args)
print(kwargs)

需要将一个元组变量/字典变量传递给函数对应的参数

gl_nums = (1, 2, 3)
gl_xiaoming = {“name”: “小明”, “age”: 18}

会把 num_tuple 和 xiaoming 作为元组传递个 args

demo(gl_nums, gl_xiaoming)

demo(*gl_nums, **gl_xiaoming)

  1. python特殊函数 str(self)和__repr__(self)
    https://blog.csdn.net/liuweiyuxiang/article/details/84555544
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值