[FUNC]在AHK中实现Pyhton的range函数

news2024/10/5 17:19:18

本文是用AutoHotkey复刻Python的range函数

函数语法

range(start, stop, step)

参数说明:

参数

描述

start

计数从 start 开始。默认是从 0 开始。例如:range(6)等价于range(0,6)。

stop

计数到 stop 结束,但不包括 stop。例如:range(0,6) 是[0,1,2,3,4,5]没有6

step

步长,默认为1。例如:range(0, 6) 等价于 range(0, 6, 1)

输出说明:

range(6) ; 从 0 开始到 5 [0, 1, 2, 3, 4, 5]
range(0,6) ; 从 0 开始到 5 [0, 1, 2, 3, 4, 5]
range(1, 11) ;从 1 开始到 10 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
range(0,10,2) ; 从 0 开始到10的偶数 [0, 2, 4, 6, 8]
range(0, 10, 3) ; 步长为 3 [0, 3, 6, 9]
range(0, 30, 5) ; 步长为 5 [0, 5, 10, 15, 20, 25]

range(1, 0) ;[1]
range(25, 2, -2) ; [25 ,23, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3]
range(0, -10, -1) ; 负数 [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

range(0) ; []

支持字母表输出,特别说明——字母型且步长为1情形,是包含stop的。

range("a","e") ; ["a","b","c","d","e"]

range("e") ; ["a","b","c","d","e"]

range("A", "Z") ;输出A-Z

range("a", "z")) ;输出a-z

range("A", "z") ;输出A-Z [ \ ] ^ _ ` a-z

/*
版权声明:本文为CSDN博主「liuyukuan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liuyukuan/article/details/128704747
功能:根据给定的范围和步长,返回一个整数列表(可用于for循环索引),如果给定的是字母则返回字母表。
参数说明:
start 计数从 start 开始。默认是从 0 开始。例如:range(6)等价于range(0,6)。
stop  计数到 stop 结束,但不包括 stop。例如:range(0,6) 是[0,1,2,3,4,5]没有6
step  步长,默认为1。例如:range(0, 6) 等价于 range(0, 6, 1)

*/
range(start:=0,end:="-0",step:=1) {
    ret := []
    if(start+0!=start)
    {
        stringFlag:=true
        start:=Asc(start)
        
        if (end =="-0" ) {
            ;大写字母
            if(start>=65 and start<=90)
            {
                end := start
                start := 65
            }
            ;小写字母
            if(start>=97 and start<=122)
            {
                end := start
                start := 97
            }
        }else{
            end:=Asc(end)
        }
    }
        
    if (start == 0 && end == 0) {
        return ret
    }
    if (step == 0) {
        zeroStepFlag := true
    }
    if (end =="-0" ) {
        end := start
        start := 0
    }
    l_currentStep := start
    ; where step is 0, end at the array count
    if (zeroStepFlag == true) {
        loop, % end - 1 {
            ret.push(l_currentStep)
            l_currentStep +=step
        }
        return ret
    }
    if(end>start)
    {
        ;递增
        if(step<0)
            step := -step
        while (l_currentStep < end) {
            if(stringFlag==true)
                ret.push(chr(l_currentStep))
            else
                ret.push(l_currentStep)
            l_currentStep += step
        }
    }
    if(end<start){
        ;递减
        if(step>0)
            step := -step
        while (l_currentStep > end) {
            if(stringFlag==true)
                ret.push(chr(l_currentStep))
            else
                ret.push(l_currentStep)
            l_currentStep += step
        }
    }
    if(stringFlag==true and abs(step)==1)
        ret.push(chr(end))
    return ret
}    

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

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

相关文章

5、Ubuntu20常用操作_进程管理重定向和管道常用命令网络管理

进程管理 进程的概念 大家比较熟悉 Windows 下的可执行文件&#xff0c;就是那些扩展名为exe的文件。 大家知道&#xff0c;只需要鼠标双击这些程序&#xff0c; 就可以运行了。 程序运行起来后&#xff0c;我们把这个程序正在运行的 实例 称之为 进程 。 操作系统对每个进…

acwing86场周赛题解(模拟,dp,数学推导式)

目录 第一题&#xff1a;AcWing 4794. 健身 思路 核心代码 完整代码 第二题&#xff1a;4795. 安全区域 思路 核心代码 完整代码 第三题&#xff1a;4796. 删除序列 思路 核心代码 完整代码 谢谢您的阅读 第一题&#xff1a;AcWing 4794. 健身 4794. 健身 李华…

配置与管理DNS服务器

DNS概念 DNS是一种新的主机名称和IP地址转换机制&#xff0c;使用分层的分布式数据库来处理Internet上众多的主机和IP地址转换。当一个应用需要将域名翻译成为IP地址时&#xff0c;这个应用便成为域名系统的一个客户。这个客户将待翻译的域名放在一个DNS请求信息中&#xff0c;…

CHAPTER 10 Web服务与应用(二)

Web服务与应用10.1 Tomcat10.1.1 准备工作10.1.2 编写dockerfile10.1.3 创建tomcat用户和密码脚本文件10.1.4 编写启动脚本10.1.5 创建和测试镜像10.1.6 相关资源10.2 Jetty10.2.1 使用官方镜像10.2.2 相关资料10.3 LAMP10.3.1 使用官方镜像10.4 持续开发与管理10.4.1 Jenkins及…

[前端笔记——HTML介绍] 5.文档与网站架构

[前端笔记——HTML介绍] 5.文档与网站架构1.文档的基本组成部分&#xff08;1&#xff09;页眉&#xff08;2&#xff09;导航栏&#xff08;3&#xff09;主内容&#xff08;4&#xff09;侧边栏&#xff08;5&#xff09;页脚2.用于构建内容的HTML3.HTML布局元素细节3.1无语义…

205:vue+openlayer: 点击某feature,列表滑动,定位到相应的点的列表位置

第205个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers做一个互动,点击某个feature,在左侧的列表中显示出来,滚动条滑动,能显示在视觉区内。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意如果OpenStreetMap无法加载,请加载其…

HTB打靶(Active Directory 101 Resolute)

nmap扫描 nmap -A -T4 10.10.10.169 Starting Nmap 7.93 ( https://nmap.org ) at 2023-01-16 01:30 EST Stats: 0:00:04 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan SYN Stealth Scan Timing: About 74.65% done; ETC: 01:30 (0:00:01 remaining) St…

Maven学习(一):Maven简介及安装配置

Maven简介及安装配置一、Maven简介1.1、Maven是什么1.2、Maven的作用二、Maven安装配置2.1、大前提2.2、Maven下载2.3、windows版1、安装2、配置环境3、配置本地仓库2.4、mac版1、安装2、配置环境3、需要注意的点4、配置本地仓库一、Maven简介 1.1、Maven是什么 先对Maven做一…

从 Spectral Clustring 推导到 Regularized Diffusion Process

Spectral Clustring 参考&#xff1a;bilibili 机器学习-白板推导系列(二十二)-谱聚类&#xff08;Spectral Clustering&#xff09; Background 首先看一种数据分布&#xff1a; 对于以上分布的数据&#xff0c;可以直接利用K−meansK-meansK−means或者GMM&#xff08;高…

2、linux_CentOS_6_64位常用命令远程操作--yum云用不了_建议学习Ubuntu

Linux的概述 学习Linux之前先了解Unix Unix是一个强大的多用户、多任务操作系统。于1969年在AT&T的贝尔实验室开发。UNIX的商标权由国际开放标准组织&#xff08;The Open Group&#xff09;所拥有。UNIX操作系统是商业版&#xff0c;需要收费&#xff0c;价格比Microsof…

洞悉获客之道,林肯汽车开展高端社区精准营销俘获消费者芳心

一、出场即焦点 全新领航员诠释顶级美式豪华“强大的外部气场&#xff0c;肌肉与优雅完美结合”&#xff0c;一直以来&#xff0c;美式豪华汽车以沉稳、古典的高端奢华气质演绎“出场即焦点”的恢弘气场&#xff0c;吸引着无数精英人士为之着迷、追捧。2022 年&#xff0c;林肯…

C/C++宏定义注意事项

宏定义后不能加“&#xff1b;”&#xff0c;如果想查找宏可能带来的bug,可以增加编译选项&#xff1a;/P&#xff0c;然后选择仅编译&#xff0c; 这时会生成*.i的文件&#xff0c;打开后可以看到编译器替换宏以后的实际内容&#xff0c;然后再去查看相关的替换有没有错误。带…

夏普MX-M2658N复印机显示请放入载体组件

故障描述: 一台夏普MX-M2658N复印机一开机就显示请放入载体组件,重新再次开机有可能不显示但是复印或打印的时候一定会卡纸,卡纸有时候卡在硒鼓附近或者加热组件的位置; 故障处理: 1、碳粉质量差; 2

fiddler的自动响应器_小实验

目录 一、小实验介绍 二、fiddler的自动响应器的应用 1.找对自动响应器的位置&#xff0c;添加规则 2.编辑规则&#xff0c;将这个请求用fiddler的内置响应&#xff1b; 3.编辑规则&#xff0c;将这个请求重定向到本地资源&#xff1b; 4.编辑响应 一、小实验介绍 承接上…

【自学Docker 】Docker ps命令

Docker ps命令 大纲 Docker ps命令概述 docker ps 命令可以用来列出 Docker容器 相关信息。 Docker ps命令语法 haicoder(www.haicoder.net)# docker ps [OPTIONS]Docker ps命令参数 选项说明无参默认显示正在运行的容器。-a显示所有的容器&#xff0c;包括未运行的。-f根…

[HCTF 2018]admin (三种解法详细详解)

目录 信息收集 思路一&#xff1a;弱口令爆破 思路2&#xff1a;垂直越权 代码审计 Unicode欺骗 Unicode 简介 伪造flask session 信息收集 注册登录 然后查看源码 <!-- you are not admin --> 看来需要伪造admin的身份 在changepassword页面查看源代码 <!-…

C++ 语法基础课8 —— STL/位运算和常用库函数

文章目录STL1. #include\<vector>(尾部增删)(1) 声明(2) size/empty(3) clear(4) 迭代器(iterator)(5) begin/end(遍历)(6) front/back(7) push_back()/pop_back()2. #include\<queue>(队列先进先出)(1) 声明(2) 循环队列 queue(队列结构)(3) 优先队列 priority_qu…

基于Python分析气象数据教程-1

前言本笔记介绍了如何使用 Python、pandas 和 SciPy 对天气数据进行基本分析。 它不包含对气象科学的贡献&#xff0c;但说明了如何生成简单的图和基本模型来拟合一些真实的物理观测。一、相关库引入import numpy import scipy.stats import pandas import matplotlib.pyplot a…

【零基础】学python数据结构与算法笔记13-贪心算法

文章目录前言80.贪心算法&#xff08;新一章&#xff1a;算法进阶&#xff09;81.分数背包82.分数背包实现83.数字拼接问题84.数字拼接问题实现85.活动选择问题86.活动选择问题实现87.贪心算法总结总结前言 学习python数据结构与算法&#xff0c;学习常用的算法&#xff0c; b…

LeetCode(Array)1656. Design an Ordered Stream

1. 问题 There is a stream of n (idKey, value) pairs arriving in an arbitrary order, where idKey is an integer between 1 and n and value is a string. No two pairs have the same id. Design a stream that returns the values in increasing order of their IDs b…