美文网首页
第7课 函数及其进制位运算

第7课 函数及其进制位运算

作者: 遐迩_84a7 | 来源:发表于2017-04-25 17:47 被阅读0次

局部变量,就是在函数内部定义的变量

不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响

局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用

在函数外边定义的变量叫做全局变量

全局变量能够在所有的函数中进行访问

如果在函数中修改全局变量,那么就需要使用global进行声明,否则出错(在其他函数中,只要用global进行了全局变量的说明,那么接下来在这个函数中使用这个变量的使用,就当做是一个全局变量来用)

如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的,小技巧强龙不压地头蛇

匿名函数

用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。

lambda函数的语法只包含一个语句,如下:

lambda [arg1 [,arg2,.....argn]]:expression


Lambda函数能接收任何数量的参数但只能返回一个表达式的值

匿名函数不能直接调用print,因为lambda需要一个表达式

函数使用注意事项

1. 自定义函数

<1>无参数、无返回值

        def 函数名():

        语句

<2>无参数、有返回值

      def 函数名():

      语句

     return 需要返回的数值

注意:

一个函数到底有没有返回值,就看有没有return,因为只有return才可以返回数据

在开发中往往根据需求来设计函数需不需要返回值

函数中,可以有多个return语句,但是只要执行到一个return语句,那么就意味着这个函数的调用完成

<3>有参数、无返回值

     def 函数名(形参列表):

     语句

注意:

在调用函数时,如果需要把一些数据一起传递过去,被调用函数就需要用参数来接收

参数列表中变量的个数根据实际传递的数据的多少来确定

<4>有参数、有返回值

    def 函数名(形参列表):

    语句

   return 需要返回的数值

<5>函数名不能重复

      2. 调用函数

<1>调用的方式为:              函数名([实参列表])

<2>调用时,到底写不写 实参

如果调用的函数 在定义时有形参,那么在调用的时候就应该传递参数

<3>调用时,实参的个数和先后顺序应该和定义函数中要求的一致

<4>如果调用的函数有返回值,那么就可以用一个变量来进行保存这个值

3. 作用域

在一个函数中定义的变量,只能在本函数中用


什么是进制

1)理解个X进制的概念 :

每一位 只允许出现 0~X-1 这几个数字,逢X进一,基是X, 每一位有一个权值大小是X的幂次。 其表示的数值可以写成按位权展开的多项式之和。

如何表示二进制数的正负?

3)有符号数和无符号数的概念

规则:把二进制数中的最高位(最左边的那位)用作符号位

对于有符号数,最高位被计算机系统规定为符号位(0为正,1为负)

对于无符号数,最高位被计算机系统规定为数据位

按照这种说法,比如有符号数 +2  -2 的原码形式:

+2   =    0000 0000 0000 0010

-2    =    1000 0000 0000 0010

真值      机器数

+1 = 0000 0000 0000 0001


规则

数字在计算机中,是用二进制补码的形式来保存的,因此-1 +1需要按照补码进行相加才是正确的结果

2、原码、反码、补码

1)如何计算补码?

规则:

正数:原码 = 反码 = 补码

负数:反码 = 符号位不变,其他位取反                 补码 = 反码+1

从补码转回原码

负数补码转换原码的规则:

原码 = 补码的符号位不变 -->数据位取反--> 尾+1

<1>位运算的介绍

& 按位与

| 按位或

^ 按位异或

~ 按位取反

<< 按位左移

>> 按位右移

用途: 直接操作二进制,省内存,效率高

1)<< 按位左移       各二进位全部左移n位,高位丢弃,低位补0

x << n 左移 x 的所有二进制位向左移动n位,移出位删掉,移进的位补零

【注意事项】

a. 左移1位相当于 乘以2

用途:快速计算一个数乘以2的n次方 (8<<3 等同于8*2^3)

b.左移可能会改变一个数的正负性
2)>> 右移

各二进位全部右移n位,保持符号位不变

x >> n x的所有二进制位向右移动n位,移出的位删掉,移进的位补符号位 右移不会改变一个数的符号

右移1位相当于 除以2

x 右移 n 位就相当于除以2的n次方 用途:快速计算一个数除以2的n次方 (8>>3 等同于8/2^3)

3)   &     按位与

全1才1否则0 :只有对应的两个二进位均为1时,结果位才为1,否则为0

4)    |     按位或

有1就1 只要对应的二个二进位有一个为1时,结果位就为1,否则为0

5) ^ 按位异或

不同为1 当对应的二进位相异(不相同)时,结果为1,否则为0

6) ~ 取反

~9 =-10

【扩展】

1)任何数和1进行&操作,得到这个数的最低位 数字&1 = 数字的二进制形式的最低位

2)位运算优先级

数据类型转换

1.常用的数据类型转换

2. 进制转换

<1>不同进制的书写方式

八进制(Octal) 0o377

十六进制(Hex) 0xFF

二进制(Binary) 0b11111111

<2>不同进制之间的转换

python提供了三个内置的函数,可以用来在不同进制间做转换

>>> oct(255), hex(255), bin(255)

('0o377', '0xff', '0b11111111')

还可以使用int函数,把字符串转成数值

>>> int('255'), int('0xFF', 16)     (16进制的意思)

(255, 255)

相关文章

  • 第7课 函数及其进制位运算

    局部变量,就是在函数内部定义的变量 不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响 局部变量的...

  • “~”运算符

    “~”运算符(位非)用于对一个二进制操作数逐位进行取反操作。第 1 步:把运算数转换为 32 位的二进制整数。第 ...

  • Java学习笔记-第一天

    位运算符 位运算是直接对二进制进行运算. 异或运算(^):相同二进制位进行运算,结果是0.不相同二进制位运算结果是...

  • 10/17

    今天老师讲了进制转换和位运算。进制转换就是二进制、八进制、十进制、十六进制的相互转化,位运算包括按位与,按位或,异...

  • 运算符

    算术运算符 赋值运算符 比较运算符 逻辑运算符 位(bit)运算 二进制: 八进制: 十六进制 进制运算有反码 补...

  • 进制、位运算

    一、进制 在计算机编程中,整数可以通过十进制、二进制、八进制和十六进制来表示 1.十进制 a.基数:0,1,2,3...

  • 进制、位运算

    知识点整理 在计算机中,整数可以通过二进制、八进制、十进制、十六进制来表示 一.进制 a.十进制基数:0-9进位:...

  • 12.21

    今天星期四,今天是牛老师给我们讲课,主要讲了位的运算,包括位运算的运算符,二进制十进制十六进制的转换,位运算的应用...

  • Java运算符(位运算符)

    位运算符 位运算指的是可以按照二进制,八进制,十六进制进行数据处理。基本上考虑最多的还是二进制。在位运算之中,可以...

  • 【算法训练营学习笔记-Week07】位运算的妙用

    位运算 如何从十进制转换为二进制 位运算符号 含义运算符示例左移<<0011 ->0110右移>>0110 -> ...

网友评论

      本文标题:第7课 函数及其进制位运算

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