Tape
Project description
pyTape
“pyTape”模块加入了一个叫做“Tape”的数据类型,“Tape”包含了一条很长的“带子”用来记录信息,另外还有一枚“指针”指向带子上面任意的位置,操作上面的数据。
这个模块原来是为上课的时候摸鱼,尝试brainfxxk这样思路清奇语法有趣的语言而准备的。使用方法“exce()”开启新世界。
安装与使用
pip install pyTape
或者进入dist目录直接选择whl安装
导入模块使用from pyTape import pyTape
或者可以为了使用方便,写成from pyTape import pyTape as pt
script/dist目录下有两个文件,可以在windows或linux环境中执行一些brainfxxk指令。
使用方法:
cpl {文件名} {文件名}
接受若干个文件名作为参数,此时,这些文件里储存的brainfxxk指令将逐条地在命令行里执行
若没有提供任何文件名,cpl则会开始交互式brainfxxk编程,用“q”或“exit()”退出
关于列表的操作
记录信息的“带子”用一个列表实现,截取列表里面的某一段信息可以使用这样的表达:
{实例名}[下标]
=等同于={实例名}.reg[下标]
获取列表里所含元素的数量可以使用这样的表达:
len({实例名})
=等同于=len({实例名}.reg)
输出列表可以使用这样的表达:
print({实例名})
=等同于=print({实例名}.reg)
列表里面最小的元素值为0,类型全部为整数,也就是说列表里不会出现负数,只会出现正整数。
exce()实现brainfxxk语法
exce()需要两个参数,其中一个是self,另外一个参数作为brainfxxk指令,以字符串的形式传递,如:
{实例名}.exce(<brainfxxk指令>)
或者{实例名}(<brainfxxk指令>)
关于brainfxxk指令
这个模块暂时只支持+ - < > [ ] , .
几种运算
运算符"+"
使指针所指元素的值+1
运算符"-"
使指针所指元素的值-1
运算符"<"
指针指向左边一个元素
运算符">"
指针指向右边一个元素
运算符"["与"]"
两个中括号括起来的运算作为循环体,指针所指元素作为while循环的条件
运算符","
请求一个输入,覆盖指针所指元素原来的值
运算符"."
将指针所指元素转换成字符类型输出
其他操作
运算符"("与")"
用括号括起来的部分循环n遍,n作为一个正整数紧贴在左边的括号外
如
+>+>+>
可以写成3(+>)
若需要循环的部分为单个运算符("("除外),则可以直接省略括号
如
+++
可以写成3+
运算符"?"
输出一个整数,指针指向元素的下标
运算符"&"
输出一个整数,指针所指元素的值
运算符"*"
重置列表
运算符"!"
将指针指向元素的值为n,则将指针重新指向列表中下标为n的元素
Tape的加法
加法符号左右必须都是Tape类型数据,加法的结果为两个列表的元素各自相加
Tape的减法
减法符号两边必须是Tape类型数据,左边为被减数右边为减数,结果是两个列表的元素各自相减取绝对值(因为列表里面不能存在负数)
Tape的乘法
乘法符号左右必须都是Tape类型数据,结果为两个列表的元素各自相乘
Tape的除法
除法符号两边必须是Tape类型数据,左边为被除数右边为除数,结果是两个列表的元素各自相除取整(因为列表里面只能有正整数)
Tape取模
%两边必须是Tape类型数据,左边为被除数右边为除数,结果是两个列表的元素各自取模
更新
0.0.5
调整了运算符"[]","]"使循环嵌套可能
改掉一些小问题
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pyTape-0.0.6.tar.gz
.
File metadata
- Download URL: pyTape-0.0.6.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5c54c7eae500a857837ca746f132021ee9dc5db3ca14703f2bcaf46c9d48b96 |
|
MD5 | de562dc5b872d3fa53e437f1f117121c |
|
BLAKE2b-256 | 63aa26a740d77464c8f328eef9db6a5bd999b6b30e81d6a1f070e3e5ce4f69cb |
File details
Details for the file pyTape-0.0.6-py3-none-any.whl
.
File metadata
- Download URL: pyTape-0.0.6-py3-none-any.whl
- Upload date:
- Size: 4.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a56f53e2775e7ab06d7c3f65f345560f773df927c703fdc1a291d783c9fce883 |
|
MD5 | 235ee9c4b2430aa732c0138049175a48 |
|
BLAKE2b-256 | 6b67b7cadc2a40fdc8d29889a50ededddbc9eb264a80b03970b24e9c6ee671a0 |