美文网首页
2020-04-02

2020-04-02

作者: 东方不赞 | 来源:发表于2020-04-02 00:15 被阅读0次

    Perl-小骆驼书~学习笔记

    Perl的逻辑:丑则丑矣,效率高啊。吃苦能干,小骆驼也!

    [TOC]

    1.标量数据

    标量scalar包含数字和字符串。

    1.1 数字

    数字内部格式为双精度浮点型

    • 直接量 literal:直接键入程序源代码中的数据。

    • 浮点型直接量

    • 整数型直接量

      • 其他进制
        • 十进制 255
        • 十六进制 0xFF
        • 八进制 0377
        • 二进制 0b11111111
      • 太长时可加入下划线
        • 0x1377_0B77
        • 61_298_121
    • 操作符

      • 取模%:先取整再取余数。

        取整:小于1为0,如4.8为4

      • 取整:小于1为0

        • 10%3=1
        • 10.5%3.1=1
      • 乘幂**

    1.2 字符串

    • ASCII字符范围以外的字符,需要use utf8
    • Single-quoted string literal:'就是表面看起来那样,顶多转义一个 \ ' ,其他的都是字符'
    • double-quoted string literal:"可以加入变量和转义\n啥的"

    转义:

    意义 组合 意义 组合 意义 组合
    换行 \n 回车 \r 制表符 \t
    换页 \f 退格 \b 响铃 \a
    ctrl+c \cC 反斜线 \ \
    • 操作符
      • 点符."asd"."ee"=="asdee"
      • 重复x"fe"x3=="fefefe"
        • :a:attention: 5x4.8"5555"

    1.3 字符串和数字的混用

    Perl根据操作符来确定数字还是字符串

    "123"+"456" #123+456=579
    "123ef245"+"456" #123+456=579
    "123"."456" #"123456"
    

    1.4 标量变量

    $开头,标识符的开头为_或字母,不能是数字开头。

    $意味取"单个东西"或取"标量"

    • 使用utf8之后,变量名也可为其他的非ASCII字符$汉字="我爱中国";

    • 赋值

    a=5;a=a+5;a*=5;

    
    
    
    * 变量内插
    
    ```perl
    $handsome="handsome very much\n";
    $xiu="we are $handsome";
    #或则用.串联起来
    $xiu='we are'.$handsome;
    

    1.5 print

    • 默认为STDOUT,即标准输出,输出到屏幕。
    print "hello world\n";
    print 6*7;
    print "My","English is so",6,"!\n";
    #变量的输出
    print $handsome;
    

    1.5.1 内插歧义的避免

    在变量后面接上字符容易歧义

    $a="123";
    #变量后面接字母、数字、下划线
    print "$as" #error
    print "${a}s" #123s
    #变量后面接方括号、花括号、冒号、引号等,可将他们加斜线
    print "$a\[ss]" #123[ss]
    print "${a}[ss]" #123[ss]
    

    1.5.2 代码点code point和字符的转换

    基于utf8,有很多字符超出ASCII字符表。code point记录字符的十六进制“ID”,请允许我这么叫。它和字符之间是一一对应的关系的。

    • code point到字符:chr(code point)
    $omega=chr(0x03C9)
    
    • 字符到code point:ord('字符')
    use utf8;
    $顿号=ord('、');
    
    • 直接用双引号:\x{03B1}
    #αω\n
    print "\x{03B1}\x{03C9}\n";
    

    1.6 操作符

    操作符 结合性 注释
    ++,--,** 自增,自减,自乘
    =~,! ~
    • 比较操作符
    意义 数字大小比较 字符串比较
    相等 == eq
    不等 != ne
    小于 < lt
    大于 > gt
    小于等于 <= le
    大于等于 >= ge

    1.7 if控制结构和while循环结构

    与其他语言类似,略

    1.8

    1.8.1 用户输入<STDIN>

    $get_in=<STDIN>;
    

    1.8.2 chomp操作符

    去除最后面的\n,若无则不处理

    #去除输入的回车,并赋给$get_in
    #chomp返回值为0或1,所以一般将他视为
    chomp($get_in=<STDIN>);
    

    1.8.3 undef

    当做数字时视为0,当做字符串时视为空字符串""

    • 应用: 当一个变量未被定义就被使用,他就被定义为undef,使得程序得以继续运行(正常需要定义的这个变量的)。
    • 也可自己创建undef$a=undef

    1.8.4 defined函数-判断字符串是否为空

    • 返回逻辑值
    if(defined($a)){
        print "aaa\n";
    }else{
        print "hhha\n";
    }
    

    1.9 章后作业

    • 1-3题
    #!/usr/bin/perl -w
    use utf8;
    print "请输入半径:\n";
    $banjing=<STDIN>;
    if($banjing<0){
      print "周长是:\n0\n";
    }else{
      $pai=3.141592654;
      $zhouchang=$banjing*2*$pai; 
      print "周长是:\n$zhouchang\n";
    }
    
    • 4-5题
    #!/usr/bin/perl -w
    use utf8;
    print "请输入字符串:\n";
    $chars=<STDIN>;
    print "请输入数字:\n";
    $num=<STDIN>;
    print "they are :\n";
    while($num){
      print $chars;
      $num--;
    }
    

    相关文章

      网友评论

          本文标题:2020-04-02

          本文链接:https://www.haomeiwen.com/subject/jvftphtx.html