首页 文章 精选 留言 我的

精选列表

搜索[基础搭建],共10000篇文章
优秀的个人博客,低调大师

Python零基础学习笔记(三十八)—— 递归方法、栈、队列模拟遍历目录

用递归方法遍历目录: 使用到os模块,所以要先引入os模块 处理文件: 核心是判断文件是否是目录文件,如果是目录文件就进行递归处理,直接将文件名打印出来 下面是文件代码: import os def getAllDir(path, sp = " "): fileList = os.listdir(path) #处理每一个文件 sp += " " for fileName in fileList: #判断是否是路径(用绝对路径) absFliePath = os.path.join(path, fileName) if os.path.isdir(absFliePath): print(sp + "目录:", fileName) #递归调用 getAllDir(absFliePath, sp) else: print(sp + "普通文件", fileName) return fileList getAllDir(r"C:\Users\Administrator\PycharmProjects\untitled\day011") 栈方法: import os def getAllDirDE(path): stack = [] stack.append(path) #处理栈,当栈为空的时候结束循环 while len(stack) != 0: dirPath = stack.pop() fileDir = os.listdir(dirPath) for fileName in fileDir: fileAbsPath = os.path.join(dirPath, fileName) if os.path.isdir(fileAbsPath): print("目录:"+ fileName) stack.append(fileAbsPath) else: print("普通文件:", fileName) getAllDirDE(r"C:\Users\Administrator\PycharmProjects\untitled\day011") 队列方法: import os import collections def getAllDir(path): queue = collections.deque() #进队 queue.append(path) while len(queue) != 0: dirPath = queue.popleft() fileList = os.listdir(dirPath) for fileName in fileList: fileAbsPath = os.path.join(dirPath, fileName) if os.path.isdir(fileAbsPath): print("目录:"+fileName) queue.append(fileAbsPath) else: print("文件:"+fileName) getAllDir(r"C:\Users\Administrator\PycharmProjects\untitled\day011")

优秀的个人博客,低调大师

Python零基础学习代码实践 —— 模拟播放器中的歌词显示

import time musucLrc = ''' [00:00.01]给我你的爱 [00:02.01]林宥嘉,张杰 [00:05.53] 作词:秋风 [00:09.83] 作曲:秋风 [00:14.90] [00:15.65]相信我 在每个生命的路口 [00:20.98]在每个无助的时候 [00:24.75]都有对爱的渴求 [00:30.47]我想把 真的爱向你传达 [00:36.53]无论你在海角天涯 [00:39.52]都能感到 我的牵挂 [00:44.28]请给我你的爱 [00:47.84]请伸出手来传递这信赖 [00:51.54]就在这茫茫人海 [00:53.79]真心的爱 让世界变色彩 [00:59.02]请给我你的爱 [01:02.45]让我们用爱改变着未来 [01:06.10]在每个艰难时刻 [01:08.88]伸你的手 感觉真的爱 [01:14.81]牵着手 让我们静静地感受 [01:19.92]当风雨艰难过去后 [01:23.79]那种美好的自由 [01:29.29]我们都曾 错过幸福的意义 [01:34.77]只希望我还来得及 [01:38.45]去告诉你 真心爱你 [01:43.15]请给我你的爱 [01:47.39]请伸出手来传递这信赖 [01:50.42]就在这茫茫人海 [01:53.18]真心的爱 让世界变色彩 [01:57.72]请给我你的爱 [02:01.53]让我们用爱改变着未来 [02:05.19]在每个艰难时刻 [02:07.86]伸你的手 感觉真的爱 [02:14.27]我不再想要错过 [02:15.81]你的每个热切期待 [02:19.18]用爱 在明天到来之前 [02:22.56]向你大声说出爱~~爱 [02:29.44]请给我你的爱 [02:32.65]请伸出手来传递这信赖 [02:36.33]就在这茫茫人海 [02:39.08]真心的爱 让世界变色彩 [02:43.89]请给我你的爱 [02:47.56]让我们用爱改变着未来 [02:51.05]在每个艰难时刻 [02:53.96]伸你的手 感觉真的爱 [03:01.38]给我你的爱~~ ''' #将数据分解存储到字典里 lrcDict = {} musicList = musucLrc.splitlines() for lrcLine in musicList: #runCount = lrcLine.count(":") lrcLineList = lrcLine.split("]") for index in range(len(lrcLineList) - 1): timeStr = lrcLineList[index][1:] #print(timeStr) timeList = timeStr.split(":") timea = float(timeList[0]) * 60 + float(timeList[1]) #print(timea) lrcDict[timea] = lrcLineList[-1] #print(lrcDict) allTimeList = [] for t in lrcDict: allTimeList.append(t) allTimeList.sort() #print(allTimeList) #在字典里将数据调出来然后按照时间间隔将数据显示出来 #效果是一行一行的刷新 getTime = 0 while 1: for n in range(len(allTimeList)): tempTime = allTimeList[n] if getTime < tempTime: break lrc = lrcDict.get(allTimeList[n]) if lrc == None: pass else: print(lrc) if n in range(len(allTimeList) - 1): time.sleep(allTimeList[n + 1] - allTimeList[n]) getTime += (allTimeList[n + 1] - allTimeList[n]) else: break

优秀的个人博客,低调大师

Python零基础学习笔记(十一)—— 运算符和表达式2

''' 位运算符:按位运算是把数字看作是二进制数来计算 & / ^ ~ << >> ''' #与运算: & (同 1 为 1,否则为 0) print(5 & 7) #或运算: | (有 1 为 1,同 0 则 0) print(5 | 7) #异或运算:^ (相同为 0,不同为 1) print(5 ^ 7) # 取反:~ (1 变为 0, 0 变为 1) print(~2) #左移运算符: << () #各二进制位全部左移若干位,高位丢弃,低位补零,<< 右侧的数字决定移动几位 print(2<<2) #右移运算符: >> () #各二进制位全部右移若干位,高位丢弃,低位补零,<< 右侧的数字决定移动几位 print(10>>1) ''' 关系运算符和关系运算表达式 关系运算符: == != > < >= <= 关系运算表达式: 格式: 【表达式1】 关系运算符 【表达式2】 功能:计算【表达式1】和【表达式2】的值 值:如果关系成立,整个关系运算表达式的值为真,否则为假 ''' ''' 逻辑运算符(3种) 逻辑与: and 逻辑与运算表达式: 【表达式1】 and 【表达式2】 值:【表达式1】【表达式2】同真为真,有假则为假 **短路原则:【表达式1】 and 【表达式2】 and 【表达式3】 .....and 【表达式n】 从前向后执行,遇到假就立刻停止 逻辑或: or 逻辑或运算表达式: 【表达式1】 or 【表达式2】 值:【表达式1】【表达式2】有一个为真就是真,都是假为假 **短路原则:【表达式1】 or 【表达式2】 or 【表达式3】 .....or 【表达式n】 从前向后执行,遇到真就立刻停止 逻辑非: not 逻辑非运算表达式: not 【表达式1】 值:真变假,假变真 ''' ''' 成员运算符 in:如果在指定序列中找到值返回True,否则返回False not in:如果在指定序列中没有找到值返回True,否则返回False ''' ''' 身份运算符 is:判断两个标识符是不是引用同一个对象 is not:判断两个标识符是不是引用不同的对象 ''' ''' 运算符优先级 ** ~ +(正) -(负) * / % // +(加) -(减) >> << & ^ | <= < > >= == != = %= += -= //= **= /= is is not in not in not or and ''' print(~2) ''' 取反过程: 内存中都是补码的形式存储 2在内存中存的补码是 00000000 00000000 00000000 00000010 2在内存中存的补码取反 11111111 11111111 11111111 11111101 求原码(除符号位,逐位取反,末位+1) 10000000 00000000 00000000 00000011 则结果为-3 '''

优秀的个人博客,低调大师

第四章:Spring框架装配Bean的三种方式(基础

欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系。本系列教程希望您能站在上帝的角度去观察(了解)Java体系。使Java的各种后端技术在你心中模块化;让你在工作中能将Java各个技术了然于心;能够即插即用。本章我们来一起了解你的老朋友Spring框架。 本章我们一起来探讨SpringBean的装配,所谓 ”装配“ 就是值将Bean安装Bean容器中并进行依赖关系配置,稍微提一下IOC控制反转就是指的安装这一过程中,而DI依赖指的是配置这一过程。本章我们就Spring应用中如何进行装配Bean进行讲解;如自动化装配,Java配置装配,XML配置装配方式进行介绍,但本章并不会介绍Spring项目全局配置方案,我们会在下一章中单独介绍Spring基于Java的全局配置和基于XML的全局配置的两种方案。本章提供三个完整源码测试,Github源码下载地址 Spring的三种装配机制 隐式的Bean发现机制和自动装配 在Java中进行装配 在XML中进行装配 值得一提的是,我们在项目中应该优先实用隐式的Bean发现机制和自动装配,其次使用在Java中进行装配,最后再使用在XML中进行装配。 隐式的Bean发现机制和自动装配 隐式Bean发现和自动装配测试源码 Spring从两个角度来实现自动化装配;组件扫描(Spring自动发现应用中上下文所需要的创建的Bean),自动装配(Spring自动满足Bean之间的依赖) 使用@Component将普通Java类配置成SpringBean 使用@Autowired(自动装配)使Spring满足Bean的依赖 配置组件扫描包(组件扫描) 在Java类中配置组件扫描 @ComponentScan("com.jimisun.controller") 在XML配置文件配置组件扫描 <context:component-scan base-package="com.jimisun.controller,com.jimisun.service"/> 示例 @Component public class User { @Autowired private Article article; public void action() { article.action(); } } 注意:示例中使@Component将Java类声明成SpringBean,除了这一注解你还可以使用@Controller,@Service,@Repository等注解... 同样@Autowired也可使用其他注解来代替,这里为了简明介绍不再陈述。 基于Java的Bean装配 基于Java装配Bean完整源码同样我们可以再Spring的Java配置类中对SpringBean进行配置 使用 @Bean 注解将方法返回的实例对象添加到上下文中 在 @Bean 返回的实例对象中可以通过构造器注入传入相关依赖 示例 @Configuration @ComponentScan("com.jimisun") public class WebConfig { @Bean public User user() { return new User(myArticle()); } @Bean public MyArticle myArticle() { return new MyArticle(); } } 注意:如果你没有接触过基于java配置Bean的装配的话,不需要着急,这里只需要你理解SpringBean装配的全局信息,下章我们会更为详细的介绍。 基于XML的Bean装配 基于XML装配Bean完整源码 对于在XML中进行配置可能使我们经常使用的,在以前的Spring版本中几乎我们都是使用XML进行配置Spring,下面我们简单来看一下。 示例 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> <bean class="com.jimisun.spring.example.User" id="user"> <constructor-arg ref="myArticle"/> </bean> <bean class="com.jimisun.spring.example.MyArticle" id="myArticle"></bean> </beans> 注意:在实际应用中如何不想被海量的标签埋没前,你应当优先使用隐式的Bean发现机制和自动装配和在Java中进行装配,最后再选择使用在XML中配置。 最后值得一提的是在实际项目中我们通常都会选择组合使用 隐式的Bean发现机制和Java中进行装配进行组合 隐式的Bean发现机制和XML配置进行组合 这样便于我们更方便的配置Spring项目,下一章我们会针对全局的Spring项目的配置进行介绍。 Java开发之上帝之眼系列教程其他文章 Java开发之上帝之眼系列教程前言和章节目录汇总 重新来认识你的老朋友Spring框架 勘误&感谢 本系列文章资料来源很多出自于互联网和在下本身的见解,受限于个人技术能力水平和其他相关知识的限制,相关见解错误或者资料引用错误请各位帮助留言校正!引用资料多来自于互联网,在下在引用前会遵循各位前辈或者博主的引用说明表示感谢,但互联网资料多是转发再转发或存在遗漏请原作者内信联系指正。

优秀的个人博客,低调大师

Python基础系列-HTTP协议中get和post的7个区别,欢迎补充

版权声明:如需转载,请注明转载地址。 https://blog.csdn.net/oJohnny123/article/details/82085521 get post 参数通过url传递 参数放在request body中传递 url中传递的参数是有长度限制的(1024) 网页显示内容莫名其妙被截断的情况下,可以往这个思路检查一下 无限制 参数直接暴露在url中 / 只能进行url编码 支持多种编码方式 浏览器主动cache 不会 请求参数会被完整保留在浏览历史记录里 不保留 浏览器HTTP请求中产生一个TCP数据包(对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);) 产生两个TCP数据包(而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。)

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册