TCL/Tk基础学习(二)

这篇具有很好参考价值的文章主要介绍了TCL/Tk基础学习(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

表达式

Tcl表达式由操作符、操作数、圆括号等构成。于C语言、verilog用法几乎相同。
# 算术操作符、逻辑运算符、关系运算符、按位操作符(一元)、选择运算符(三元)

算术操作符

与C语言等用法相同
set r 2
set pi 3.14 
#expr 直接获取表达式的值
puts [ expr $pi * $pi * $r ** 2 ]
#tcl解释器会在执行expr前进行变量置换,传递给expr的参数为3.14*2
puts [ expr {$pi * $pi * $r ** 2} ] 
#{}阻止变量传递,传给expr参数为pi*r,当表达式处理器遇到$符号时进行变量置换
#tcl处理{}内表达式的效率远高于其他表达式
#--> 针对表达式   puts 只是将结果输出

#a/b 结果需要满足 a=q*b+r, 0<=|r|<|b|,r q同号,q是商,r余数 
#当除数、被除数含有一个一号时,商为负 
#相当于向下取整 -0.5-1  
puts [ expr {-1 / 2} ]
puts [ expr {1 / -2} ]

#a%b 瞒足 a=q*b+r, 0<=|r|<|b|, r q同号
#当除数为负时,余数为负
#当被除数为负时,余数为正-3 
puts [ expr {-7 % 3} ]  
puts [ expr {7 % -3} ] 
#-9  -9

for {set i 1} {$i < 16 } {incr i 4} {
   puts "2^$i : \t [expr {2 ** $i }]"
}
39.4384
39.4384
-1
-1
2
-2
2^1 : 	 2
2^5 : 	 32
2^9 : 	 512
2^13 : 	 8192

关系、逻辑、按位、选择操作符

set a verilog
set b tcl 
puts [ expr { $a < $b } ]  
puts [ expr { 23 < 25 } ]
#八进制
puts [ expr { 8 == 010  } ]
puts [ expr { 8 == 0o10 } ]
#十六进制
puts [ expr { 8 == 0x8  } ]

# yes/on/ture 表示真
# no/off/false 表示假
puts [expr { on && no }] 

puts [ expr { ($a <= $b) ? [ puts "max: $a"] : [ puts "max: $b"] } ]
0
1
1
1
1
0
max: tcl

函数

# tcl函数几乎包含全部函数
# 向上取整
set x 5.6
puts [expr {ceil($x)} ]
#向下取整
puts [expr {floor($x)}]
#四舍五入
puts [expr {round($x)}]
#[0,1]伪随机数浮点数
puts [expr {rand()} ]
#srand(x) 整数种子随机数生成

# 表达式布尔值转换
bool(x)
# 整形值的实数
double(x)
# 转为整形值
int(x)
# 用至少64位宽表示整形值
wide(x)
6.0
5.0
6
0.526772657654608

#字符串操作文章来源地址https://www.toymoban.com/news/detail-513246.html

#字符串操作 ne eq
puts [ expr {$a eq $b}]
puts [ expr {$a ne $b}]

到了这里,关于TCL/Tk基础学习(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【SQL-正则】利用正则表达式进行过滤操作(常用正则表达式)

    1、由数字、26个英文字母或者下划线组成的字符串 2、非负整数(正整数 + 0 ) 3、正整数 4、非正整数(负整数 + 0) 5、负整数 6、整数 7、非负浮点数(正浮点数 + 0) 8、正浮点数 9、非正浮点数(负浮点数 + 0) 10、负浮点数 11、浮点数 12、由26个英文字母组成的字符串 13、

    2024年02月12日
    浏览(81)
  • re --- 正则表达式操作

    模式和被搜索的字符串既可以是 Unicode 字符串 (str) ,也可以是8位字节串 (bytes)。 但是,Unicode 字符串与 8 位字节串不能混用:也就是说,不能用字节串模式匹配 Unicode 字符串,反之亦然;同理,替换操作时,替换字符串的类型也必须与所用的模式和搜索字符串的类型一致。

    2024年02月08日
    浏览(47)
  • 安全基础 --- 正则表达式

    正则表达式(Regular Expression),简称为 正则 或 Regex ,是一个用来描述、匹配和操作字符串的工具。 限定字符 多用于重复匹配次数 常用限定字符: 语法 说明 ? 上一项是可选的,最多匹配一次。 * 前一项将被匹配零次或多次。 + 前一项将被匹配一次或多次。 {N} 上一项完全匹

    2024年02月15日
    浏览(38)
  • 正则表达式基础

    正则表达式指一个模式串,该模式串可匹配到所有满足该模式串指定规则的字符串; 模式串本身不含有特殊字符,搜索包含模式串的所有字符串; 特殊字符 含义 ^ 匹配一行的开头,如^a表示匹配所有以a开头的字符串 $ 匹配一行的结尾,如a$表示匹配所有以a结尾的字符串 . 匹

    2024年02月05日
    浏览(38)
  • 正则表达式 基础

    Tips: 字符串方法match()返回根据正则表达式匹配到的结果 ^ 以...开头 $ 以...结尾 + 号,匹配前面的字符1 ~ n次 * 号,匹配前面的字符0 ~ n次 ? 号,匹配前面的字符0 ~ 1次 {n,} ,匹配前面的字符至少n次 {n,m} ,匹配前面的字符n ~ m次 [abc] 匹配[]中的所有字符 [^abc] 匹配除去[^]中的所

    2024年02月04日
    浏览(50)
  • JavaScript正则表达式基础

    创建正则表达式,一般有两种写法 .test(\\\'需要验证的字符\\\'),正则的方法用来验证正则的匹配结果true or false 修饰符 写法:/正则/ 修饰符 示例:/abc/i (匹配字符串abc并且不区分大小) i:执行对大小写不敏感的匹配(不区分字母的大小写) g:执行全局匹配(查找所有匹配而非在

    2024年02月09日
    浏览(50)
  • VsCode中常用的正则表达式操作

    在vscode中可以使用正则表达式来进行搜索内容,极大的方便了我们对大量数据中需要查看的信息进行筛选,使用正则搜索时点击 .* 此文章会持续补充常用的正则操作 将搜索的内容进行全选,举例:在如下文件中我需要对NO字符进行搜索,并且选中所有的NO 选中所有匹配项快捷

    2024年02月07日
    浏览(45)
  • 【BOOST程序库】正则表达式相关操作

    基本概念这里不解释了,代码中详细解释了BOOST程序库中对于正则表达式常用方法的详细用法。

    2024年02月15日
    浏览(56)
  • Python正则表达式之学习正则表达式三步曲

            正则表达式描述了一种字符串匹配的模式,可以用来检查一个串的有无某子串,或者做子串匹配替换,取出子串等操作。也可以说正则表达式就是字符串的匹配规则,也可以理解为是一种模糊匹配,匹配满足正则条件的字符串。         1、数据验证(eg:表单验

    2024年02月15日
    浏览(68)
  • python正则表达式-正则基础

    目录 一、任一元素 二、匹配特定的字符类别          1、d  w 三、多个元素          1、两位元素 [][]          2、* + ?          3、重复次数 {}          4、位置匹配 ^ $          5、子表达式()         []:1、[ab] 匹配a或b;        2、[0-9] 匹配任意一个数

    2024年02月05日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包