Day Vision

Reading Everyday,Extending Vision

Perl语言学习(三)Perl数据运算

2022-09-16 06:32:58


三、Perl数据运算1、运算符算术运算符用来进行常用的数据计算四则运算符包括加、减、乘、除四种(+、-、*、/)特殊的四则运算:使用字符串进行四则运算(字符串和整数进行相加)乘幂运算符对数据做幂指数操作,操作符为**使用方法:$data =


三、Perl数据运算

1、运算符

  • 算术运算符
    • 用来进行常用的数据计算
    • 四则运算符
      • 包括加、减、乘、除四种(+、-、*、/)
      • 特殊的四则运算:使用字符串进行四则运算(字符串和整数进行相加)
    • 乘幂运算符
      • 对数据做幂指数操作,操作符为**
      • 使用方法:$data = 5; $data2 = 3; $data3 = $data1**$data2; $data4 = $data3**3.5;
      • 涉及到开方运算时,基数不能为负
      • 乘幂结果不能超过计算机的显示范围
    • 取余运算符
      • 对数据进行取余操作,用%表示
      • 使用方法:($data1,$data2) = (18,4); $data3 = $data1 % $data2;
      • 取余的操作数不是整数时,对操作数进行取整后运算:$data = 18 % 2.6; ##相当于$data = 18 % 2,返回值为0
      • 运算符的右侧不能为0
    • 单目负运算符
      • 属于单目操作符,表示数字的正负属性
      • 使用方法:$data1 = -5; $data2 = -$data1;
      • 自减操作符:两个减号--
    • 运算符的省略形式
      • 对变量自身进行算术运算时,可使用省略形式


        image.png
  • 比较运算符
    • 用于数据之间的大小、相等性比较
    • 数字比较运算符
      • 数据对象是数字值或者数字变量


        image.png
    • 字符串比较运算符
      • 数据对象是字符串或者字符串变量


        image.png
      • 字符串的大小比较
        • 在Perl中,基于字符串的ASCII码对字符串进行大小比较


          image.png
  • 逻辑运算符
    • 用于逻辑判断,结果为"真"或"假",属于布尔类型
    • 逻辑或:$a || $b, 或者$a or $b
    • 逻辑与:$a && $b, 或者$a and $b
    • 逻辑非:!$a 或者 not $a
    • 逻辑异或:$a xor $b
    • 逻辑运算符一般不单独使用,会和if,while等控制结构一起使用,返回值是0或1
  • 位运算符
    • 以“位“为单位,对数据进行修改等操作,多用于二进制运算
    • 位与:&
    • 位或:|
    • 位非:~
    • 位异或:^
    • 左移:$x << 1
    • 右移:$x >> 2
  • 赋值运算符
    • 对数据进行赋值操作
    • 以等号“=”作为赋值标识,一般的赋值方式是数值拷贝
    • 包括一些运算和等号一起的省略写法,如+=,-=, =,/=,%=, *=
    • 另外还有.=, x=等字符串的赋值操作省略写法
    • 等号可以在一个赋值语句中多次出现: $data1 = $data2 = $data3 = 5;
    • 等号也可以作为子表达式:($a = $b) += 3;等价于$a = $b; $a = $a + 3;
  • 其他运算符
    • 自增自减运算符用于变量对自己本身的操作
    • ++ 自增运算符 值加1
    • -- 自减运算符 值减1
    • 用法为:$data ++, ++ $data以及$data --, -- $data
    • 运算符放在左边,变量本身及其返回值立马发生变化
    • 运算符放在右边,返回值为原值,但变量本身要下一次才能发生变化
    • 不能在变量两边都使用自增自减运算符
    • 不能在变量自增或自减后在同一表达式中再次使用:$data2 = $data1 + ++$data1,这种表达式是错误的
    • 在Perl中,自增运算符可以用于字符串,当结尾字符为"z","Z","9"时会进位


      image.png
    • 字符串连接和重复运算符
      • 连接运算符:.
      • 重复运算符:x
      • $string1 = "begin";
      • $string1 = $string." here" ##$string = "begin here"
      • $string1 = $string1 x 2; ##$string = "begin here begin here"
    • 逗号运算符
      • 可以用来提高程序的可读性,其前面的表达式先行运算
      • $var1 += 1, $var2 = $var1;
      • $result = (++$var, $var + 5);
    • 条件运算符
      • 形式为:条件?值1:值2
      • 当条件为真是取值1,为假是取值2
      • $result = $var == 0 ? 14 : 7;
      • 在Perl5中,还可以在赋值式左边使用条件操作符来选择被赋值的变量
      • $convar = 43 ? $var1 = 14 : $var2 = 14;

2、运算符的优先级和结合性

  • 定义
    • 运算符的优先级指的是不同运算的先后顺序
    • 运算符的结合性指的是运算符的运算方向
  • 优先级和结合性
    • Perl中的所有运算符都有自己的优先级和固有结合性
    • 优先级的粗略规则是,单目操作符优先级高于双目操作符
    • 同等情况下,位运算高于逻辑运算高于赋值运算


      image.png
    • 写程序时,应多使用括号来进行优先级的自定义

参考来源: https://www.jikexueyuan.com/course/1279.html