韩顺平 | 零基础快速学Python

news2024/11/20 21:30:12

环境准备

开发工具:IDLE、Pycharm、Sublime Text、Eric
、文本编辑器(记事本/editplus/notepad++)

Python特点:既支持面向过程OOP、也支持面向对象编程;具有解释性,不需要编程二进制代码,可以直接从源代码运行程序
运行原理:python.exe解释器程序,将源代码翻译成二进制码,提交给计算机执行

python安装:
安装路径建议不要有中文和空格,选择空间大的盘
Add python.exe to PATH,Path环境变量会添加python的安装目录,在不同路径下可以使用python.exe
查看安装成功否cmd:dir查看目录、 python.exe exit(),在cmd输入python,系统默认在当前目录下查找,如果没有则在PATH中依次查找并执行

>>> python hello.py # python.exe解释器

Pycharm常用快捷键:

shift + delete 删除当前行
ctrl + D 复制当前行
ctrl + / 添加/取消注释
ctrl + alt + L 快速格式化
ctrl+shift+F10/shift+F10 快速运行程序,可自己定义alt+R(设置-KeyMap-搜索run)
ctrl + H 查看类的层级关系(体会面向对象OOP继承很有用)
ctrl + R 替换

常用的转义字符

\t 制表符,实现对其功能
\n 换行符
\ 一个
" 一个"
’ 一个’
\r 回车

注释comment

# 单行注释
'''多行注释'''
"""多行注释"""
# coding:编码 #文件编码声明注释,文件开头指定文件编码格式(简体中文操作系统默认编码ANSI是gbk)

python代码规范

tab缩进,shift+tab整体向左移动
=两边习惯各加一个空格
变量之间使用逗号和空格
Python官方中文文档

Python基础

变量

变量是指向数据的,变量没有类型,类型是数据的

  • 格式化输出
    1)%操作符:http://blog.csdn.net/hesongzefairy/article/details/104179419
    2)format()函数:https://www.runoob.com/python/att-string-format.html
    3)f-strings【推荐】:https://blog.csdn.net/weixin_44200553
name = "张三”
age = 18
gender = '男'
source = 77.5
print("个人信息:", name, age, gender, source)
print("个人信息:%s-%d-%s-%.2f" %(name, age, gender, source)) # 占位符分别代表字符串、整数、字符串、2位小数
print("个人信息:{} {} {}".format(name, age, gender)) # 按序填充占位符,变量数大于等于占位符数
print(f"个人信息:{name} {age} {gender} {source}"
  • 加号+
    加号两边都是数值,执行运算
    加号两边都是字符串,执行拼接

数据类型

内置函数type(object) 查看数据类型,object可以是变量或数据,如果是变量,查看的是该变量指向的数据类型。

整型 int

Python的整数有10进制,16进制(0x前缀 0~9 A~F),8进制(0o 0~7),2进制(0b 0~1),运行时会自动转换成十进制输出

Python中整型占多少字节?
字节数随着数字增大而增大,python整型是变长的(java中int固定4字节),最小28个字节,每次增量4个字节。
可通过sys.getsizeof((object))返回对象的字节大小

字节(byte):计算机中基本存储单位
位(bit):计算机中最小存储单位 1byte = 8bit

浮点数 float

十进制:5.12, .512
科学计数法:5.12e2 (5.12*10^2), 5.12E -2 (5.12/(10^2))
浮点数有最大值最小值限制;
浮点数型计算后,存在精度的损失,可以使用Decimal类进行精确计算

from decimal import Decimal
a = 8 / 2.7
b = Decimal("8.1") / Decimal("2.7")
print(a, b)
布尔值 bool

取值True和False,通常用于逻辑运算,一般用于程序流程控制(条件控制语句,循环控制语句)
布尔类型可以和其他数据类型进行比较,比如数字、字符串,比较时python将True视为1,将False视为0
非0被视为真知,0被视为假值

字符串 str

单引号和双引号可以用于嵌套,而不适用转义字符表示引号;
python不支持单字符类型,同样被视为字符串;
三引号(‘’'或"“”)可使内容原样输出;
字符串前加 r 可使字符串不被转义;
字符串驻留机制:字符串池,节省空间提高效率

# 字符串驻留机制:Python仅保存一份相同的字符串
str1 = "Hello"
str2 = "Hello" # id()返回数据的标识值/内存地址
print(id(str1) == id(str2)) # True
# 驻留机制的几种情况
# 1) 字符串是由26个英文字母大小写,0-9,_组成(需在交互模式win+R -> python)
a = "abc#"
b = "abc#"
print(id(a) == id(b)) # False
# 2)字符串长度为0或1时,不受1)限制
# 3)字符串在编译时进行驻留,而非运行时(字符串在没有确定变量内容是什么前,可以发生驻留)
a = "abc"
b = "".join(["a", "bc"]) #运行后确定内容"abc"
print(id(a) == id(b)) # False
# 4) [-5, 256]的整数数字
# 强制2个字符串指向同一个对象
s1 = "abc#"
s2 = sys.intern(s1)
s1 is s2 # True 
# pycharm对字符串进行了优化处理,不受驻留机制情况限制
数据类型转换
  • 隐式类型转换/自动转换:
    变量根据使用的上下文(即当前值)在运行时决定其类型
    运算时数据类型会向高精度转换
var1 = 10
print(type(var1)) # int
  • 显示类型转换/强制转换:
    将数据类型作为函数名;
    float转换成int时会直接去掉小数点部分;
    str转成int时,要求字符串中本身是整数;str转成float,字符串中可以是整数;
    强制转换后不会影响原变量和数据/值得类型。
i = 10
j = float(i) # 10.0
print(type(i)) # int
print(type(j) # float
i = j + 1 # 11.0
print(type(i)) # float
print(type(j)) # float
print(i) # 11.0
print(int(i)) # 11
print(type(i)) # float

符号 & 关键字

运算符

运算符:表示数据的运算、赋值和比较等

  • 算数运算符:+ - * /
    %除法取模(取余),7%5 = 2
    // 除法取商的整数部分(向下取整) 9//2 = 4
    ** 返回x的y次幂 2**4 = 16
  • 比较运算符
    == != < > <= >=
    is/is not 判断两个变量引用对象是否为同一个/不同
  • 逻辑/布尔运算符
    and or(布尔或是短路运算符,按序false才会判断下一个条件) not
  • 赋值运算符:=
    +=/-=/*=//=/%=/**=///= 复合加减乘除/取模/幂/取整除赋值运算符 c += a 等效于 c = c + a
  • 三元运算符
    用if else实现 ? : 功能 max = a if a > b else b
  • 位运算符 [二进制]

运算符优先级

在这里插入图片描述

标识符

Python对各种变量、函数和类等命名时使用的字符序列

  • 命名规则:
    由26个英文字母大小写,0-9,_组成
    数字不可以开头
    不能使用关键字,但可以包含关键字
    Python区分大小写
    标识符不能包含空格
    类名:大驼峰命名,首字母大写

关键字

关键字/保留字:python语言赋予特殊含义,用作专门用途,不能用于普通标识符
cmd -> python -> help() -> keywords
在这里插入图片描述

键盘输入语句

内置函数input(prompt): 如果存在“提示”实参,则将其写入标准输出,末尾不带换行符。接下来,阻塞等待输入,键盘输入语句,函数从中读取一行,将其转换为字符串(除末尾的换行符)并返回。当读取到EOF时,则触发EOFError。

name = input("请输入姓名:")
age = input("请输入年龄:") # 可以在接收时将str转成int int(input("..."))
score = input("请输入成绩:")
print("\n输入信息如下:")
print("name: ", name)
print("age: ", age)
print("score: ", score)

程序控制结构

顺序控制

从上到下按序执行,没有跳转或循环

分支控制

# 单分支
if 条件表达式:
	代码块 # 相同缩进界定统一代码块,不同缩进代表代码块内外或嵌套,相当于其他编程语言中的{}
# 双分支
if 条件表达式:
	代码块1
else:
	代码块2
# 多分支
if 条件表达式1:
	代码块1
elif 条件表达式2:
	代码块2
...
else:
	代码块n+1
# 嵌套分支:内外层分支,建议不超过3层,影响可读性
if:
	if:

循环控制

如果需要遍历数字序列,可以使用内置range()函数,它会生成前闭后开的数列。

# for循环
for <变量> in <范围/序列>: # 数据集,可迭代对象,如字符串、列表等
	<循环操作语句>
# while循环

# 多重循环

函数

数据容器

排序查找算法

Python高级

断点调试

模块

面向对象

封装

继承

多态

实践-出租系统

异常

文件读取

pyecharts

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用LangChain编写图检索查询实现RAG

大家好&#xff0c;检索增强生成&#xff08;Retrieval-Augmented Generation&#xff0c;简称RAG&#xff09;是一种先进的人工智能技术&#xff0c;通过整合大型语言模型&#xff08;LLM&#xff09;的内部知识和外部权威数据源&#xff0c;来提升生成式AI模型的表现。 本文…

网站访问502,网站服务器崩溃,比较常见几个的原因

其实&#xff0c;配置再好的服务器也难免在使用过程中出现一些故障&#xff0c;造成宕机。 服务器一旦出现故障&#xff0c;影响到用户实时访问网站&#xff0c;造成用户流失&#xff0c;如果在企业的销售高峰期&#xff0c;则将直接影响到商业利润&#xff0c;而且不仅影响外…

RUST语言流控制语句使用示例

1.判断语句 单条件判断: let mut x128;//声明一个32位整数x512;//修改变量原来的值为新值//如果 ... 否则//判断变量x是否大于256if x>256 {println!("x>256,x{}",x);}else {println!("x<256,x{}",x);}let is_ok:bool true;//rust中不用()if i…

5.Python数据分析—Pandas数据结构详讲

5.Python数据分析—Pandas数据结构详讲 摘要个人简介简介Series定义和特点创建方法属性和方法 DataFrame定义和特点创建方法数据获取和操作 索引对象种类和应用作用和管理 摘要 Pandas是一个开源的Python数据分析库&#xff0c;提供了高性能、易用的数据结构和数据分析工具。它…

突破校园网限速:使用 iKuai 多拨分流负载均衡 + Clash 代理(内网带宽限制通用)

文章目录 1. 简介2. iKuai 部署2.1 安装 VMware2.2 安装 iKuai(1) 下载固件(2) 安装 iKuai 虚拟机(3) 配置 iKuai 虚拟机(4) 配置 iKuai(5) 配置多拨分流 2.3 测试速度 3. Clash 部署3.1 准备工作(1) 配置磁盘分区(2) 安装 Docker(3) 安装 Clash(4) 设置代理 1. 简介 由于博主…

openwrt开发包含路由器基本功能的web问题记录

1.这里的扫描怎么实现的先找一些luci代码&#xff0c;在openwrt21版本后&#xff0c;luci用js替换了lua写后台&#xff0c;先找一些代码路径 在openrwt15这部分代码是在这个目录下 feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_join.htm 里面包含…

现代化个人博客系统 ModStartBlog v9.2.0

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场&#xff0c;后台一键快速安装会…

JavaScript基础代码练习之翻转数组

一、要求将给定数组 [red, green, blue, pink, purple] 的内容反转存放&#xff0c;并将结果输出到控制台。 二、编写代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" cont…

Windows 中的硬链接、软连接、快捷方式和普通文件

在 Windows 中&#xff0c;文件可以有四种类型&#xff1a; 硬链接软连接快捷方式普通文件 当我们正常创建一个文件时&#xff0c;这个文件就是普通文件 echo hello > a.txt (Get-Item "a.txt").LinkType -eq $null # 输出 True然后我们可以为其添加一个软连接…

计算机视觉之三维重建(6)---多视图几何(上)

文章目录 一、运动恢复结构问题&#xff08;SfM&#xff09;二、欧式结构恢复2.1 概述2.2 求解2.3 欧式结构恢复歧义 三、仿射结构恢复3.1 概述3.2 因式分解法3.3 总结3.4 仿射结构恢复歧义 一、运动恢复结构问题&#xff08;SfM&#xff09; 1. 运动恢复结构问题&#xff1a;通…

Stable Diffusion扩散模型推导公式的基础知识

文章目录 1、独立事件的条件概率2、贝叶斯公式、先验概率、后验概率、似然、证据3、马尔可夫链4、正态分布 / 高斯分布5、重参数化技巧6、期望7、KL散度 、高斯分布的KL散度8、极大似然估计9、ELBO :Evidence Lower Bound10、一元二次方程 1、独立事件的条件概率 A 和 B 是两个…

基于lora技术微调Gemma(2B)代码实践

一、前置条件 获得模型访问权&#xff0c;选择Colab运行时&#xff0c;配置训练环境。 先在Kaggle上注册&#xff0c;然后获得Gemma 2B 的访问权&#xff1b; 然后在Google colab 配置环境&#xff0c;主要是GPU的选择&#xff0c;免费的是T4&#xff0c;建议采用付费的A100…

【JVM基础】JVM入门,详讲JVM

组建团队中......加v备注进群个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏…

[蓝桥杯练习题]出差

一道DJ题,重要的是隔离时间,把隔离时间加在边权上即可 现实生活的题大多都是无向图建图,需要边的两端点各自上邻接表和相同权重 #include<bits/stdc.h> using namespace std; #define ll long long const int N1005; const int M10005; struct edge{int to;ll w;edge(int…

电商好评语整理与优化:让繁琐工作变得轻松高效

在电子商务领域&#xff0c;客户的好评是店铺信誉和产品质量的重要体现。然而&#xff0c;整理和优化这些好评语却是一项既繁琐又需要细致耐心的工作。本文将探讨如何高效地进行电商好评语的筛选、分类和优化&#xff0c;让这一工作变得更加轻松和高效。 一、明确整理目的 在开…

从零开始学RSA加密解密过程

因为文字太过晦涩难懂&#xff0c;下面以图示的方法来理解RSA加密解密的过程 以上过程中因为HACK无法得到p,q信息&#xff0c;也就是无法计算出d , 导致了无法解密 c 得到 m (n,e) 公钥 (d,n) 私钥 (p,q,n,e) 生成的加密必要信息 必要的公式 c ≡ me mod n ----------->…

单片机家电产品学习记录--IO推挽输出

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 单片机家电产品–IO推挽输出 前言 记录学习单片机家电产品内容 已转载记录为主 一、知识点 1 单片机IO口科普&#xff1a;推挽输出、开漏输出详解 推挽输出既可以输出低…

Android 性能优化之黑科技开道(一)

1. 缘起 在开发电视版智家 App9.0 项目的时候&#xff0c;发现了一个性能问题。电视系统原本剩余的可用资源就少&#xff0c;而随着 9.0 功能的进一步增多&#xff0c;特别是门铃、门锁、多路视频同屏监控后等功能的增加&#xff0c;开始出现了卡顿情况。 经过调研分析发现有…

OpenHarmony实战:Makefile方式组织编译的库移植

以yxml库为例&#xff0c;其移植过程如下文所示。 源码获取 从仓库获取yxml源码&#xff0c;其目录结构如下表&#xff1a; 表1 源码目录结构 名称描述yxml/bench/benchmark相关代码yxml/test/测试输入输出文件&#xff0c;及测试脚本yxml/Makefile编译组织文件yxml/.gitat…

C语言:文件操作(一)

目录 前言 1、为什么使用文件 2、什么是文件 2.1 程序文件 2.2 数据文件 2.3 文件名 3、文件的打开和关闭 3.1 文件指针 3.2 文件的打开和关闭 结&#xff08;一&#xff09; 前言 本篇文章将介绍C语言的文件操作&#xff0c;在后面的内容讲到&#xff1a;为什么使用文…