1.股票里的验票源码验票源码是什么意思
2.教你如何完成一个查票系统利用Python实现123006自动抢票啦~
3.期货、股票源码---CYC成本均线指标原理及使用方法
4.6个练手的系统软件测试实战项目(附全套视频跟源码)偷偷卷死他们!
5.股票源码是验票源码验票什么
6.ASP.NET Core认è¯åçåå®ç°
股票里的源码是什么意思
股票中的源码通常指的是用于分析、交易或获取股票市场数据的系统编程代码。这些代码可能由各种编程语言编写,验票源码验票如Python、系统会员积分php源码C++、验票源码验票Java等,系统并通常用于构建算法交易系统、验票源码验票量化交易策略、系统技术指标分析工具等。验票源码验票
详细来说,系统源码在股票领域的验票源码验票应用主要体现在以下几个方面:
1. 数据获取与处理:源码可以用来从股票交易所、财经数据提供商等处获取实时或历史股票数据。系统例如,验票源码验票使用Python的pandas库,我们可以方便地获取、清洗和处理股票数据。
2. 策略开发与回测:量化交易者会编写源码来开发交易策略,并通过历史数据进行策略回测。这样可以在实际投入资金前评估策略的有效性和风险。例如,一个简单的移动平均交叉策略可以通过比较短期和长期移动平均线的位置来确定买入和卖出点。
3. 技术指标计算:源码可用于计算各种技术指标,404 403源码如RSI、MACD、布林带等,这些指标有助于交易者分析股票价格的动量和趋势。
4. 自动化交易:一旦策略经过验证并被认为是有利可图的,源码可以被用来构建自动化交易系统。这些系统可以实时监控市场,并在满足特定条件时自动执行交易。
5. 风险管理与优化:源码还可用于开发风险管理工具,如止损和止盈算法,以及用于优化投资组合配置的算法。
举例来说,一个Python源码片段可能用于从网络API获取股票数据,计算某只股票的简单移动平均线,并根据移动平均线的交叉点生成买入或卖出信号。这样的源码不仅有助于交易者做出更明智的投资决策,还可以通过自动化减少人为错误和情绪干扰。
教你如何完成一个查票系统利用Python实现自动抢票啦~
哈喽铁汁们这不马上要放年假了嘛,昨天我们公司收到放假安排的通知可高兴坏了!不知道你们又通知放假了没啊?是不是又得为春节抢票发愁了呢?别担心哦小编一想到这就马不停蹄的准备出这一期了
想领取更多完整源码跟Python学习资料可私信我或点击这行字体
当你想查询一下火车票信息的时候,还在为打开无响应的官网和广告n秒的APP吗而懊恼吗?那就教大家想做一个简单好用的查票系统
本次用到环境和模块
环境:
模块:
模块在cmd里pip install +模块名 就可以安装好了
基本思路:
一. 这些数据内容是从哪里的?
通过开发者工具进行抓包分析, 分析具体的数据是从哪里的 可以通过用搜索 你想要数据内容, 会给你返回相应的数据
二. 代码实现步骤
确定需求 >>> 发送请求 >>> 获取数据 >>> 解析数据 >>> 保存数据
代码:
效果:
只要在命令行敲一行命令就能获得你想要的火车票信息!
实现自动抢票前期准备:
项目介绍:
本项目利用 python 实现对 网站的爬取,并查询相应的我们宅 源码时间、座次类型、剩余票数等,方便朋友们抢票。众所周知,是一个安全级别比较高的网站,要想爬去绝非易事,特别是对相应验证码的处理,足以让一般的 python 工程师望而却步了。今天,我们就来简单的爬取一下这个神奇的网站。
网站信息:
官网(注:本项目所获取的信息全部为网上公开的可取信息)
具体步骤:
首先,我们导入第三方库
之后,写一个函数
接下来就往函数里写程序吧!
我们先来获取网页信息
mg
首先,我们发送请求。
由于显示编码格式与原格式不同,导致无法正确的处理所获去的数据;于是我们先转换一下编码格式。
img
为方便接下来的数据处理,我们需将数据转换成字典格式
我们现在来编写序号
接下来,我们得查看各个坐次所对应的序号了;可以在调试的时候输出查值
通过调试程序,我们找到相应信息的序号
最后,只需找到你需要买的座次就行了。
end 到这就分享结束了!网站对接源码学会的铁汁可以自己试一试哟~记得给小编三连哦!家人们的支持是小编更新最大的动力 春节将近,希望大家快乐的敲代码,抢票成功,开心回家!❤❤❤
期货、股票源码---CYC成本均线指标原理及使用方法
CYC指标包含五日、十三日、三十四日及无穷线共四条线,其分别代表了五日、十三日、三十四日的市场平均建仓成本。成本均线(CYC)指标结合了成交量与价格,使均线在无量大幅波动的情况下保持稳定,使用起来比传统均线更加精准和稳定,真实反映投资者平均持仓成本。
CYC指标源码适用于文华6、7、8等软件,是一种策略思路拓展工具,不建议直接用于期货等投资实盘中(投资有风险,入市须谨慎)。交易员可以根据提供的超级大厅源码指标源码,结合交易经验进行改编,形成个性化交易策略。
源码内容如下:
设置参数为五日、十三日、三十四日等,通过计算流通股本、平均成本等指标,生成五日、十三日、三十四日及无穷线成本均线,分别显示在图表上。这些均线以不同颜色区分,提供直观的市场成本分析视角。
6个练手的软件测试实战项目(附全套视频跟源码)偷偷卷死他们!
项目一:抢票实战 这个项目旨在让你掌握Selenium定位web元素和浏览器调试工具的使用技巧。步骤详解
首先,亲身体验手动流程,为自动化流程做好准备。
然后,拆分步骤,编写每个小步骤的自动化脚本,如:
打开并输入URL:driver.get('/otn')
登录时,通过Chrome的调试工具定位元素,如输入用户名:driver.find_element_by_id("username").send_keys("5xxxx@qq.com")
选择车票预订:driver.find_element_by_link_text("车票预订").click()
记住,验证码环节需要手动选择,因为未实现自动破解。项目二:ET.Mall电商系统测试
在ET.Mall商场系统的电商模块中,我们将通过测试用例来探索:注册与登录
商品浏览与购物车管理
订单处理流程
同时,了解需求规格说明如何转化为实际产品需求。实战挑战:学生管理系统接口测试
这个项目让你对RESTful架构有更深理解,通过测试学生管理系统接口,如查询学院信息:查询所有学院:GET http://.0.0.1:/api/departments/
查询指定学院:GET http://.0.0.1:/api/departments/T/
模糊查询:GET http://.0.0.1:/api/departments/?blur=1&dep_name=C
每个项目都配备完整的视频教程和源码,只需发送关键词“项目”即可获取。掌握这些,你的测试技能将更上一层楼!股票源码是什么
股票源码指的是用于股票交易系统的源代码。简单来说,它是构建和操作股票交易平台的程序基础代码。这个源代码包含了一组指令,用于实现股票市场的各种交易功能,如行情分析、交易指令处理、用户账户管理等。它是编写股票软件的核心代码,为投资者提供交易通道和数据分析工具。
具体来说,股票源码包含了股票交易系统的逻辑设计、算法实现以及数据处理等关键部分。这些源代码通常由专业的软件开发团队编写和维护,确保股票交易系统的稳定运行和安全性。通过对股票源码的解析和学习,人们可以了解股票交易系统的运行机制,包括市场数据的处理流程、交易决策的逻辑依据等。这对于开发自己的交易策略、优化交易决策具有重要意义。此外,通过对源码的定制开发,还可以实现个性化的交易功能和服务,满足投资者的特定需求。
另外,股票源码具有一定的复杂性,涉及大量的编程技术和专业知识。因此,对于普通投资者而言,理解股票源码并不是一项简单的任务。它需要具备一定的编程基础、金融知识和市场经验。然而,学习和掌握股票源码的基本概念和基础知识对于理解股票交易系统、提高投资决策的科学性和准确性具有重要的意义。通过不断学习和实践,投资者可以更好地理解和应用股票源码,为投资决策提供更加有力的支持。
总的来说,股票源码是股票交易系统的核心代码,用于构建和操作交易平台,为投资者提供交易通道和数据分析工具。它涵盖了交易系统的各个方面,从行情分析到用户账户管理等功能都包含其中。学习和掌握股票源码对于提高投资者的交易技能和决策能力具有重要的意义。
ASP.NET Core认è¯åçåå®ç°
é常å¨åºç¨ç¨åºä¸ï¼å®å ¨å为åå两个æ¥éª¤ï¼éªè¯åææãéªè¯è´è´£æ£æ¥å½å请æ±è ç身份ï¼èææåæ ¹æ®ä¸ä¸æ¥å¾å°ç身份å³å®å½å请æ±è æ¯å¦è½å¤è®¿é®ææçèµæºã
æ¢ç¶å®å ¨ä»éªè¯å¼å§ï¼æ们ä¹å°±ä»éªè¯å¼å§ä»ç»å®å ¨ã
æ们å ä»æ¯è¾ç®åçåºæ¯å¼å§èèï¼ä¾å¦å¨ Web API å¼åä¸ï¼éè¦éªè¯è¯·æ±æ¹æ¯å¦æä¾äºå®å ¨ä»¤çï¼å®å ¨ä»¤çæ¯å¦ææãå¦ææ æï¼é£ä¹ API 端åºè¯¥æç»æä¾æå¡ãå¨å½åç©ºé´ Microsoft.AspNetCore.Authentication ä¸ï¼å®ä¹å ³äºéªè¯çæ ¸å¿æ¥å£ã对åºçç¨åºéæ¯ Microsoft.AspNetCore.Authentication.Abstractions.dllã
å¨ ASP.NET ä¸ï¼éªè¯ä¸å å« 3 个åºæ¬æä½ï¼
éªè¯æä½è´è´£åºäºå½å请æ±çä¸ä¸æï¼ä½¿ç¨æ¥èªè¯·æ±ä¸çä¿¡æ¯ï¼ä¾å¦è¯·æ±å¤´ãCookie ççæ¥æé ç¨æ·æ è¯ãæ建çç»ææ¯ä¸ä¸ª AuthenticateResult 对象ï¼å®æ示äºéªè¯æ¯å¦æåï¼å¦ææåçè¯ï¼ç¨æ·æ è¯å°å¯ä»¥å¨éªè¯ç¥¨æ®ä¸æ¾å°ã
常è§çéªè¯å æ¬ï¼
å¨ææ管çé¶æ®µï¼å¦æç¨æ·æ²¡æå¾å°éªè¯ï¼ä½æææ访é®çèµæºè¦æ±å¿ é¡»å¾å°éªè¯çæ¶åï¼æææå¡ä¼ååºè´¨è¯¢ãä¾å¦ï¼å½å¿åç¨æ·è®¿é®åéèµæºçæ¶åï¼æè å½ç¨æ·ç¹å»ç»å½é¾æ¥çæ¶åãæææå¡ä¼éè¿è´¨è¯¢æ¥ç¸åºç¨æ·ã
ä¾å¦
质询æä½åºè¯¥è®©ç¨æ·ç¥éåºè¯¥ä½¿ç¨ä½ç§éªè¯æºå¶æ¥è®¿é®è¯·æ±çèµæºã
å¨ææ管çé¶æ®µï¼å¦æç¨æ·å·²ç»éè¿äºéªè¯ï¼ä½æ¯å¯¹äºå ¶è®¿é®çèµæºå¹¶æ²¡æå¾å°è®¸å¯ï¼æ¤æ¶ä¼ä½¿ç¨æç»æä½ã
ä¾å¦ï¼
æç»è®¿é®å¤çåºè¯¥è®©ç¨æ·ç¥éï¼
å¨è¿ä¸ªåºæ¯ä¸ï¼å¯ä»¥çå°ï¼éªè¯éè¦æä¾çåºæ¬åè½å°±å æ¬äºéªè¯åéªè¯å¤±è´¥åçæç»æå¡ä¸¤ä¸ªæä½ãå¨ ASP.NET Core ä¸ï¼éªè¯è¢«ç§°ä¸º Authenticateï¼æç»è¢«ç§°ä¸º Forbidã å¨ä¾æ¶è´¹è 访é®çç½ç«ä¸ï¼å¦ææ们å¸æå¨éªè¯å¤±è´¥åï¼ä¸æ¯å API ä¸æ ·ç´æ¥è¿åä¸ä¸ªé误页é¢ï¼èæ¯å°ç¨æ·å¯¼èªå°ç»å½é¡µé¢ï¼é£ä¹ï¼å°±è¿éè¦å¢å ä¸ä¸ªæä½ï¼è¿ä¸ªæä½çæ¬è´¨æ¯å¸æç¨æ·å次æä¾å®å ¨åæ®ï¼å¨ ASP.NET Core ä¸ï¼è¿ä¸ªæä½è¢«ç§°ä¸º Challengeãè¿ 3 个æä½ç»åå¨ä¸èµ·ï¼å°±æ¯éªè¯æåºæ¬çè¦æ±ï¼ä»¥æ¥å£å½¢å¼è¡¨ç¤ºï¼å°±æ¯ IAuthenticationHandler æ¥å£ï¼å¦ä¸æ示ï¼
éªè¯çç»ææ¯ä¸ä¸ª AuthenticateResult 对象ãå¼å¾æ³¨æçæ¯ï¼å®è¿æä¾äºä¸ä¸ªéææ¹æ³ NoResult() ç¨æ¥è¿å没æå¾å°ç»æï¼éææ¹æ³ Fail() çæä¸ä¸ªè¡¨ç¤ºéªè¯å¼å¸¸çç»æï¼è Success() æååéè¦æä¾éªè¯ç¥¨æ®ã
éè¿éªè¯ä¹åï¼ä¼è¿åä¸ä¸ªå å«äºè¯·æ±è 票æ®çéªè¯ç»æã
å¨ GitHub ä¸æ¥ç AuthenticateResult æºç
é£ä¹éªè¯çä¿¡æ¯æ¥èªåªéå¢ï¼é¤äºåé¢ä»ç»ç 3 个æä½ä¹å¤ï¼è¿è¦æ±ä¸ä¸ªåå§åçæä½ Initializeï¼éè¿è¿ä¸ªæ¹æ³æ¥æä¾å½å请æ±çä¸ä¸æä¿¡æ¯ã
å¨ GitHub ä¸æ¥ç IAuthenticationHandler å®ä¹
æçæ¶åï¼æ们è¿å¸ææä¾ç»åºæä½ï¼å¢å ç»åºæä½çæ¥å£è¢«ç§°ä¸º IAuthenticationSignOutHandlerã
å¨ GitHub ä¸æ¥ç IAuthenticationSignOutHandler æºç
å¨ç»åºçåºç¡ä¸ï¼å¦æè¿å¸ææä¾ç»å½æä½ï¼é£ä¹å°±æ¯ IAuthenticationSignInHandler æ¥å£ã
å¨ GitHub ä¸æ¥ç IAuthenticationSignInHandler æºç
ç´æ¥å®ç°æ¥å£è¿æ¯æ¯è¾éº»ç¦çï¼å¨å½åç©ºé´ Microsoft.AspNetCore.Authentication ä¸ï¼å¾®è½¯æä¾äºæ½è±¡åºç±» AuthenticationHandler 以æ¹ä¾¿éªè¯æ§å¶å¨çå¼åï¼å ¶å®æ§å¶å¨å¯ä»¥ä»è¯¥æ§å¶å¨æ´¾çï¼ä»¥åå¾å ¶æä¾çæå¡ã
éè¿ç±»çå®ä¹å¯ä»¥çå°ï¼å®ä½¿ç¨äºæ³åãæ¯ä¸ªæ§å¶å¨åºè¯¥æä¸ä¸ªå¯¹åºè¯¥æ§å¶å¨çé ç½®é项ï¼éè¿æ³åæ¥æå®éªè¯å¤çå¨æ使ç¨çé 置类åï¼å¨æé å½æ°ä¸ï¼å¯ä»¥çå°å®è¢«ç¨äºè·å对åºçé ç½®é项对象ã
å¨ GitHub ä¸æ¥ç AuthenticationHandler æºç
éè¿ InitializeAsync()ï¼éªè¯å¤çå¨å¯ä»¥è·å¾å½å请æ±çä¸ä¸æ对象 HttpContextã
æç»ï¼ä½ä¸ºæ½è±¡ç±»ç ï¼å¸ææ´¾çç±»æ¥å®æè¿ä¸ªéªè¯ä»»å¡ï¼æ½è±¡æ¹æ³ HandleAuthenticateAsync() æä¾äºæ©å±ç¹ã
éªè¯çç»ææ¯ä¸ä¸ª AuthenticateResultã
èæç»æå¡åç®åçå¤ï¼ç´æ¥å¨è¿ä¸ªæ½è±¡åºç±»ä¸æä¾äºé»è®¤å®ç°ãç´æ¥è¿å HTTP ã
å©ä¸çä¸ä¸ªä¹ä¸æ ·ï¼æä¾äºé»è®¤å®ç°ãç´æ¥è¿å HTTP ååºã
å¯¹äº JWT æ¥è¯´ï¼å¹¶ä¸æ¶åå°ç»å ¥åç»åºï¼æ以å®éè¦ä»å®ç° IAuthenticationHandler æ¥å£çæ½è±¡åºç±» AuthenticationHandler æ´¾çåºæ¥å³å¯ãä» AuthenticationHandler æ´¾çåºæ¥ç JwtBearerHandler å®ç°åºäºèªå·±çé ç½®é项 JwtBearerOptionsãæ以该类å®ä¹å°±åå¾å¦ä¸æ示ï¼èæé å½æ°æ¾ç¶é åäºæ½è±¡åºç±»çè¦æ±ã
å¨ GitHub ä¸æ¥ç JwtBearerHandler æºç
çæ£çéªè¯åå¨ HandleAuthenticateAsync() ä¸å®ç°ãä¸é¢ç代ç æ¯ä¸æ¯å°±å¾çæäºï¼ä»è¯·æ±å¤´ä¸è·åé带ç JWT 访é®ä»¤çï¼ç¶åéªè¯è¯¥ä»¤ççæææ§ï¼æ ¸å¿ä»£ç å¦ä¸æ示ã
å¨ GitHub ä¸æ¥ç JwtBearerHandler æºç
å¨ ASP.NET Core ä¸ï¼ä½ å¯ä»¥ä½¿ç¨åç§éªè¯å¤çå¨ï¼å¹¶ä¸ä» ä» åªè½ä½¿ç¨ä¸ä¸ªï¼éªè¯æ§å¶å¨éè¦ä¸ä¸ªå称ï¼å®è¢«çä½è¯¥éªè¯æ¨¡å¼ Schema çå称ãJwt éªè¯æ¨¡å¼çé»è®¤åç§°å°±æ¯ "Bearer"ï¼éè¿å符串常é JwtBearerDefaults.AuthenticationScheme å®ä¹ã
å¨ GitHub ä¸æ¥ç JwtBearerDefaults æºç
æç»éè¿ AuthenticationBuilder çæ©å±æ¹æ³ AddJwtBearer() å° Jwt éªè¯æ§å¶å¨æ³¨åå°ä¾èµæ³¨å ¥ç容å¨ä¸ã
å¨ GitHub ä¸æ¥ç JwtBearerExtensions æ©å±æ¹æ³æºç
ä¸ç§éªè¯å¤çå¨ï¼å ä¸å¯¹åºçéªè¯é ç½®é项ï¼æ们å为å®èµ·ä¸ä¸ªååï¼ç»åèµ·æ¥å°±æ为ä¸ç§éªè¯æ¶æ Schemaãå¨ ASP.NET Core ä¸ï¼å¯ä»¥æ³¨åå¤ç§éªè¯æ¶æãä¾å¦ï¼ææçç¥å¯ä»¥ä½¿ç¨æ¶æçå称æ¥æå®æ使ç¨çéªè¯æ¶ææ¥ä½¿ç¨ç¹å®çéªè¯æ¹å¼ãå¨é ç½®éªè¯çæ¶åï¼é常设置é»è®¤çéªè¯æ¶æãå½æ²¡ææå®éªè¯æ¶æçæ¶åï¼å°±ä¼ä½¿ç¨é»è®¤æ¶æè¿è¡å¤çã
è¿å¯ä»¥
注åçéªè¯æ¨¡å¼ï¼æç»åæ AuthenticationSchemeï¼æ³¨åå°ä¾èµæ³¨å ¥æå¡ä¸ã
å¨ GitHub ä¸æ¥ç AuthenticationScheme æºç
åç§éªè¯æ¶æ被ä¿åå°ä¸ä¸ª IAuthenticationSchemeProvider ä¸ã
å¨ GitHub ä¸æ¥ç IAuthenticationSchemeProvider æºç
æç»ç使ç¨æ¯éè¿ IAuthenticationHandlerProvider æ¥å®ç°çï¼éè¿ä¸ä¸ªéªè¯æ¨¡å¼çå符串å称ï¼å¯ä»¥åå¾æ对åºçéªè¯æ§å¶å¨ã
å¨ GitHub ä¸æ¥ç IAuthenticationHandlerProvider æºç
å®çé»è®¤å®ç°æ¯ AuthenticationHandlerProviderï¼æºç 并ä¸å¤æã
å¨ GitHub ä¸æ¥ç AuthenticationHandlerProvider æºç
éªè¯ä¸é´ä»¶çå¤ç就没æé£ä¹å¤æäºã
æ¾å°é»è®¤çéªè¯æ¨¡å¼ï¼ä½¿ç¨é»è®¤éªè¯æ¨¡å¼çå称åå¾å¯¹åºçéªè¯å¤çå¨ï¼å¦æéªè¯æåçè¯ï¼æå½å请æ±ç¨æ·ç主ä½æ¾å°å½å请æ±ä¸ä¸æç User ä¸ã
éé¢è¿æä¸æ®µç¹å«ç代ç ï¼ç¨æ¥æ¾åºåªäºéªè¯å¤çå¨å®ç°äº IAuthenticationHandlerProviderï¼å¹¶ä¾æ¬¡è°ç¨å®ä»¬ï¼ççæ¯å¦éè¦æåç»æ¢è¯·æ±å¤çè¿ç¨ã
å¨ GitHub ä¸æ¥ç AuthenticationMiddle æºç
能量潮obv指标源码
很多朋友喜欢看OBV指标来操作股票,但是OBV不能单独使用,必须与股价曲线结合使用才能发挥作用。该指标的理论基础是市场价格的有效变动必须有成交量配合,量是价的先行指标。那么能量潮obv指标源码如何呢?利用OBV可以验证当前股价走势的可靠性,并可以得到趋势可能反转的信号。比起单独使用成交量来,OBV看得更清楚。OBV能量潮指标是由两条线组成的,第一条线为MAOBV线,一般情况下,MAOBV线主要是依据天内的成交量来计算出的OBV指标的简单移动平均线。
能量潮obv指标详解
不同的指标应用和含义都有所不同,能量潮obv指标源码如下:
N:=;M:=;
VA:=IF(CLOSE>REF(CLOSE,1),VOL,-VOL);
OBV:SUM(IF(CLOSE=REF(CLOSE,1),0,VA),0);
OBV1:MA(OBV,N);
OBV2:MA(OBV,M);
买点1:CROSS(OBV,OBV2)ANDSUM(OBY)<SUM(OBV2,),COLORGREEN,NODRAW;
DRAWICON(买点1,0BV2,);
买点2:CROSS(OBV1,OBV2),COLORMAGENTA,NODRAW;
DRAWICON(买点2,0BV2,);
至于能量潮obv指标操作方法详解,如果OBV指标波动情况为N字形,持续上攻的时候,投资人应该继续持股。如果OBV指标呈小N上攻,并且在某段时间内迅速的上涨,一般都意味着行情会出现反转。OBV线长时间内横向运动,但是某天却快速上涨,并且突破MAOBV线,这种情况一般就代表着大行情的到来。OBV运动背离移动平均线,通常情况下代表着后期行情会有反转的情况,这时候投资人一定要小心。
2024-11-26 19:062006人浏览
2024-11-26 18:491295人浏览
2024-11-26 18:401382人浏览
2024-11-26 18:252628人浏览
2024-11-26 18:181452人浏览
2024-11-26 18:07163人浏览
为消除食品安全隐患、切实保障学校师生饮食安全,近日,北京市石景山区市场监管局组织开展校园食品安全“回头看”检查。执法人员重点围绕2024年度秋季开学专项检查中存在的问题开展“回头看”检查,督查问题整改
1.抖音快手微信QQ壁纸小程序表情包小程序流量主广告源码搭建详细教程2.面部表情识别3:Android实现表情识别(含源码,可实时检测)3.入门教程编程小白也能轻松上线的表情包斗图小程序含源码)4.Q
1.Edge怎么查看网页的源代码?2.如何查看网页的源码3.哪里可以找到前端静态网页网站源码Edge怎么查看网页的源代码? 在Edge浏览器中查看网页源代码的方法有多种,以下是详细步骤: 在E