Python基础·一
基础知识
计算机了解
硬件系统
软件系统:系统软件和应用软件,是指计算机证运行所需的各种各样的计算机程序。
python了解
Python的作者是Guido van Rossum(龟叔)
Python正式诞生于1991年
优点:简单、易学、免费开源、高层语言、可移植性、面向对象、可扩展性、丰富的库
缺点:运行速度,有速度要求的话,用C++改写关键部分
注释
单行注释(行注释)
以#开头,#右边的所有东西都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用。
多行注释(块注释)
Python程序中使用多行注释,可以用一对连续的三个引号 (单引号和双引号都可)
算数运算符
变量命名
- 标识符:自己定义的,如变量名,函数名等
标示符可以由字母、下划线和数字组成
不能以数字开头
不能与关键字重名 - 变量的命名规范
每个单词都使用小写字母
多个单词之间使用_下划线连接
驼峰命名法
格式化输出
print("格式化字符串" % 变量1)
print("我的学号是 %06d" % student_no)
语句
条件语句
将数字型数据直接作为判断条件时,非0数即为True, 0为False
# 1. 输入用户年龄
age = int(input("今年多大了?"))
# 2. 判断是否满 18 岁
if age >= 18:
print("可以进网吧嗨皮……")
else:
print("你还没长大,应该回家写作业!")
逻辑运算符
Python中的逻辑运算符包括:与and/或or/非not三种
# 要求只要有一门成绩 > 60 分就算合格
if python_score > 60 or c_score > 60:
print("考试通过")
else:
print("再接再厉!")
print(1 and 2) # 2
print(1 or 2) # 1
break 和continue
break 某一条件满足时,不再执行循环体中后续重复的代码,并退出循环
continue 某一条件满足时,不再执行本次循环体中后续重复的代码,但进入下一次循环判断
while 循环嵌套
h = 0
while h <= 23:
m = 0
while m <= 59: # 每小时,需要执行60次分针移动
s = 0
while s <= 59: # 每分钟,需要执行60次秒针移动
print("%02d:%02d:%02d" % (h, m, s))
time.sleep(1)
s += 1
m += 1
h += 1
高级变量类型
Python中数据类型可以分为数字型和非数字型
数字型:整型( int)、浮点型(float)、布尔型(bool)【真 True、假 False】
复数型( complex):主要用于科学计算
非数字型:字符串、列表、元组、字典
Python中,所有非数字型变量都有一个共同的特点:都是一个序列,可以存放多个数据
列表
列表的索引从0开始
索引就是元素在列表中的位置编号
列表嵌套:一个列表中的元素又是列表
元组
元组用()定义
用于存储一串数据,元素之间使用,分隔
元组的索引从0开始
元组中只包含一个元素时,需要在元素后面添加逗号
元组的元素不能修改,让列表不可以被修改,以保护数据安全
字典
字典用{}定义
字典使用键值对存储数据,键值对之间使用,分隔
键 key是索引
值 value是数据
键和值之间使用:分隔
值可以取任何数据类型,但键只能使用字符串、数字或元组
键必须是唯一的
字符串
一对双引号 "或者一对单引号 '定义一个字符串
可以使用索引获取一个字符串中指定位置的字符,索引计数从0开始
也可以使用for 循环遍历字符串中每一个字符
字符串的切片
字符串[开始索引:结束索引:步长]
不包含结束位本身
如果步长为负数 ,可能会出现倒序排列
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[::2])
# 5. 截取字符串末尾两个字符
print(num_str[-2:])
# 6. 字符串的逆序(面试题)
print(num_str[::-1])
无序集合set
可以快速的完成对list中的元素去重复的功能
去重、无序
公共语法
函数
形参和实参
形参:定义函数时设置的参数,是用来代替真实数据的,在函数内部作为变量使用
实参:调用函数时设置的真实数据,会被传递到函数内部
局部变量,就是在函数内部定义的变量
局部变量的作用域只在函数内部
局部变量的目的是存储需要临时保存的数据
函数内赋值变量时,默认为定义并赋值局部变量
在函数中修改全局变量,那么就需要使用global进行声明,否则出错
元组型可变形参
函数可以定义可变形参,用于接收任意数量的位置实参
可变形参的前边需要添加*
可变形参的本质是将传递的参数包装成了元组
字典型可变形参
可变形参还有一种形式可以接收任意数量的关键字实参
定义参数时需要在形参名前添加**
这种可变形参会将关键字参数包装成字典
def func_sum(*args):
result = 0
for num in args:
result += num
print(result)
func_sum(1, 2, 3)
def print_info(name, **kwargs):
# 存在形参name, name不会被包装到字典中
print(name) # zhangsan
print(kwargs) # {"age": 20, "height": 1.75}
print_info(name="zhangsan", age=20, height=1.75)
强化和进阶
可变类型与不可变类型
可变类型: 在存储空间中可以直接修改的数据类型
列表list
字典dict
不可变类型: 在存储空间中不可以直接修改的数据类型
数值类型int, long, bool, float
字符串str
元组tuple
列表推导式
列表推导式: 快速生成列表元素的表达形式
推导式基本格式: [计算公式for循环if判断]
# 练习1: 列表中包含1-100
list1 = [i for i in range(1, 101)]
list1 = [i+1 for i in range(0, 100)]
# 练习2: 列表中包含1-10中偶数的平方
list1 = []
for i in range(1, 11):
if i % 2 == 0:
list1.append(i**2)
# 推导式形式
list1 = [i**2 for i in range(1, 11) if i % 2 == 0]
匿名函数
省略了用def声明函数的标准步骤, 可以完成简单的处理
定义匿名函数: lambda 形参列表: 返回值
调用匿名函数: (lambda 形参列表: 返回值)(实参列表)
# 定义函数,进行求和处理
def func_sum(num1, num2):
return num1 + num2
# 调用函数
func_sum(1, 3)
# 匿名函数定义并调用
(lambda num1, num2: num1 + num2)(1, 3)
递归函数
def step_num(num):
if num > 1:
return num * step_num(num - 1)
else:
return 1