Python基础part1

2024-09-08 04:12
文章标签 python 基础 part1

本文主要是介绍Python基础part1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Python基础

语法

字面量

  • 数字
    • 整数
    • 浮点
    • 复数
    • 布尔
  • 字符串
  • 列表 list
  • 元组 Tuple
  • 集合 Set
  • 字典 Dictionary

注释

单行# 单行注释的内容
多行“”“ 多行注释的内容 ”“”

单行注释#后要加一个空格再写注释

变量

变量无类型,但数据有类型

语法

变量名 = 变量值

数据类型转换

int() str() float()

标识符

中文,英文,数字,下划线组成,数字不能开头,不能与关键字,保留字重名

运算符

+ - * / // % **

不熟悉的: //是整除 **是指数运算

赋值运算符

=加上上面的运算符和=的组合

比较运算符

> < = >= <= == !=

字符串

字符串定义
  1. 单引号
  2. 双引号
  3. 6个双引号包住

语法

'hello'
"hello"
"""hello"""
字符串拼接(**)
  1. +拼接(仅限字符串变量)

    "字符串内容"+str [str为存储字符串类型的变量]

  2. 格式化1

    ”字%s符%d串%f内容“ % (str,int,float) [str,int,float 为不同类型的变量] %s-字符串 %d-整数 %f-浮点数

  3. 格式化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 += 1print("")j = 1i += 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 += 1print(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 randomall = 10000people = 20
for i in range(20):if all == 0:breakif people == 0:breakif random.randint(1,11) > 5:all -= 1000people -= 1print(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 + yprint(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 moneymoney += numprint(f"{name},您好,您的余额剩余:{money}元")def pay(num):print("-------------------取款-------------------")print(f"{name},您好,您取款{num}成功")global moneymoney -= numprint(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]

定义空列表

  1. 变量名 = []
  2. 变量名 = 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)

只有一个元素时,需要加逗号

定义空元组

  1. 变量名 = ()
  2. 变量名 = tuple()
相关操作

tuple.index(元素) ==> 下标

统计

  1. 某元素: tuple.count(元素)
  2. 总元素个数: 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)

这篇关于Python基础part1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147082

相关文章

Python数据验证神器Pydantic库的使用和实践中的避坑指南

《Python数据验证神器Pydantic库的使用和实践中的避坑指南》Pydantic是一个用于数据验证和设置的库,可以显著简化API接口开发,文章通过一个实际案例,展示了Pydantic如何在生产环... 目录1️⃣ 崩溃时刻:当你的API接口又双叒崩了!2️⃣ 神兵天降:3行代码解决验证难题3️⃣ 深度

Python+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处

python中的flask_sqlalchemy的使用及示例详解

《python中的flask_sqlalchemy的使用及示例详解》文章主要介绍了在使用SQLAlchemy创建模型实例时,通过元类动态创建实例的方式,并说明了如何在实例化时执行__init__方法,... 目录@orm.reconstructorSQLAlchemy的回滚关联其他模型数据库基本操作将数据添

Python实现快速扫描目标主机的开放端口和服务

《Python实现快速扫描目标主机的开放端口和服务》这篇文章主要为大家详细介绍了如何使用Python编写一个功能强大的端口扫描器脚本,实现快速扫描目标主机的开放端口和服务,感兴趣的小伙伴可以了解下... 目录功能介绍场景应用1. 网络安全审计2. 系统管理维护3. 网络故障排查4. 合规性检查报错处理1.

Python轻松实现Word到Markdown的转换

《Python轻松实现Word到Markdown的转换》在文档管理、内容发布等场景中,将Word转换为Markdown格式是常见需求,本文将介绍如何使用FreeSpire.DocforPython实现... 目录一、工具简介二、核心转换实现1. 基础单文件转换2. 批量转换Word文件三、工具特性分析优点局

Python中4大日志记录库比较的终极PK

《Python中4大日志记录库比较的终极PK》日志记录框架是一种工具,可帮助您标准化应用程序中的日志记录过程,:本文主要介绍Python中4大日志记录库比较的相关资料,文中通过代码介绍的非常详细,... 目录一、logging库1、优点2、缺点二、LogAid库三、Loguru库四、Structlogphp

Java利用Spire.Doc for Java实现在模板的基础上创建Word文档

《Java利用Spire.DocforJava实现在模板的基础上创建Word文档》在日常开发中,我们经常需要根据特定数据动态生成Word文档,本文将深入探讨如何利用强大的Java库Spire.Do... 目录1. Spire.Doc for Java 库介绍与安装特点与优势Maven 依赖配置2. 通过替换

C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解

《C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解》:本文主要介绍C++,C#,Rust,Go,Java,Python,JavaScript性能对比全面... 目录编程语言性能对比、核心优势与最佳使用场景性能对比表格C++C#RustGoJavapythonjav

Python海象运算符:=的具体实现

《Python海象运算符:=的具体实现》海象运算符又称​​赋值表达式,Python3.8后可用,其核心设计是在表达式内部完成变量赋值并返回该值,从而简化代码逻辑,下面就来详细的介绍一下如何使用,感兴趣... 目录简介​​条件判断优化循环控制简化​推导式高效计算​正则匹配与数据提取​性能对比简介海象运算符

python项目环境切换的几种实现方式

《python项目环境切换的几种实现方式》本文主要介绍了python项目环境切换的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 如何在不同python项目中,安装不同的依赖2. 如何切换到不同项目的工作空间3.创建项目