编程语言关键字——python学习第一周

文章目录

目录

文章目录

一、什么是关键字

二、C语言的关键字

(1)存储类型关键字(4个)

(2)数据类型关键字(12个)

各变量类型所占字节数

(3)控制语句关键字(12个)

(4)其他关键字

三、python的关键字

(1)内置常量

(2)逻辑与、或、非

(3)条件语句

(4)循环语句

(5)循环控制

(6)代码占位符

(7)异常

(8)模块导入

(9)函数

(10)类

(11)匿名函数

(12)删除对象

(13)声明变量作用域

(14)判断语句

(15)测试代码

参考


一、什么是关键字

        关键字是编程语言中事先定义的,具有特定含义的符号,是语法中的一部分,就和+、-运算符一样。这些特定的字符组合符号已经被系统预留,因此在编写程序时不能使用和关键字相同的标识符(即编程时对变量、常量、函数、语句块等的命名),否则会导致编译错误。

        与保留字的区别:关键字一定是保留字,保留字不一定是关键字。保留字是指语言中已经定义过的字符,使用者不能再将这些字作为标识符。对比关键字的定义,一般情况下,关键字是等同于保留字的。但在一些语言中,一些保留字可能没有并灭有应用与当前的编程语言语法中,这就成了保留字和关键字的区别。一般出现这种情况可能是考虑到编程语言的扩展性。例如,Javasshicript中有一些未来保留字,如abstract、double、goto等等。他可能未来要增加对应的功能,为了使当前版本的程序代码能够向后兼容,所以不允许使用这些作为标识符,但当前版本的编程语言又不支持这些保留字的功能,因此它就不是关键字

二、C语言的关键字

(1)存储类型关键字(4个)

       auto: 声明自动变量(局部变量),表示当前变量的作用域为当前函数或代码段。在代码中局部变量类型缺省情况下就是auto类型。

        extern:用于变量或函数的声明前,表示此变量或函数在别处定义,在此处进行引用。在代码中全局变量变量类型缺省情况下就是extern类型。

        resister: 声明寄存器变量,目的是让该变量的访问速度更快,用于要频繁进行操作的变量。需要注意的是:①寄存器变量的长度不能大于寄存器的长度;②寄存器变量不能使用取地址符‘&’,因为该变量没有内存地址;③寄存器的个数是有限的,因此寄存器变量的个数也是有限的。

        static: 声明静态变量,静态变量与全局变量一样,存储于静态(全局)存储区。作用是:①修饰全局变量时,该变量只能在本文件内被访问,不能在其他文件中被直接访问;②修饰函数时,该函数只能在本文件中被访问,不能被其他文件访问,但是可以通过嵌套的方式调用,变相的封装;③修饰局部变量时,会将该变量的声明周期修改为在程序结束时释放,但作用域依旧是本代码块内。

(2)数据类型关键字(12个)

        char:声明字符型变量或函数

        double:声明双精度变量或函数

        enum:声明枚举类型

        float:声明浮点型变量或函数

        int:声明整型变量或函数

        long:声明长整型变量或函数

        short:声明短整型变量或函数

        signed:声明有符号类型变量或函数

        unsigned:声明无符号类型变量或函数

        struct:声明结构体变量或函数

        union:声明共用体(联合)数据类型(联合体所占内存为联合体中最大成员所占内存的大小且必须为最大类型所占字节的最小倍数)

        void:声明函数无返回值或无参数,声明无类型指针

各变量类型所占字节数

类型win32win64linux32linux64
char1111
short2222
int4444
long4448
long long8888
float4444
double8888

(3)控制语句关键字(12个)

        循环语句:

        for:循环语句

        do:循环语句的循环体

        while:循环语句的循环条件

        break:跳出当前循环

        continue:结束当前循环,开始下一轮循环

        条件语句

        if:条件语句

        else:条件语句否定分支(与if连用)

        goto:无条件跳转语句

        开关语句

        switch:用于开关语句

        case:开关语句分支

        default:开关语句中的“其他”分支

        返回语句

        return:程序返回语句(可以带参数,也可以不带参数)

(4)其他关键字

        const:声明只读变量

        sizeof:计算数据类型长度

        typedef:用以给数据类型起别名

        volatile:告诉编译器该变量是易变的,无时刻注意该变量是易变的,每次读取该变量的值都重新从内存中读取

         补充:区别常量指针、指针常量、指向常量的指针常量

        ①常量指针:const int *p = &a;指向常量的指针,const修饰的是*p,即不可以通过*p=修改其值(但可以通过a = 修改其值),指针地址可以变,值不能变。

        ②指针常量:int *const p = &a;指针本身是常量,该指针只能指向某个常量,不可再指向其他常量,指针地址不可变,值可变,注意指针常量在定义时要赋初值。

        ③指向常量的指针常量:const int *const p = &a;指向常量的常指针,指针地址与值均不可变。

        补充:编译器的优化

        

 如上代码,若编译时选择了编译器优化,则有可能被优化为以下代码

 因为从main主函数看,a==b是必然的。

但是在以下情况中,a和b不是必然相等:

①i是其他子线程与主线程共享的全局变量,其他子线程有可能修改i值;

②i是中断函数与主函数共享的全局变量,中断函数有可能修改i值;

③i属于硬件寄存器,CPU可能通过硬件直接改变i的值;

因此当处于这些情况是,且编译时需要优化,则必须定义i为volatile变量,每次都从内存中去读取。

三、python的关键字

(1)内置常量

        False: 常量0。

        True: 常量1。

        NONE: 常量空。

(2)逻辑与、或、非

        and: 如果两个条件都为True,则返回值为True,否则返回False。

        or:如果其中一个条件为True。

(3)条件语句

        if:用于创建条件语句(if语句),并且仅当条件为True时,才允许执行if代码块。

        elif:在条件语句(if语句)中使用,是else if 的缩写。

        else:在条件语句(if语句)中使用,并确定在if条件为False时执行的代码。

(4)循环语句

        for:用于创建一个for循环,它可以用来遍历序列,例如列表,元组等。

        while:用于定义while循环,while循环将继续,直到while的条件为False

(5)循环控制

        continue:continue关键字用于在for循环(while循环)中结束当前迭代,并继续进行下一个迭代。

        break:break关键字用于中断for循环或while循环。

(6)代码占位符

        pass:循环、函数定义、类定义、if语句中不允许使用空代码,则可以使用pass;当执行pass语句时,不会有任何影响,只是站位作用代码空白代码。

(7)异常

        try:在try...except块中使用,它定义了一个代码块,并在没有问题的情况下执行块。如果包含任何错误,可以为不同的错误类型定义不同的块。

        except:在try...except块中使用,它定义了一个代码块,并在没有问题的情况下执行块。如果包含任何错误,可以为不同的错误类型定义不同的块。

        finally:在try...except块中使用。它定义了一个代码块,当try...except...else块结束时,该代码块将运行。无论try块是否引发错误,都将执行finally代码块。

        raise:raise关键字用于引发异常,可以定义引发哪种错误,以及向用户显示错误信息。

(8)模块导入

        import:用于导入模块。

        from:用于从模块中导入指定的部分,按需要导入指定子类或函数,减少不必要的资源浪费。

        as:用于创建别名

(9)函数

        def:用于创建(或定义)一个函数。

        return:用于结束所定义的函数,并返回值。

(10)类

        class:用于创建(或定义)一个类。

(11)匿名函数

        lambda:用于创建一个特殊的匿名函数。

(12)删除对象

        del:在Python中,一切皆对象。del关键字主要用于删除对象,还可以用于删除变量,列表或列表的一部分等

(13)声明变量作用域

        global:用于创建一个全局变量。

        nonlocal:用于声明一个非局部变量,用于表示外部作用域的变量

(14)判断语句

        in:可以用于检查序列(list,range,字符串等)中是否存在某个值;也可以用于遍历for循环中的序列。

        is:用于判断两个变量是否是同一个对象,如果两个对象是同一对象,则返回True,否则返回False。注意要与==区分,==运算符用于判断两个变量值是否相等。

(15)测试代码

        assert:调试代码时,使用assert关键字。主要用于测试代码中的条件是否为True,如果为False,将引发AssertionError。

(16)文件处理

        with:常与open使用,用于读取或写入文件。

(17)生成器

        yield:结束一个函数,返回一个生成器,用于从函数一次返回值。

(18)多线程

        async:用于声明一个函数为异步函数,异步函数的特点是能在函数执行过程中挂起,去执行其他异步函数,等到挂起条件消失后,再回来执行。

        await:用于声明程序挂起,比如异步程序执行到某一步时需要等待的时间很长,就将此挂起,去执行其他的异步程序。await后面只能跟异步程序或有_await_属性的对象,因为异步程序与一般程序不同。


参考

https://www.cnblogs.com/mrwhite2020/p/16653159.html#q1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值