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'])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/197658.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java Web——JavaScript基础

1. 引入方式 JavaScript程序不能独立运行&#xff0c;它需要被嵌入HTML中&#xff0c;然后浏览器才能执行 JavaScript 代码。 通过 script 标签将 JavaScript 代码引入到 HTML 中&#xff0c;有3种方式&#xff1a; 1.1. 内嵌式(嵌入式) 直接写在html文件里&#xff0c;用s…

[C/C++]数据结构 链表OJ题:随机链表的复制

题目描述: 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&#xff0c;其中每个新节点的值都设为其对应的原节点的值。新…

从零开始 通义千问大模型本地化到阿里云通义千问API调用

从零开始 通义千问大模型本地化到阿里云通义千问API调用 一、通义千问大模型介绍 何为“通义千问”&#xff1f; “通义千问大模型”是阿里云推出的一个超大规模的语言模型&#xff0c;具有强大的归纳和理解能力&#xff0c;可以处理各种自然语言处理任务&#xff0c;包括但…

Oracle主备切换,ogg恢复方法(集成模式)

前言: 文章主要介绍Oracle数据库物理ADG主备在发生切换时(switchover,failover)&#xff0c;在主库运行的ogg进程(集成模式)如何进行恢复。 测试恢复场景&#xff0c;因为集成模式不能在备库配置&#xff0c;所以场景都是基于主库端: 1 主备发生switchover切换&#xff0c;主库…

VUE(一)

1.vue简介 英文官网: Vue.js - The Progressive JavaScript Framework | Vue.js 中文官网: Vue.js - 渐进式 JavaScript 框架 | Vue.js 2.Vue的特点 3.初识VUE 在官网下载VUE.js,有两个版本&#xff0c;一个开发一个生产 <!DOCTYPE html> <html lang"en"…

贝锐蒲公英云AP,企业WiFi功能如何使用?

1. 功能介绍 基于WPA2-EAP安全认证技术&#xff0c;为企业提供了一套易用安全的企业无线网络,实现企业员工通过蒲公英客户端一键连接企业无线WiFi。自动分配一人一帐一密&#xff0c;无需配置证书或手动输入密码&#xff0c;减少沟通成本&#xff0c;方便快捷&#xff0c;提高…

前置语音群呼与语音机器人群呼哪个更好

最近通过观察自己接到的营销电话&#xff0c;通过语音机器人外呼的量应该有所下降。同时和客户交流获取到的信息&#xff0c;也是和这个情况类似&#xff0c;很多AI机器人群呼的量转向了OKCC前置语音群呼。询问原因&#xff0c;说是前置语音群呼转化更快&#xff0c;AI机器人群…

Android修行手册-POI操作中文API文档

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…

pm2在Windows环境中的使用

pm2 进程管理工具可以Windows操作系统上运行&#xff0c;当一台Windows电脑上需要运行多个进程时&#xff0c;或者运维时需要运行多个进程以提供服务时。可以使用pm2&#xff0c;而不再是使用脚本。 1. 使用PM2管理进程 1.1. 启动PM2项目 1.1.1. 直接启动项目 参数说明&…

PostgreSQL 数据定义语言 DDL

文章目录 表创建主键约束非空唯一约束检查约束外键约束默认值约束 触发器表空间构建表空间 视图索引索引的基本概念索引的分类创建索引 物化视图 表创建 PostgreSQL表的构建语句与所有数据库都一样&#xff0c;结构如下&#xff0c;其核心在于构建表时&#xff0c;要指定上一些…

ACWSpring1.3

首先,前端写ajax写上我们的访问路径(就在我们前端的源代码里面),我们建了两个包pkController用于前端页面url映射过来一层一层找到我们的RestController返回bot1里面有键值,返回的这就是一个session对象bot1这个map.前端拿到我们bot1里的两个值给到我们前端显示出来 1准备页面:…

Linux:补充一些常用命令

Linux&#xff1a;补充一些常用命令 1. free -h2. df -lh3. du -sh *4. uname -a5. which6. mvn install 编译打包7. find -name *.jar8. cd -9. nohup java -jar *.jar &10. ps -ef|grep java11. netstat -ntlp 1. free -h free 命令显示系统使用和空闲的内存情况&#x…

Flutter笔记:缩放手势

Flutter笔记 缩放手势 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/134485138 目 录 1. 概述2. 缩放手…

Java多线程核心技术第一阶段-Java多线程基础 02

接上篇&#xff1a;Java多线程核心技术第一阶段-Java多线程基础 01 3.3 清除中断状态的使用场景 this.interrupted()方法具有清除状态标志值的功能&#xff0c;借用此特性可以实现一些效果。 【示例3.3.1】在MyThread4线程中向list1和list2存放数据&#xff0c;基于单一职责原…

docker-compose 部署 MySQL 8

目录 前言MySQL 配置文件(my.cnf)docker-compose.yml安装卸载 前言 Windows/Linux 系统通过 docker-compose 部署 MySQL8.0。 MySQL 配置文件(my.cnf) # 服务端参数配置 [mysqld] usermysql # MySQL启动用户 default-storage-engineINNODB # 创建新表时…

【脑与认知科学】【n-back游戏】

请参考课堂内容&#xff0c;设计一种测试工作记忆的实验方法&#xff0c;并选择三位同学作为被试测试工作记忆。请画出实验流程图&#xff0c;叙述实验测试目标&#xff0c;并分析实验结果。 举例&#xff1a;一般我们选择n_back来测试对数字或字母的记忆&#xff0c;选择色块实…

springboot实现在线人数统计

在线人数统计 笔者做了一个网站&#xff0c;需要统计在线人数。 在线有两种&#xff1a; 一、如果是后台系统如果登录算在线&#xff0c;退出的时候或者cookie、token失效的时候就算下线 二、如果是网站前台&#xff0c;访问的时候就算在线 今天我们来讲一下第2种情况&…

SQL零基础入门教程,贼拉详细!贼拉简单! 速通数据库期末考!(九)

UNION ALL UNION ALL 用于合并两个或多个 SELECT 语句的结果。 请注意&#xff0c;UNION ALL 合并的每个 SELECT 语句必须是查询相同数量&#xff0c;相同数据类型的字段&#xff0c;且顺序也必须一致。另外结果集中的列名总是等于 UNION ALL 中第一个 SELECT 语句中的列名。 …

数据结构与算法-图

图 &#x1f388;2.图的存储结构&#x1f4d6;2.4.2邻接表的存储✅2.4.2.1逆邻接表✅2.4.2.2邻接表存储结构的定义✅2.4.2.3邻接表存储结构的类定义✅2.4.2.4创建n个顶点m条边的无向网✅2.4.2.5创建n个顶点m条边的有向网✅2.4.2.6定位操作-查找定点信息在顶点数组中的下标✅2.4…

3GPP协议解读(一)_23.501_23.502_PDU Session_SMF与UDP的交互

UE发起计算服务申请后&#xff0c;网络侧处理的流程 UE发起服务的流程&#xff1a;service request网络侧处理服务涉及的通信数据通过PDU Session进行传输&#xff0c;涉及到SMF与UPF的交互。PDU Session的建立、管理全部由SMF&#xff08;Session Management Function&#x…