当前位置: 首页 > news >正文

Python学习(一)基础语法

文章目录

  • 1. 入门
    • 1.1 解释器的作用
    • 1.2 下载
    • 1.3 基础语法
      • 输入输出语法与引号
      • 注释:
      • 变量:
  • 数据类型与四则运算
    • 数据类型
    • 四则运算
    • 数据类型的查看`type()`
    • 数据类型的转换`int()`、`int()`、`float()`
  • 流程控制
  • 格式化输出
  • 循环与遍历
    • 逻辑运算符
      • list遍历
      • 字典dict遍历
    • 跳出循环
  • 面向对象OOP(封装、继承、多态)
    • 封装:函数、全局变量与局部变量
      • 函数的嵌套
    • 类`class`:万物皆对象
      • 构成:类名、属性(一组数据)、方法(函数)
      • 创建与调用:class name
      • 创建的俩个要素:
      • 类的继承
      • 多重继承与多层继承
  • 文件IO
  • import语句
  • time函数
  • csv模块读写
    • 读取
    • 写出

1. 入门

1.1 解释器的作用

Python解释器作用:运行文件。
Python解释器类型:

  • CPython:官方开发的C语言解释器
  • IPython:基于CPython的一种交互式解释器
  • PyPy:基于Python开发的解释器
  • Jytion:运行在Java平台的解释器,直接把Python代码解析为Java字节码执行
  • IronPython:运行在.Net平台的解释器,将Python代码编译为.Net字节码

1.2 下载

官网:https://www.python.org/
注意Add Path。
验证:打开cmd,运行python.

(venv) F:\myStudySpace\pythonStudy\spider\web_crawler>python
Python 3.9.0 (tags/v3.9.0:9cf6752, Oct  5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

1.3 基础语法

输入输出语法与引号

print()
print('')
print('''多行''')
print("")
print("""多行输出""")
print(123)
inputTxt = input("plese input:")
print(inputTxt)

注释:

# 单行注释
"""
多行注释
"""
'''
多行注释
'''

变量:

变量是一个存储数据的时候,当前数据所在内存地址的名字。
变量名 = 值
变量名规则:字母、下划线和数字组成。不能以数字开头

数据类型与四则运算

数据类型

  • 字符串,拼接用+号
    print('hello')
  • 整型
    print(99)
  • 浮点型
    print(3.14)
  • list列表:[]
    • 下标从0开始
    • 切片语法:[起始:结束:步长]。左闭右开区间取值
name = "abcdef"
print(name[0])
# 取到结束
print(name[:])
# 取到结束
print(name[0:])
# 取到结束前一个
print(name[0:len(name)-1])
print(name[:len(name)-1])
print(name[:len(name):2])
"""
a
abcdef
abcdef
abcde
abcde
ace
"""
list_2 = ['a','b','c','d','e','f']
print(list_2[5])
print(list_2[0:len(list_2)-2:2])
## 反转
print(list_2.reverse())
del list_2[2]
print(list_2)
# 删除列表最后一个元素
list_2.pop()
print(list_2)
# 增加元素
list_2.append("6666")
print(list_2)
"""
f
['a', 'c']
None
['f', 'e', 'c', 'b', 'a']
['f', 'e', 'c', 'b']
['f', 'e', 'c', 'b', '6666']
"""
  • dic字典(对应map):{}
xixi = {'name':'xixi',"age":18,'height':166.6}
print("正常的字典值:",xixi)
print(xixi['name'])
print(xixi.get('name'))
xixi["addr"] = "浙江"
print("增加后",xixi)
xixi["addr"] = "上海"
print("修改后",xixi)
del xixi["addr"]
print("删除后",xixi)

四则运算

加、减、乘*、除/、取模%、幂**

数据类型的查看type()

## 数据类型
str_1 = "123"
print(type(str_1))
str_2 = 123
print(type(str_2))
str_3 = 123.123
print(type(str_3))
list_1 = [1,2,3]
print(type(list_1))
# json
json_1 = {"name":"Huathy","age":18}
print(type(json_1))
# <class 'str'>
# <class 'int'>
# <class 'float'>
# <class 'list'>
# <class 'dict'>

数据类型的转换int()int()float()

在这里插入图片描述

流程控制

  • 单项判断:if
  • 双向判断:if…else…
  • 多向判断:if…elif…else…
  • if嵌套
# 单项判断:if
a = 0
if a==0:print('1')
# 双向判断:if...else...
if a==0:print('1')
else: print(2)
# 多向判断:if...elif...else...
if a==1:print('1')
elif a == 0:print(2)
else:print(3)
# if嵌套
score = 60
if score >= 60:print("及格")if(score>=80):print("优秀")else:print("还需努力")
else:print("不及格")

格式化输出

name = 'xixi'
age = 18
height = 166.6
print("name is: %s,age is %d ,height: %1f" % (name, age, height))
print("name is: {},age is {} ,height: {}".format(name, age, height))

循环与遍历

逻辑运算符

  • and:a and b。类比Java的&&
  • or:a or y。类比Java的||
  • not:not x。类比Java的!

list遍历

# range()函数 默认从0开始
for i in range(5):print(i)
#
print("===================")
# range 指定从一开始(左闭右开)
for i in range(1,5):print(i)list_1 = ['xiix1','xi2','xi3','xi4']
# for in
for name in list_1:print(name)
print("while =============")
# while
i=0
while i < len(list_1):print(list_1[i])i += 1

字典dict遍历

dict_name = {'name':'xixi','age':18,'height':166.6}
for key in dict_name: print('key',key)
print("=================================")
for val in dict_name.values():print('val',val)
print("=================================")
for key,val in dict_name.items():print(key,'--',val)

跳出循环

  • break
  • continue
print('break')
name = 'python'
for x in name:if(x == 'h'):break;print(x)
print('continue')
for x in name:if (x == 'h'): continue;print(x)

面向对象OOP(封装、继承、多态)

封装:函数、全局变量与局部变量

"""
函数代码块以def开头,接标识符名称和(形参)
"""
def add(x,y):print(x,y)return x+yprint(add(1,2))
def none_fun():return
print(none_fun())# 全局变量
a = 10
def inner():# 内部变量b = 20print(a)print(b)
inner()
# gloabl 修饰词:使用global对变量进行修饰,告诉计算机该变量变成全局变量在任何地方都起作用。类似js的vardef func():global aprint('func a1', a)a = 200print('func a2',a)
func()print(a)

函数的嵌套

"""
函数的嵌套:一个函数调用了另一个函数
"""
def test1():print('test 1 run')
def test2():print('test 2 run')test1()
test2()

class:万物皆对象

构成:类名、属性(一组数据)、方法(函数)

创建与调用:class name

# 创建
class Musician:loveMusic = Truedef sing(self):print('我在唱歌')
# 调用
clazz = Musician()
clazz.sing()

创建的俩个要素:

  • self参数:
    • self的作用:会在类的实例化中接受传入的数据,在代码中运行
    • 类方法中调用内部属性或者其他方法时,需要使用self来代表实例
    • self属性智慧在方法创建的时候出现,方法调用时就不需要出现
  • 初始化方法(构造函数):
    • 定义初始化方法:def __init__(self),init两边都是下划线
    • __init__()方法,在创建一个对象的时候被默认调用,不需要手动调用
    • 初始化方法中,除了可以设置固定值外,还可以设置其他参数
class Hero:def __init__(self,name,hp,atk,aro):# 类方法,用来做变量初始化赋值操作,在实例化的时候会被自动调用self.name = nameself.hp = hpself.atk = atkself.aro = arodef move(self):print(self.name,'移动...')def attack(self):print(self.name,'攻击...')print('生命',self.hp)hero = Hero('xixi',10000,50,20)
print(hero)
hero.move()
hero.attack()

类的继承

class Hero:def __init__(self,name,hp,atk,aro):# 类方法,用来做变量初始化赋值操作,在实例化的时候会被自动调用self.name = nameself.hp = hpself.atk = atkself.aro = arodef move(self):print(self.name,'移动...')def attack(self):print(self.name,'攻击...')print('生命',self.hp)
"""
超级英雄继承英雄类
"""
class SuperHero(Hero):pass
superHero = SuperHero('超级英雄',1000000,5000,2000)
superHero.move()

多重继承与多层继承

class human:def humanSay(self):print('我是人类')
class woman(human):def humanSay(self):print('我是女人')def womanSay(self):print('女人')
class man(human):def humanSay(self):print('我是男人')def manSay(self):print('男人')
class p1(man,woman):pass
p1 = p1()
p1.manSay()
p1.womanSay()   
p1.humanSay()   # 重名的函数会覆盖(重写)父类的方法,先继承的覆盖后面的

文件IO

"""
open()
r :只读
w :写入
a :追加。存在追加,不存在则创建
rb :二进制打开用于只读
wb :二进制打开用于写入
ab :二进制打开用于追加
r+ :打开文件用于读写。文件指针在文件开头
w+ :打开文件用于读写。文件存在,则覆盖。否则新建
a+ :打开文件用于读写。文件存在,指针在尾。否则新建。
rb+ :以二进制打开文件用于读写。文件指针在头。
wb+ :以二进制打开文件用于读写。文件存在,则会覆盖。否则新建。
ab+ :以二进制打开文件用于追加。文件存在,指针在尾。否则新建。
"""
# open 读入
file = open('test.txt','r')
print(file)
# content = file.read()
# print('read',content)
line = file.readline()
line2 = file.readlines()
print('readline',line)
print('readlines',line2)
file.close()# write 写出
newfile = open('newtest.txt','w')
newfile.write(line)
newfile.close()print("=" * 30)
# with 自动关闭
with open('test.txt','r') as file:data = file.read()print(data)

import语句

  • func.py文件
def add(a,b):return a+b
from hello.helloEnd import funcres = func.add(1,2)
print(res)

time函数

import time
start_time = time.time()
print(start_time)
local_time = time.localtime()
print(local_time)
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))

csv模块读写

读取

import csv
with open('test.csv','r') as file:reader = csv.reader(file)print(reader)for content in reader:print(content)

写出

with open('test.csv','a') as file2:writer = csv.writer(file2)writer.writerow(['xixi2',22,'boy'])

相关文章:

Python学习(一)基础语法

文章目录 1. 入门1.1 解释器的作用1.2 下载1.3 基础语法输入输出语法与引号注释&#xff1a;变量&#xff1a; 数据类型与四则运算数据类型四则运算数据类型的查看type()数据类型的转换int()、int()、float() 流程控制格式化输出循环与遍历逻辑运算符list遍历字典dict遍历 跳出…...

【C刷题】day7

&#x1f3a5; 个人主页&#xff1a;深鱼~&#x1f525;收录专栏&#xff1a;【C】每日一练&#x1f304;欢迎 &#x1f44d;点赞✍评论⭐收藏 一、选择题 1、以下对C语言函数的有关描述中&#xff0c;正确的有【多选】&#xff08; &#xff09; A: 在C语言中&#xff0c;一…...

数据挖掘复盘——apriori

read_csv函数返回的数据类型是Dataframe类型 对于Dataframe类型使用条件表达式 dfdf.loc[df.loc[:,0]2]df: 这是一个DataFrame对象的变量名&#xff0c;表示一个二维的表格型数据结构&#xff0c;类似于电子表格或SQL表。 df.loc[:, 0]: 这是使用DataFrame的.loc属性来进行…...

Windows10下Maven3.9.5安装教程

文章目录 1.下载maven2.安装3.配置系统变量3.1.新建系统变量 MAVEN_HOME3.2.编辑系统变量Path 4.CMD命令测试是否安装成功5.配置maven本地仓库6.配置国内镜像仓库 1.下载maven 官网 https://maven.apache.org/download.cgi 点击下载。 2.安装 解压到指定目录 D:\installSoft…...

【开源】基于JAVA的校园失物招领管理系统

项目编号&#xff1a; S 006 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S006&#xff0c;文末获取源码。} 项目编号&#xff1a;S006&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 招领管理模块2.2 寻物管理模块2.3 系…...

requests爬虫IP连接初始化问题及解决方案

问题背景 在使用HTTPS爬虫IP连接时&#xff0c;如果第一次请求是chunked方式&#xff0c;那么HTTPS爬虫IP连接将不会被初始化。这个问题可能会导致403错误&#xff0c;或者在使用HTTPS爬虫IP时出现SSL错误。 解决方案 为了解决这个问题&#xff0c;我们可以在requests库的ada…...

Argo Rollouts结合Service进行Blue-Green部署

删除03 部署04 rootk8s-master01:~/learning-jenkins-cicd/09-argocd-and-rollout/rollout-demos# kubectl delete -f 03-rollouts-with-prometheus-analysis.yaml rootk8s-master01:~/learning-jenkins-cicd/09-argocd-and-rollout/rollout-demos# kubectl apply -f 04-rol…...

mongodb——原理简介,docker单机部署

MongoDB noSQL数据库 特点 数据文件存储格式为 BSON &#xff08;JSON 的扩展&#xff09; &#xff5b;“name”&#xff1a;“joe”&#xff5d;这是 BSON 的例子&#xff0c;其中"name"是键&#xff0c;"joe"是值。键值对组成了 BSON 格式。面向集合…...

ThinkPHP 系列漏洞

目录 2、thinkphp5 sql注入2 3、thinkphp5 sql注入3 4、 thinkphp5 SQL注入4 5、 thinkphp5 sql注入5 6、 thinkphp5 sql注入6 7、thinkphp5 文件包含漏洞 8、ThinkPHP5 RCE 1 9、ThinkPHP5 RCE 2 10、ThinkPHP5 rce3 11、ThinkPHP 5.0.X 反序列化漏洞 12、ThinkPHP…...

系列十、你说你做过JVM调优和参数配置,请问如何盘点JVM系统的默认值?

一、JVM的参数类型 1.1、标配参数 java -versionjava -help 1.2、XX参数 1.2.1、Boolean类型 公式&#xff1a;-XX:或者- 某个属性值 表示开启、-表示关闭 # 是否打印GC收集细节 -XX:PrintGCDetails -XX:-PrintGCDetails# 是否使用串行垃圾收集器 -XX:UseSerialGC -XX:-UseS…...

Java Web——Web开发介绍

什么是Web开发 Web开发是一种创建和维护全球广域网&#xff08;World Wide Web&#xff09;上的网站和应用的技术。全球广域网也称为万维网(www World Wide Web)&#xff0c;是一个能够通过浏览器访问的互联网上的巨大信息库。 Web开发的目标是创建功能齐全、易于使用和安全的…...

Vue 数据监听机制及 Vue 2.0 和 Vue 3.0 的比较

Vue 数据监听机制 在 Vue 中&#xff0c;数据的变化通常是通过数据劫持&#xff08;Data Binding&#xff09;和观察者模式来实现的。当数据发生变化时&#xff0c;Vue 能够自动更新视图。 Vue 2.0 的数据监听 在 Vue 2.0 中&#xff0c;数据监听是通过 Object.defineProper…...

QT多线程项目中子线程无法修改主线程的ui组件

情况描述 今天我创建了一个QT多线程的工程&#xff0c;框架如下。我希望通过指针的方式&#xff0c;让子线程去直接修改主线程的ui组件&#xff0c;但事与愿违。 class ChildThread : public QThread {Q_OBJECT public:ChildThread (MainThread* par):m_Par(par){}; protecte…...

Python 如何实现备忘录设计模式?什么是备忘录设计模式?Python 备忘录设计模式示例代码

什么是备忘录&#xff08;Memento&#xff09;设计模式&#xff1f; 备忘录&#xff08;Memento&#xff09;设计模式是一种行为型设计模式&#xff0c;用于捕获一个对象的内部状态&#xff0c;并在对象之外保存这个状态&#xff0c;以便在需要时恢复对象到先前的状态。这种模…...

LangChain 代理 Agent(学习笔记)

原文&#xff1a;LangChain 代理 Agent(学习笔记) - 尘叶心繁的专栏 - TNBLOG LangChain 代理 Agent(学习笔记) LangChain 代理 Agent(学习笔记) 简介Agent Zero-shot ReActStructured Input ReActOpenAI FunctionsConversationalSelf ask with searchReAct document storePlan…...

实验三 页面置换算法

一. 实验目的&#xff1a; 1、熟悉虚存管理的各种页面淘汰算法 二、实验环境&#xff1a; 硬件环境&#xff1a;计算机一台&#xff0c;局域网环境&#xff1b; 软件环境&#xff1a;Windows XP及以上版本 Professional操作系统平台&#xff0c;Visual C 6.0专业版或企业版…...

Node.js中的Buffer和Stream

Node.js中的Buffer和Stream 计算机只能理解二进制数据&#xff0c;即0和1形式的数据。这些数据的顺序移动称为流。以称为块&#xff08;chunk&#xff09;的破碎部分流式传输数据&#xff1b;计算机一收到数据块就开始处理数据&#xff0c;而不用等待整个数据。 我们这篇文章…...

3.5 Windows驱动开发:应用层与内核层内存映射

在上一篇博文《内核通过PEB得到进程参数》中我们通过使用KeStackAttachProcess附加进程的方式得到了该进程的PEB结构信息&#xff0c;本篇文章同样需要使用进程附加功能&#xff0c;但这次我们将实现一个更加有趣的功能&#xff0c;在某些情况下应用层与内核层需要共享一片内存…...

【小黑送书—第八期】>>别再吐槽大学教材了,来看看这些网友强推的数学神作!

导读&#xff1a;关于大学数学教材的吐槽似乎从来没停止过。有人慨叹&#xff1a;数学教材晦涩难懂。错&#xff01;难懂&#xff0c;起码还可以读懂。数学教材你根本读不懂&#xff1b;也有人说&#xff1a;数学教材简直就是天书。 数学教材有好有坏&#xff0c;这话不假&…...

MatLab的下载、安装与使用(亲测有效)

1、概述 MatLab是由MathWorks公司开发并发布的&#xff0c;支持线性代数、矩阵运算、绘制函数和数据、信号处理、图像处理以及视频处理等功能。广泛用于算法开发、数据可视化、数据分析以及数值计算等。 Matlab 的主要特性包括&#xff1a; 简单易用的语法&#xff0c;使得程…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...