Python基础
语法
字面量
- 数字
- 整数
- 浮点
- 复数
- 布尔
- 字符串
- 列表 list
- 元组 Tuple
- 集合 Set
- 字典 Dictionary
注释
单行 | # 单行注释的内容 |
---|---|
多行 | “”“ 多行注释的内容 ”“” |
单行注释
#
后要加一个空格再写注释
变量
变量无类型,但数据有类型
语法:
变量名 = 变量值
数据类型转换:
int()
str()
float()
标识符
中文,英文,数字,下划线组成,数字不能开头,不能与关键字,保留字重名
运算符
+ - * / // % **
不熟悉的:
//
是整除**
是指数运算
赋值运算符
=
加上上面的运算符和=
的组合
比较运算符
> < = >= <= == !=
字符串
字符串定义
- 单引号
- 双引号
- 6个双引号包住
语法
'hello'
"hello"
"""hello"""
字符串拼接(**)
-
+
拼接(仅限字符串变量)"字符串内容"+str
[str为存储字符串类型的变量] -
格式化1
”字%s符%d串%f内容“ % (str,int,float)
[str,int,float 为不同类型的变量] %s-字符串 %d-整数 %f-浮点数 -
格式化2
f"字符串内容{变量}" [括号里面的内容也可以是一个表达式]
格式化中的对于数字的精度控制
m.n – m:控制宽度(若m小于数字本身宽度,不生效) n:控制小数点精度(四舍五入)
例子
print("my math score is %3.1f" % 90.25)
控制台输出为
my math score is 90.3
判断语句
基础知识
比较运算符 ==> 布尔类型的值 : 1.True 2.False
if 语句格式
i = 1
if i == 1:
print("i确实等于1")
if else 语句格式
i = 1
if i != 1:
print("i不等于1")
else:
print("i确实等于1")
if 嵌套语句格式
i = 1
j = 2
if i == 1:
print(i)
if j == 2:
print(j)
多个if elif else 语句格式
i = 3
if i == 1:
print("i确实等于1")
elif i == 2:
print("i确实等于2")
elif i == 3:
print("i确实等于3")
else:
print("i啥都不是")
补充
随机数
import random num = random.randint(n,m) # 范围为n~m的整数,包含n和m
循环语句
while
while 条件:
代码
while 嵌套
while 条件:
代码
while 条件1:
代码
案例
九九乘法表
i = 1
j = 1
while i < 10:
while j <= i:
print(f"{i}*{j}={i*j}",end=' ')
j += 1
print("")
j = 1
i += 1
for
“轮询”机制,对一批内容逐个处理
语法
for 临时变量 in 待处理数据集:
代码
[!IMPORTANT]
无法定义循环条件,只能被动取出数据处理
案例
遍历字符串,统计英文字母“a”
n = 0
strA = "i love a,i lova b"
for i in strA:
print(i)
if i == "a":
n += 1
print(n)
range [可以用于循环中的序列类型]
range(num)
获取一个从0开始,到num结束的数字序列(不包括num)
[0,1,2,…,n-1]
range(num1,num2)
[num1,num1+1,…,num2-1]
range(num1,num2,step)
step ==> 步长,即每个生成的数字间差n
continue和break:用法和c++,java语言的用法一样
案例
发工资
import random
all = 10000
people = 20
for i in range(20):
if all == 0:
break
if people == 0:
break
if random.randint(1,11) > 5:
all -= 1000
people -= 1
print(f"最后的余额为{all}")
if all > 0:
print("老板不差钱,你们绩效太差了")
else:
print("行啊,这么卷,一起加油")
函数
必须先定义后使用
内置函数
提前写好,可重复使用(python内置的函数)
定义语法
def 函数名(形参表):
函数体
return 返回值(可以没有)
返回值之None类型
<class,‘NoneType’>
空的,没有意义
当没有返回值,及返回值为None时返回值即为None
应用:
- 用在函数无返回值
- 用在if判断
- 用在声明无内容的变量(暂不赋予具体值)
声明文档
通过注释进行解释说明
在函数体前写多行注释
例子
def add(x,y):
"""
add函数用于两数的相加,输出结果值,并返回一个结果
:param x: 形参x为相加的其中一个数字
:param y: 形参y为相加的另一个数字
:return: 返回值为相加的结果
"""
result = x + y
print(f"两数相加为{result}")
return result
:param | 用于解释参数 |
---|---|
:return | 用于解释返回值 |
嵌套调用
在一个函数中调用另外一个函数进行使用
def funA():
print("goodbye")
def funB():
print("hello world")
funA()
变量的作用域
局部变量 | 在函数体内声明 |
---|---|
全局变量 | 在函数体外声明 |
[!WARNING]
在函数内要修改全局变量,需加global关键字
函数综合案例
取款机
money = 5000000
menu = 0
name = None
name = input("请输入你的姓名")
def mainmenu():
print("-------------------查询-------------------")
print(f"你好,{name},欢迎来到球球银行ATM,请选择操作,")
print("查询余额 [输入1]")
print("存款 [输入2]")
print("取款 [输入3]")
print("退出 [输入4]")
print("请输入您的选择")
def search():
print("-------------------查询余额-------------------")
print(f"{name},您好,您的余额为:{money}")
def save(num):
print("-------------------存款-------------------")
print(f"{name},您好,您存款{num}元成功")
global money
money += num
print(f"{name},您好,您的余额剩余:{money}元")
def pay(num):
print("-------------------取款-------------------")
print(f"{name},您好,您取款{num}成功")
global money
money -= num
print(f"{name},您好,您的余额剩余:{money}")
while menu != "4":
mainmenu()
menu = input()
if menu == "1":
search()
elif menu == "2":
print("请输入你要存款的金额")
m = int(input())
save(m)
elif menu == "3":
print("请输入你要存款的金额")
m = int(input())
pay(m)
else:
print("欢迎下次使用ATM取款机!")
break
数据容器
批量存储【其中一个数据为一个元素】
特点不同:
是否支持重复元素 |
---|
是否可以修改 |
是否有序 |
列表
定义
字面量 [n1,n2,n3,…,nn]
变量名 = [元素1,元素2,…,元素n]
定义空列表
- 变量名 = []
- 变量名 = list()
[!IMPORTANT]
- 元素类型可以不同
- 可以重复
- 可以嵌套
- 可以修改
下标索引
变量名[num] ==> 从0开始
负数即为反向索引
超出范围进行查询会报错
列表的方法
查询
list.index(元素) ==> 返回下标
修改
通过索引下标修改
插入
list.insert(下标,值)
插入后,下标及下标后所在元素向后移动一位
追加
list.append(数据) 【在尾部】
list.extend(数据容器)
list = [1,2,3]
list.append([1,2,3])
print(list)
list.remove([1,2,3])
print(list)
list.extend([4,5,6])
print(list)
删除
list.remove(元素)
找第一个匹配项并删除,后面往前移动一位
清空
list.clear()
统计某个元素数量
llsit.count(元素)
长度(即总共有多少个元素)
len(list)
案例
取出列表中的偶数,并放到新列表中
list = [1,2,3,4,5,6,7,8,9,10]
list2 = []
list3 = []
for i in list:
if i % 2 == 0:
list2.append(i)
index = 0
while index < len(list):
if list[index] % 2 == 0:
list3.append(list[index])
index += 1
print(f"list2:{list2}")
print(f"list3:{list3}")
元组
与列表不同
一旦定义完成,不可以修改
但元素如果是列表,列表中的内容可以修改
定义
变量名 = (元素1,元素2,元素n)
只有一个元素时,需要加逗号
定义空元组
- 变量名 = ()
- 变量名 = tuple()
相关操作
查
tuple.index(元素) ==> 下标
统计
- 某元素: tuple.count(元素)
- 总元素个数: len(tuple)
案例
记录一个同学的基本信息,爱好一栏由列表list存储,增删爱好,查询名字,班级
stu1 = ('李白','2023',['football','music'])
name_index = stu1.index('李白')
class_index = stu1.index('2023')
print(name_index)
print(class_index)
stu1[2].remove('football')
stu1[2].append('basketball')
print(stu1[2])
字符串[无法修改]
可用下标进行访问(正反都行)
若强行修改,会导致新字符串生成,旧的无法修改
查找
str.index(元素)
替换
str.replace(“替换”,"被替换“)
分割
str.split(分隔符字符串)
去除前后空格
str.strip()
去除前后指定字符串
str.strip(字符串)
统计
同列表一样
[!IMPORTANT]
替换,分割,去除前后空格,字符串等操作都是生成新的字符串字面量,需要赋予给新的字符串变量,旧的字符串变量没变
列表,元组,字符串都可以通过while和for进行遍历
序列
概念
内容连续,有序,可使用下标索引(如列表,元组,字符串)
常用操作:切片
从序列中取出子序列
语法:
序列[起始下标:结束下标:步长]
步长默认为1,若为n,则时隔n-1个元素进行取的操作
步长为负数,则下标也同样应为负数
方法总结
str1[ : : -1] 可以将字符串倒序 (str为字符串)
t1 = (1,2,3,4)
t2 = t1[::2]
print(t2)
l1 = ['hello','goodbye',1,2,3,5,6,7]
l2 = l1[1:7:2]
print(l2)
s1 = 'abcdefg hijklmn'
s2 = s1[1:10:2]
print(s2) # 依旧是字符串类型
案例:
s1 = ",B站大学来,nohtyP学"
s2 = s1[-10:-14:-1]
print(s2)