脚本模式的特点和用法

news2024/12/25 15:01:27

一、什么是脚本?

脚本(script)是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。脚本通常可以由应用程序临时调用并执行。

简单解释:脚本类似于演戏时用到的剧本,脚本其实就是一系列指令——演员看了指令就知道自己该表演什么,说什么台词;计算机看了指令就知道自己该做什么事情。所以脚本其实就是短小的、用来让计算机自动化完成一系列工作的程序,这类程序可以用文本编辑器修改,不需要编译,通常是解释运行的。

import sys

def main():
    print('命令行参数如下:')
    for arg in sys.argv:
        print(arg)

if __name__ == '__main__':
    main()

二、脚本的特点

1、脚本语言(JavaScript,VBscript等)介HTML和C,C++,Java,C#程语言之间。HTML通常用于格式化和链接文本。而编程语言通常用于向机器发出一系列复杂的指令。

2、脚本语言是一种解释性的语言,例如Python,javascript,script等等,它不像c\c++等可以编译成二进制代码,它以可执行文件的形式存在,脚本语言不需要编译,可以直接用,由解释器来负责解释。

3、程序代码即是脚本程序,亦是最终可执行文件。 脚本语言可分为独立型和嵌入型,独立型脚本语言在其执行时完全依赖于解释器,而嵌入型脚本语言通常在编程语言中(如C,C++,VB,Java等)被嵌入使用。

import easyocr

reader = easyocr.Reader(['en'])
image = Image.open('captcha.png')

# 预处理验证码图片
gray_image = image.convert('L')
gray_image.show()
threshold = 127
gray_image = gray_image.point(lambda x: 255 if x > threshold else 0)

# 切割预处理后的验证码图片
width, height = image.size
box = [(0, 0, 0, 0), (0, 0, 0, 0), (0, 0, 0, 0), (0, 0, 0, 0)]
for i in range(4):
    box[i] = (i * width / 4, 0, (i + 1) * width / 4, height)
    crop_im = gray_image.crop(box[i])
    crop_im.save('captcha_%d.png' % i)

# 识别每个字符
result = reader.readtext(['captcha_0.png', 'captcha_1.png', 'captcha_2.png', 'captcha_3.png'])
captcha_text = ''.join([x[1] for x in result])
print('验证码识别结果:', captcha_text)

三、脚本的应用

脚本作为批次处理语言或工作控制语言,目前被广泛地应用于网页设计中,因为脚本不仅可以减小网页的规模和提高网页浏览速度,而且可以丰富网页的表现,如动画、声音等。

80618ac997b8dc51589f7d02265907ec.jpeg

四、脚本模式

脚本模式是Python最常见的执行方式之一,Python的源代码文件以.py为扩展名,可以通过命令行或者其他工具来执行Python脚本。脚本模式适合于一次性执行大量代码的场景,比如编写复杂的应用程序、网站后台等。下面是一个简单的脚本示例:

# 简单的脚本示例 - hello.py
print("Hello, world!")

可以使用以下命令来执行该脚本:

python hello.py

执行结果为:

Hello, world!

可以看到,我们使用了Python解释器执行了该脚本,并在控制台输出了Hello, world!这个简单的字符串。

1、脚本模式的优势 脚本模式的优势在于,可以一次性运行整个源代码,适合于处理大量数据和复杂业务逻辑。

2、脚本模式的不足 脚本模式的不足在于,需要将所有代码写在一个文件中,可读性不高,调试和测试比较困难

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

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

相关文章

算法--itemCF

概述: 电子商务网站是个性化 推荐系统重要地应用的领域之一。亚马逊就是个性化推荐系统的积极应用者和推广者,亚马逊的推荐系统深入到网站的各类商品,为亚马逊带来了至少30%的销售额。 不光是电商类,推荐系统无处不在。 QQ&…

【差旅-游记】记一次海南出差

哈喽,大家好!我是雷工! 这篇不是技术分享,是篇差旅记录。 最近出差去了一次海南,应该算得上我目前出差去过最远的地方了,也是我第一次去海南,还是蛮有新鲜感的,因此记录下此次差旅。…

【软件设计师暴击考点】数据库系统高频考点暴击系列

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:软件…

tensorflow2 模型建立与训练

模型的构建: tf.keras.Model 和 tf.keras.layers 模型的损失函数: tf.keras.losses 模型的优化器: tf.keras.optimizer 模型的评估: tf.keras.metrics 模型(Model)与层(Layer) …

Mysql 索引基础介绍

索引基础介绍 索引是什么 MySQL官方:索引(INDEX)是帮助MySQL高效获取数据的数据结构。 面试官问,回:索引是排好序的快速查找数据结构 索引的目的在于提高查询效率,可以类比字典的目录。如果要查mysql这个这…

13. python从入门到精通——Python操作数据库

数据库编程接口:python database API python database API概述 python database API 规范对于关系数据库的访问,Python社区已经制定出一个标准,称为Python Database API,通过这个接口使python跨不同数据库的操作代码可以更加具有…

动态内存管理(malloc,calloc,realloc)

文章目录 1.为什么存在动态内存分配 2.动态内存函数的介绍 3.常见的动态内存错误 4.几个经典的笔试题 5. C/C程序的内存开辟 文章内容 1.为什么存在动态内存分配 我们已经掌握的内存开辟方式有: int val 20;//在栈空间上开辟四个字节 char arr[10] {0};/…

【javascript】闭包

通过定时器从第一个元素开始往后&#xff0c;每隔一秒输出arr数组中的一个元素。 <script>var arr [one, two, three];for(var i 0; i < arr.length; i) {setTimeout(function () {console.log(arr[i]);}, i * 1000);} </script> 但是运行过后&#xff0c;我…

使用生成 AI 实现准确的新闻摘要

shadow 这篇文章介绍了作者 Alessandro Alviani 的实践经验&#xff0c;非常有参考价值。 指令冗余&#xff0c;多步引导&#xff0c;是目前提高LLM输出质量的方法之一。 Towards Accurate Quote-Aware Summarization of News using Generative AI Alessandro Alviani generati…

电容式电动汽车路径规划问题的双级蚁群优化算法

摘要&#xff1a; 电动汽车&#xff08;EV&#xff09;技术的发展导致了一个新的车辆路由问题&#xff08;VRP&#xff09;&#xff0c;称为有容量的电动汽车路由问题&#xff08;CEVRP&#xff09;。由于充电站的数量有限&#xff0c;电动汽车的巡航范围有限&#xff0c;不仅要…

【从零开始学习JAVA | 第十九篇】初识内部类

前言&#xff1a; 内部类是类的五大成员。一个类的其他的成员分别是属性&#xff0c;方法&#xff0c;构造方法&#xff0c;代码块。本文将详细介绍什么是内部类&#xff0c;以及内部类的意义。 内部类&#xff1a; 内部类&#xff08;Inner Class&#xff09;是 Java 中的一个…

MedViT:一种用于广义医学图像分类的鲁棒Vision Transformer

文章目录 MedViT: A Robust Vision Transformer for Generalized Medical Image Classification摘要本文方法Locally Feed-Forward Network 实验实验结果 MedViT: A Robust Vision Transformer for Generalized Medical Image Classification 摘要 卷积神经网络(cnn)在现有医…

实现一个 AI 驱动的马里奥(使用双重深度 Q 网络),它可以自己玩游戏

训练玩马里奥的 RL 智能体 本教程将向您介绍深度强化学习的基础知识。 最后&#xff0c;您将实现一个 AI 驱动的马里奥&#xff08;使用双重深度 Q 网络&#xff09;&#xff0c;它可以自己玩游戏。 # !pip install gym-super-mario-bros7.3.0import torch from torch import …

STM32实现延时

在STM32单片机中&#xff0c;实现延时一般都是使用定时器&#xff0c;既可以使用Systick定时器&#xff0c;也可以使用常规的定时器。 定时器在设置了定时并开启之后&#xff0c;就会进入自主运行模式&#xff0c;其中&#xff0c;初始化设置这一阶段是由CPU执行相应指令完成的…

Spring Cloud_Spring Cloud Alibaba_00000

contents 微服务介绍版本选择创建项目创建Maven工程 说明 微服务介绍 微服务架构是一种架构模式。它提倡将单一应用程序划分成一组小的服务。服务之间相互协调、相互配合&#xff0c;为用户提供最终价值。每个服务运行在其独立的进程中&#xff0c;服务与服务间采用轻量级的通…

html通过web3JS 获取当前连接的区块链信息和账号信息

前面 我们讲了 MetaMask和ganache的配置安装 并用 MetaMask管理ganache的启动的虚拟区块链 那么 我们现在也完全可以写一个网页来做这个东西的管理 您可以先查看文章web3.js获取导入做一个导入了 web3的html文件 首先我们可以来试着 获取 自己当前是在哪个区块的 getBlockNum…

【深度学习】【分布式训练】DeepSpeed:AllReduce与ZeRO-DP

AllReduce与ZeRO-DP ​ ZeRO-DP是分布式训练工具DeepSpeed的核心功能之一&#xff0c;许多其他的分布式训练工具也会集成该方法。本文从AllReduce开始&#xff0c;随后介绍大模型训练时的主要瓶颈----显存的占用情况。在介绍完成标准数据并行(DP)后&#xff0c;结合前三部分的内…

玩游戏提示d3dx9丢失-找不到d3dx9怎么修复

相信有些朋友遇到了d3dx9丢失的情况不知道怎么解决&#xff0c;而今日小编带来的这篇文章就是讲解关于d3dx9丢失进行修复的操作内容&#xff0c;d3dx9丢失怎么解决&#xff1f;&#xff08;修复方法&#xff09;d3dx9文件是DirectX中必备文件,许多游戏需要此文件运行。 d3dx9丢…

文件系统概述

目录 概述用户空间层面1.应用程序可以直接使用内核提供的系统调用访问文件&#xff1a;2.应用程序也可以使用 glibc 库封装的标准 I/O 流函数访问文件&#xff1a; 硬件层面1.块设备2.闪存3.NVDIMM 内核空间层面 概述 在 Linux 系统中&#xff0c;一切皆文件&#xff0c;除了通…

【MySQL 】:测试数据准备、SQL语句规范与基本操作

前言 欢迎来到小K的MySQL专栏&#xff0c;本节将为大家准备MySQL测试数据、以及带来SQL语句规范、数据库的基本操作的详细讲解~✨文末送书&#xff0c;小K赠书活动第二期 目录 前言一、准备测试数据二、SQL语句规范三、数据库的基本操作四、总结&#xff1a;文末赠书 一、准备测…