java经验快速学习python!
title: java经验快速学习python!
date: 2025-02-19 01:52:05
tags:
- python
- 学习路线
java经验快速学习python!
- 本篇文档会一直更新!!!
- 变量、分支结构、循环结构、数据结构【列表、元组、集合字典】
- python常用内置函数
- 元组和列表的比较
- 字符串占位符
- 函数的使用进阶,以及函数的高级应用
前言:现在python的应用方向越来越多了,如日中天的DeepSeek也是python开发的,目前现在的大学生学习的也是python语言,感受到了,这是一个趋势,不能不了解这门语言了。
本篇文档会一直更新!!!
通过在github开源100天可以看到,按照上面的学习路线结合人工智能的定向方案,一起学习。
下方图片:我半年以前是有学习过一遍了,太久没用了,过一遍基础操作,半小时理解一下。
变量、分支结构、循环结构、数据结构【列表、元组、集合字典】

import math
# 学习python的输入输出打印 +变量定义
print(123.456)
print(1.23456e2)
radius=float(input('请输入圆的半径:'))
print(radius)
area=math.pi * radius ** 2
print(f'面积: {area}')
print(f'面积: {area:.2f}')# 学习类型转换 +打印输出格式化 +判断语句 ifelse和match+case
height = float(input('身高(cm):'))
weight = float(input('体重(kg):'))
bmi = weight / (height / 100) ** 2
print(f'{bmi = :.1f}')
if 18.5 <= bmi < 24:print('你的身材很棒!')status=int(input("响应状态码:"))
match status:case 400:description='Bad Request'case 401:description='Unauthorized'case 402:description='Forbidden'case 403:description='Forbidden'case 500 |501:description='Server Error'case _:description='Unknown Error'
print('状态码:',description)
# 学习 range 函数+ time模块sleep休眠函数
import timefor i in range(10,100):print(i)print('Hello World!')time.sleep(1)
# 学习random 随机数+range函数生成1-5999的数字
import randomf1=0
f2=0
f3=0
f4=0
f5=0
f6=0
for i in range(6000):face=random.randrange(1,7)if face==1:f1+=1elif face==2:f2+=2elif face==3:f3+=3elif face==4:f4+=4elif face==5:f5+=5elif face==6:f6+=6
print(f'1点出现了{f1}次')
print(f'2点出现了{f2}次')
print(f'3点出现了{f3}次')
print(f'4点出现了{f4}次')
print(f'5点出现了{f5}次')
print(f'6点出现了{f6}次')
# 学习列表 取值与定义,可以点进去具体方法里面看都有什么类型的方法
items=list(range(100))
print(items)items=['Python','Java','C++','C#','JavaScript']
if 'Python' in items:items.reverse()
print(items)
python常用内置函数

元组和列表的比较
这里还有一个非常值得探讨的问题,Python 中已经有了列表类型,为什么还需要元组这样的类型呢?这个问题对于初学者来说似乎有点困难,不过没有关系,我们先抛出观点,大家可以一边学习一边慢慢体会。
- 元组是不可变类型,不可变类型更适合多线程环境,因为它降低了并发访问变量的同步化开销。关于这一点,我们会在后面讲解并发编程的时候跟大家一起探讨。
- 元组是不可变类型,通常不可变类型在创建时间上优于对应的可变类型。我们可以使用
timeit模块的timeit函数来看看创建保存相同元素的元组和列表各自花费的时间,timeit函数的number参数表示代码执行的次数。下面的代码中,我们分别创建了保存1到9的整数的列表和元组,每个操作执行10000000次,统计运行时间。
import timeitprint('%.3f 秒' % timeit.timeit('[1, 2, 3, 4, 5, 6, 7, 8, 9]', number=10000000))
print('%.3f 秒' % timeit.timeit('(1, 2, 3, 4, 5, 6, 7, 8, 9)', number=10000000))
items=list(range(100))
print(items)items=['Python','Java','C++','C#','JavaScript']
if 'Python' in items:items.reverse()
print(items)#同类型三元组
t1=(32,45,96)
# 不同类型四元组
t2=(23,'zhangsan',True,'lisi')
# 学习type函数,查看变量的类型
print(type(t1))
print(type(t2))
# 学习 len函数,查看变量的数量
print(len(t1))
print(len(t2))
# 学习 元组的索引计算
print(t1[0])
print(t1[1])
print(t1[-1])
print(t1[-2])
#学习切片运算
print(t2[:2]) # 切片,在切片第2个元素前结束
print(t2[::3]) # 切片,从0开始,在下标3前结束
# 循环打印元组元素
for i in t1:print(i)
# 成员运算 下方的例子可以看成if判断
print(32 in t1) #True
print(45 in t1) #True
print(78 in t1) #False
# 拼接运算 元组t1+元组t2 成为一个新元组t3
t3=t1+t2
print(t3)
# 比较运算
print(t1 == t3) # False
print(t1 >= t3) # False
print(t1 <= (35, 11, 99)) # False
# 学习打包和解包操作
# 打包操作
a = 1, 10, 100
print(type(a)) # <class 'tuple'>
print(a) # (1, 10, 100)
# 解包操作
i, j, k = a
print(i, j, k) # 1 10 100# 学习集合
tupic=(1,2,3,4) # 这是一个元组
print(tupic)
list={1,2,3,4,5,6,7,8,9,10} # 这是一个集合
print(list)
print(set('hello'))
#学习字典
dict1={'a':1,'b':2,'c':3,'d':4}
print(dict1)
字符串占位符

函数的使用进阶,以及函数的高级应用
import functools
import operator
import string
import random
import time# 所有数字和所有字母的字符集
chars=string.digits+string.ascii_lettersdef generate_code(*,code_len=4):return ''.join(random.choices(chars,k=code_len))
# 学习 定义入参类型 num:int,和定义返回参数类型 ->bool
def is_prime(num:int)->bool:"""判断一个正整数是不是质数:param num: 大于1的正整数:return: 如果num是质数返回True,否则返回False"""for i in range(2,int(num**0.5)+1):if num%i==0:return Falsereturn Truefor _ in range(5):print(generate_code())def calc(*args,**kwargs):items=list(args)+list(kwargs.values())result=0for item in items:if(type(item) in (int,float)):result+=itemreturn resultdef calc(int_value,of_func,*args,**kwargs):items=list(args)+list(kwargs.values())result=int_valuefor item in items:if(type(item) in(int,float)):result=of_func(result,item)return resultdef add(x,y):return x + y
def mul(x,y):return x*y
# 学习将函数传递给函数
# 通过参数名的方式
print(calc(0,add,1,2,3,4,5))
print(calc(1,mul,1,2,3,4,5))def is_even(num):return num%2==0
def square(num):return num**2
old_nums=[35,46,73,52,90]
nums_news=[num **2 for num in old_nums if num%2==0]
print(nums_news)#lambda函数
old_nums = [35, 12, 8, 99, 60, 52]
new_nums=list(map(lambda x:x**2,filter(lambda y:y%2==0,old_nums)))
print(new_nums)#用一段代码实现计算阶乘的函数
fac=lambda n:functools.reduce(operator.mul,range(2,n+1),1)#用一段代码实现判断素数的函数
is_prime =lambda x:all(map(lambda f:x%f,range(2,int(x**0.5)+1)))#调用lambda 函数
print(fac(6))
print(is_prime(37))# 装饰器函数
def recode_time(func):@functools.wraps(func)def wrapper(*args,**kwargs):start=time.time()result=func(*args,**kwargs)end =time.time()print(f'{func.__name__}执行时间:{end-start:.2f}秒')return resultreturn wrapper#学习装饰器函数
@recode_time
def down(filename):print(f'正在下载{filename}')time.sleep(random.random()*6)print(f'{filename}下载完成')@recode_time
def upload(filename):print(f'正在上传{filename}')time.sleep(random.random()*8)print(f'{filename}上传完成')down('Mysql从删库到跑路')
upload('Python从入门到住院')
递归调用
# 递归调用
# 使用 Python 标准库中functools模块的lru_cache函数来优化上面的递归代码
@functools.lru_cache
def fac(num):if num in (0,1):return 1return num*fac(num-1)
print(fac(5))
面相对象编程应用小例子
Employee.py
from abc import ABCMeta, abstractmethodclass Employee(metaclass=ABCMeta):def __init__(self,name):self.name=name@abstractmethoddef get_salary(self):passclass Manager(Employee):def get_salary(self):return 15000.00
class Programmer(Employee):def get_salary(self,name,working_hour=0):super().__init__(name)self.working_hour=working_hourdef get_salary(self):return 200*self.working_hour
class Salesman(Employee):def __init__(self,name,sales=0):super().__init__(name)self.sales=salesdef get_salary(self):return 1800*self.sales*0.05emps=[Manager('刘备'),Programmer('诸葛亮'),Manager('曹操'),Programmer('荀彧'),Salesman('张辽')]
for emp in emps:if isinstance(emp,Programmer):emp.working_hour=int(input(f'请输入{emp.name}本月工作时间'))elif isinstance(emp,Salesman):emp.sales=float(input(f'请输入{emp.name}本月销售额'))print(f'{emp.name}本月工资为:¥{emp.get_salary():.2f}元')
Card.py
import random
from enum import Enumclass Suite(Enum):SPADE,HEART,CLUB,DIAMOND=range(4)for suite in Suite:print(f'{suite}:{suite.value}')
class Card:def __init__(self,suite,face):self.suite=suiteself.face=facedef __repr__(self):suites='♠♥♣♦'faces=['', 'A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']return f'{suites[self.suite.value]}{faces[self.face]}'#返回牌的花色和点数def __lt__(self, other):if self.suite == other.suite:return self.face < other.facereturn self.suite.value<other.suite.value
card1=Card(Suite.SPADE,5)
card2=Card(Suite.HEART,13)
print(card1)
print(card2)class Poker:def __init__(self):self.cards=[Card(suite,face)for suite in Suitefor face in range(1,14)]self.current=0def shuffle(self):self.current=0random.shuffle(self.cards)def deal(self):card=self.cards[self.current]self.current+=1return card@propertydef has_next(self):return self.current < len(self.cards)poker=Poker()
print(poker.cards)
poker.shuffle()
print(poker.cards)class Player:def __init__(self,name):self.name=nameself.cards=[]def get_one(self,card):self.cards.append(card)def arrange(self):self.cards.sort()
poker=Poker()
poker.shuffle()
players=[Player('东邪'),Player('西毒'),Player('南帝'),Player('北丐')]
for _ in range(13):for player in players:player.get_one(poker.deal())
for player in players:player.arrange()print(f'{player.name}:',end='')print(player.cards)
相关文章:
java经验快速学习python!
title: java经验快速学习python! date: 2025-02-19 01:52:05 tags: python学习路线 java经验快速学习python! 本篇文档会一直更新!!!变量、分支结构、循环结构、数据结构【列表、元组、集合字典】python常用内置函数元…...
爬虫破解网页禁止F12
右击页面显示如下 先点击f12再输入网址,回车后没有加载任何数据 目前的一种解决方法: 先 AltD ,再 CtrlShifti...
从零开始构建一个语言模型中vocab_size(词汇表大小)的设定规则
从零开始构建一个语言模型就要设计一个模型框架,其中要配置很多参数。在自然语言处理任务中,vocab_size(词汇表大小) 的设定是模型设计的关键参数之一,它直接影响模型的输入输出结构、计算效率和内存消耗。 本文是在我前文的基础上讲解的:从零开始构建一个小型字符级语言…...
Jenkins插件管理切换国内源地址
安装Jenkins 插件时,由于访问不了国外的插件地址,会导致基本插件都安装失败。 不用着急,等全部安装失败后,进入系统,修改插件源地址,重启后在安装所需插件。 替换国内插件更新地址 选择:系统…...
Q - learning 算法是什么
Q - learning 算法是什么 Q - learning 算法是一种经典的无模型强化学习算法,由克里斯沃特金斯(Chris Watkins)在 1989 年提出。它被广泛应用于解决各种决策问题,尤其适用于智能体在环境中通过与环境交互来学习最优策略的场景。下面从基本概念、核心公式、算法流程和特点几…...
nasm - console 32bits
文章目录 nasm - console 32bits概述笔记my_build.batnasm_main.asm用VS2019写个程序,按照win32方式编译,比较一下。备注END nasm - console 32bits 概述 看到一个nasm的例子(用nasm实现一个32bits控制台的程序架子) 学习一下 笔记 my_build.bat ec…...
11.编写前端内容|vscode链接Linux|html|css|js(C++)
vscode链接服务器 安装VScode插件 Chinese (Simplified) (简体中⽂) Language Pack for Visual Studio CodeOpen in BrowserRemote SSH 在命令行输入 remote-ssh接着输入 打开配置文件,已经配置好主机 点击远程资源管理器可以找到 右键链接 输入密码 …...
【deepseek-r1模型】linux部署deepseek
1、快速安装 Ollama 下载:Download Ollama on macOS Ollama 官方主页:https://ollama.com Ollama 官方 GitHub 源代码仓库:https://github.com/ollama/ollama/ 官网提供了一条命令行快速安装的方法。 (1)下载Olla…...
【Github每日推荐】-- 2024 年项目汇总
1、AI 技术 项目简述OmniParser一款基于纯视觉的 GUI 智能体,能够准确识别界面上可交互图标以及理解截图中各元素语义,实现自动化界面交互场景,如自动化测试、自动化操作等。ChatTTS一款专门为对话场景设计的语音生成模型,主要用…...
C++中的.*运算符
看运算符重载的时候,看到这一句 .* :: sizeof ?: . 注意以上5个运算符不能重载。 :: sizeof ?: . 这四个好理解,毕竟都学过,但.*是什么? 于是自己整理了一下 .* 是一种 C 中的运算符,称为指针到成…...
深度学习笔记——LSTM
大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍面试过程中可能遇到的LSTM知识点。 文章目录 LSTM(Long Short-Term Memory)LSTM 的核心部件LSTM 的公式和工作原理(1) 遗忘门&a…...
spring boot知识点2
1.spring boot 要开启一些特性,可通过什么方式开启 a.通过Enable注解,可启动定时服务 b.通过application.properties可设置端口号等地址信息 2.什么是热部署,以及spring boot通过什么方式进行热部署 热部署这个概念,我知道。就…...
【机器学习】CNN与Transformer的表面区别与本质区别
仅供参考 表面区别 1. 结构和原理: CNN:主要通过卷积层来提取特征,这些层通过滑动窗口(卷积核)捕捉局部特征,并通过池化层(如最大池化)来降低特征的空间维度。CNN非常适合处理具有网格状拓扑结构的数据,如图像。Transformer:基于自注意力(Self-Attention)机制,能…...
框架篇 - Hearth ArcGIS 框架扩展(DryIoC、Options、Nlog...)
框架篇 - Hearth ArcGISPro Addin 框架扩展(DryIoC、Options、Nlog…) 文章目录 框架篇 - Hearth ArcGISPro Addin 框架扩展(DryIoC、Options、Nlog...)1 使用IoC、DI1.1 服务注册1.1.1 `ServiceAttribute`服务特性1.2 依赖注入1.2.1 SDK底层创建实例类型依赖注入1.2.2 `In…...
JUC并发—7.AQS源码分析三
大纲 1.等待多线程完成的CountDownLatch介绍 2.CountDownLatch.await()方法源码 3.CountDownLatch.coutDown()方法源码 4.CountDownLatch总结 5.控制并发线程数的Semaphore介绍 6.Semaphore的令牌获取过程 7.Semaphore的令牌释放过程 8.同步屏障CyclicBarrier介绍 9.C…...
windows系统本地部署DeepSeek-R1全流程指南:Ollama+Docker+OpenWebUI
本文将手把手教您使用OllamaDockerOpenWebUI三件套在本地部署DeepSeek-R1大语言模型,实现私有化AI服务搭建。 一、环境准备 1.1 硬件要求 CPU:推荐Intel i7及以上(需支持AVX2指令集) 内存:最低16GB,推荐…...
当C#邂逅Deepseek, 或.net界面集成deepseek
最近,我开发了一个C#界面,并集成了Deepseek的接口功能,实现了本地化部署和流模式读取。 过程充满了挑战和乐趣,也让我深刻体会到Deepseek的强大之处。今天,我想和大家分享这段经历,希望能激发你对Deepseek的…...
Cursor实战:Web版背单词应用开发演示
Cursor实战:Web版背单词应用开发演示 需求分析自行编写需求文档借助Cursor生成需求文档 前端UI设计后端开发项目结构环境参数数据库设计安装Python依赖运行应用 前端代码修改测试前端界面 测试数据生成功能测试Bug修复 总结 在上一篇《Cursor AI编程助手不完全指南》…...
Kotlin Lambda
Kotlin Lambda 在探索Kotlin Lambda之前,我们先回顾下Java中的Lambda表达式,Java 的 Lambda 表达式是 Java 8 引入的一项强大的功能,它使得函数式编程风格的代码更加简洁和易于理解。Lambda 表达式允许你以一种更简洁的方式表示实现接口&…...
V4L2驱动之UVC
以下是关于V4L2摄像头驱动框架与UVC协议的关联分析,从内核驱动到用户空间的完整视角: 1. V4L2驱动框架核心架构 关键组件: 核心层 (V4L2 Core) v4l2_device:设备的总入口,管理所有子组件video_device:对应…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 (九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
