python基础

目录

一、条件/循环语句

(一)条件语句

[1. 语法格式](#1. 语法格式)

[2. 缩进和代码块](#2. 缩进和代码块)

[3. 空语句 pass](#3. 空语句 pass)

(二)循环语句

[1. while循环](#1. while循环)

[2. for 循环](#2. for 循环)

二、函数

(一)语法格式

[1. 创建函数/定义函数](#1. 创建函数/定义函数)

[2. 调用函数/使用函数](#2. 调用函数/使用函数)

(二)函数返回值

[1. 一个函数中可以有多个 return 语句](#1. 一个函数中可以有多个 return 语句)

[2. 一个函数是可以一次返回多个返回值的. 使用 , 来分割多个返回值](#2. 一个函数是可以一次返回多个返回值的. 使用 , 来分割多个返回值)

[3. 使用 _ 来忽略不想要的返回值](#3. 使用 _ 来忽略不想要的返回值)

(三)变量的作用域

[1. 在不同的作用域中, 允许存在同名的变量](#1. 在不同的作用域中, 允许存在同名的变量)

[2. 在函数内部, 修改全局变量的值, 需要使用 global 关键字声明](#2. 在函数内部, 修改全局变量的值, 需要使用 global 关键字声明)

[3. 在 if / while / for 中定义的变量, 在语句外面也可以正常使用](#3. 在 if / while / for 中定义的变量, 在语句外面也可以正常使用)

(四)函数递归

(五)参数默认值

(六)关键字参数

三、列表

(一)创建列表

(二)访问下标

(三)切片操作

[1. 使用 [ : ] 的方式进行切片操作](#1. 使用 [ : ] 的方式进行切片操作)

[2. 切片操作中可以省略前后边界](#2. 切片操作中可以省略前后边界)

[3. 切片操作还可以指定 "步长" , 也就是 "每访问一个元素后, 下标自增几步"](#3. 切片操作还可以指定 "步长" , 也就是 "每访问一个元素后, 下标自增几步")

[4. 切片操作指定的步长还可以是负数, 此时是从后往前进行取元素. 表示 "每访问一个元素之后, 下标自减几步"](#4. 切片操作指定的步长还可以是负数, 此时是从后往前进行取元素. 表示 "每访问一个元素之后, 下标自减几步")

(四)遍历列表元素

(五)插入元素

(六)查找元素

(七)连接列表

四、元组


一、条件/循环语句

(一)条件语句

1. 语法格式

  • if 后面的条件表达式, 没有 ( )使用 ,: 作为结尾
  • if / else 命中条件后要执行的 "语句块", 使用 缩进 (通常是 4 个空格或者 1 个 tab)来表示, 而不是 { }
  • 对于多条件分支, 不是写作 else if, 而是 elif (合体了)
python 复制代码
choice = input("输入 1 表示认真学习, 输入 2 表示躺平摆烂: ")
if choice == "1":
    print("你会找到好工作!")
elif choice == "2":
    print("你可能毕业就失业了!")
else:
    print("你的输入有误!")

2. 缩进和代码块

  • 使用缩进表示代码块。不同级别的缩进, 程序的执行效果是不同的
python 复制代码
# 代码1
a = input("请输入一个整数: ")
if a == "1":
    print("hello")
    print("world")
python 复制代码
# 代码2
a = input("请输入一个整数: ")
if a == "1":
  print("hello")
print("world")
  • 在代码1 中, print("world") 有一级缩进, 这个语句属于 if 内的代码块, 意味着条件成立, 才执行, 条件不成立, 则不执行
  • 在代码2 中, print("world") 没有缩进, 这个语句是 if 外部的代码, 不属于 if 内部的代码块. 意味着条件无论是否成立, 都会执行

3. 空语句 pass

  • pass 表示 空语句, 并不会对程序的执行有任何影响, 只是占个位置
python 复制代码
a = int(input("请输入一个整数:"))
if a != 1:
    pass
else:
    print("hello")

(二)循环语句

1. while循环

python 复制代码
while 条件:
  循环体
python 复制代码
#计算 1-100 的和
sum = 0
num = 1
while num <= 100:
    sum += num
    num += 1
print(sum)

2. for 循环

python 复制代码
for 循环变量 in 可迭代对象:
  循环体
  • 打印 1-10
python 复制代码
for i in range(1, 11):
    print(i)
  • 通过 range 的第三个参数, 可以指定迭代时候的 "步长". 也就是一次让循环变量加几
python 复制代码
#打印 2, 4, 6, 8, 10
for i in range(2, 12, 2):
    print(i)
python 复制代码
#打印 10-1
for i in range(10, 0, -1):
    print(i)
python 复制代码
#打印 1-100
sum = 0
for i in range(1, 101):
    sum += i
print(sum)

二、函数

(一)语法格式

1. 创建函数/定义函数

python 复制代码
def 函数名(形参列表):
  函数体
  return 返回值

2. 调用函数/使用函数

python 复制代码
函数名(实参列表)      // 不考虑返回值
返回值 = 函数名(实参列表)  // 考虑返回值

(二)函数返回值

python 复制代码
# 定义函数
def calcSum(beg, end):
    sum = 0
    for i in range(beg, end + 1):
        sum += i
    return sum

# 调用函数
ret =calcSum(1, 100)
print(ret)

1. 一个函数中可以有多个 return 语句

python 复制代码
# 判定是否是奇数
def isOdd(num):
    if num % 2 == 0:
        return False
    else:
        return True
result = isOdd(11)
print(result)

2. 一个函数是可以一次返回多个返回值的. 使用 , 来分割多个返回值

python 复制代码
def getPoint():
    x = 10
    y = 20
    return x, y

a, b = getPoint()
print(a)
print(b)

3. 使用 _ 来忽略不想要的返回值

python 复制代码
def getPoint():
    x = 10
    y = 20
    return x, y

_, b = getPoint()
print(b)#20

(三)变量的作用域

1. 在不同的作用域中, 允许存在同名的变量

2. 在函数内部, 修改全局变量的值, 需要使用 global 关键字声明

3. 在 if / while / for 中定义的变量, 在语句外面也可以正常使用

(四)函数递归

python 复制代码
def factor(n):
    if n == 1:
        return 1
    return n * factor(n - 1)

result = factor(5)
print(result)#结果120

(五)参数默认值

  • 带有默认值的参数, 可以在调用的时候不传参
python 复制代码
#算两个数字的和
def add(x, y, debug=False):
    if debug:
        print(f'调试信息: x={x}, y={y}')
    return x + y

print(add(10, 20))
print(add(10, 20, True))

(六)关键字参数

通过 关键字参数, 来调整这里的传参顺序, 显式指定当前实参传递给哪个形参

三、列表

(一)创建列表

  • 列表主要有两种方式. [ ] 表示一个空的列表
python 复制代码
#如果需要往里面设置初始值, 可以直接写在 [ ] 当中
alist = [1, 2, 3, 4]
print(alist)
#列表中存放的元素允许是不同的类型
alist = [1, 'hello', True]
print(alist)

(二)访问下标

  • 通过下标访问操作符 [ ] 来获取到列表中的任意元素
  • 通过下标不光能读取元素内容, 还能修改元素的值
  • 下标可以取负数,表示 "倒数第几个元素"

(三)切片操作

  • 通过切片, 则是一次取出一组连续的元素, 相当于得到一个子列表

1. 使用 [ : ] 的方式进行切片操作

  • alist[1:3] 中的 1:3 表示的是 [1, 3) 这样的由下标构成的前闭后开区间
  • 也就是从下标为 1 的元素开始(2), 到下标为 3 的元素结束(4), 但是不包含下标为3 的元素
python 复制代码
alist = [1, 2, 3, 4]
print(alist[1:3])

2. 切片操作中可以省略前后边界

python 复制代码
alist = [1, 2, 3, 4]
print(alist[1:]) # 省略后边界, 表示获取到列表末尾
print(alist[:-1]) # 省略前边界, 表示从列表开头获取
print(alist[:]) # 省略两个边界, 表示获取到整个列表

3. 切片操作还可以指定 "步长" , 也就是 "每访问一个元素后, 下标自增几步"

4. 切片操作指定的步长还可以是负数, 此时是从后往前进行取元素. 表示 "每访问一个元素之后, 下标自减几步"

(四)遍历列表元素

python 复制代码
alist = [1, 2, 3, 4]
for elem in alist:
    print(elem)
python 复制代码
#使用 for 按照范围生成下标, 按下标访问
alist = [1, 2, 3, 4]
for i in range(0, len(alist)):
    print(alist[i])
python 复制代码
#使用 while 循环. 手动控制下标的变化
alist = [1, 2, 3, 4]
i = 0
while i < len(alist):
    print(alist[i])
    i += 1

(五)插入元素

  • 使用 append 方法, 向列表末尾插入一个元素(尾插)
python 复制代码
alist = [1, 2, 3, 4]
alist.append('hello')
print(alist)
  • 使用 insert 方法, 向任意位置插入一个元素
  • insert 第一个参数表示要插入元素的下标
python 复制代码
alist = [1, 2, 3, 4]
alist.insert(1, 'hello')
print(alist)

(六)查找元素

  • 使用 in 操作符, 判定元素是否在列表中存在, 返回值是布尔类型
python 复制代码
alist = [1, 2, 3, 4]
print(2 in alist)
print(10 in alist)
  • 使用 index 方法, 查找元素在列表中的下标。返回值是一个整数. 如果元素不存在, 则会抛出异常
python 复制代码
alist = [1, 2, 3, 4]
print(alist.index(2))
print(alist.index(10))

(七)连接列表

  • 使用 + 能够把两个列表拼接在一起
  • 此处的 + 结果会生成一个新的列表。而不会影响到旧列表的内容
python 复制代码
alist = [1, 2, 3, 4]
blist = [5, 6, 7]
print(alist + blist)
  • 使用 extend 方法, 相当于把一个列表拼接到另一个列表的后面
  • a.extend(b) , 是把 b 中的内容拼接到 a 的末尾. 不会修改 b, 但是会修改 a
python 复制代码
alist = [1, 2, 3, 4]
blist = [5, 6, 7]
alist.extend(blist)
print(alist)
print(blist)

四、元组

  • 元组不能修改里面的元素, 列表则可以修改里面的元素
  • 因此, 像读操作,比如访问下标, 切片, 遍历, in, index, + 等, 元组也是一样支持的
  • 但是, 像写操作, 比如修改元素, 新增元素, 删除元素, extend 等, 元组则不能支持
python 复制代码
atuple = ( )
atuple = tuple()
相关推荐
c4fx17 分钟前
Delphi5利用DLL实现窗体的重用
开发语言·delphi·dll
鸽芷咕40 分钟前
【Python报错已解决】ModuleNotFoundError: No module named ‘paddle‘
开发语言·python·机器学习·bug·paddle
Jhxbdks1 小时前
C语言中的一些小知识(二)
c语言·开发语言·笔记
java6666688881 小时前
如何在Java中实现高效的对象映射:Dozer与MapStruct的比较与优化
java·开发语言
Violet永存1 小时前
源码分析:LinkedList
java·开发语言
子午1 小时前
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
人工智能·python·cnn
代码雕刻家1 小时前
数据结构-3.1.栈的基本概念
c语言·开发语言·数据结构
Fan_web1 小时前
JavaScript高级——闭包应用-自定义js模块
开发语言·前端·javascript·css·html
梦想科研社1 小时前
【无人机设计与控制】四旋翼无人机俯仰姿态保持模糊PID控制(带说明报告)
开发语言·算法·数学建模·matlab·无人机
风等雨归期1 小时前
【python】【绘制小程序】动态爱心绘制
开发语言·python·小程序