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:对应…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...

C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
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方式进行封装,供调用如何按…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...
智能职业发展系统:AI驱动的职业规划平台技术解析
智能职业发展系统:AI驱动的职业规划平台技术解析 引言:数字时代的职业革命 在当今瞬息万变的就业市场中,传统的职业规划方法已无法满足个人和企业的需求。据统计,全球每年有超过2亿人面临职业转型困境,而企业也因此遭…...