自学内容网 自学内容网

Python | 第五章节 | 进制

P40 标识符 2024/8/15

1、Python对各种变量、函数和类等命名时使用的字符序列称为标识符

2、凡是自己可以起名字的地方都叫标识符num1 = 90

一、标识符的命名规则

1、由26个英文字母大小写,0-9 ,_组成

2、数字不可以开头

3、不可以使用关键字,但能包含关键字

4、Python区分大小写

5、标识符不能包含空格

代码演示

# @Author :zjc
# @File   :013_identifier_name.py
# @Time   :2024/8/15 9:20



# 1num = 2
# 1、由26个英文字母大小写,0-9 ,_组成
num9_0 = 1
num~ _1 = 2
# 2、数字不可以开头
 1num = 1
# 3、不可以使用关键字,但能包含关键字
if = 500
my_if = 500
# 4、Python区分大小写
n = 100
N = 200
# 5、标识符不能包含空格
myname = 1
my name = 1

小练习

image-20240815113233623

二、标识符命名规范

  • 变量:
    • 变量要小写,若有多个单词,使用下划线分开。常量全部大写
num = 20
friend_age = 21
PI = 3.1415926
  • 函数:
    • 函数名一律小写,如果有多个单词,用下划线隔开。另外,私有函数以双下划线开头
def my_fuc(var1, var2):
    pass
def _private_func(var2, var2):
    pass
  • 类:
    • 使用大驼峰命名

1.驼峰命名法有两种,大驼峰命名和小驼峰命名

2.大驼峰命名,多个单词的首字母用大写开头,比如:MyName

3.小驼峰命名,第1个单词的首字母用小写,后面的单词首字母都大写,例如: myName

class Fco:
    pass

P41 关键字 2024/8/15

一、基本介绍

关键字的定义和特点(提示:不用背)

定义:被Python语言赋予了特殊含义,用做专门用途的字符串(单词)

image-20240815115726650

image-20240815122828379

P42 键盘输入 2024/8/15

一、input 函数

基本介绍:在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取

image-20240815170231426

代码演示

image-20240815170539592

# @Author :zjc
# @File   :015_input_info.py
# @Time   :2024/8/15 17:06

# 要求:可以从控制台接收用户信息,【姓名,年龄,薪水】,如下图:

name = input("请输入姓名:")
age = input("请输入年龄:")
score = input("请输入分数:")

print("\n输入的信息如下:")
print("name",name)
print("age",age)
print("score",score)

# 细节思考:小伙伴请回答,从控制台接收到的数据类型是件么?->str
# 1. 注意接收到的数据是str
# 2. 如果我们希望把接收到的数据进行算术运算,则需要进行类型转换
print(type(score))
print(type(age))

print(10 + float(score))

# 当然我们也可以在接收数据的时候直接转成需要的类型
age = int(input("请输入年龄"))

print("age的类型:",type(age))

image-20240815175027275

P43 本章小结 2024/8/16

image-20240816080233408

image-20240816080308212

P44 进制说明 2024/8/16

进制区一不幸布相对优较困难,涉及到计算机底层的一些机制,理解起来有一些难度。

一、基本介绍

–对于整数,有如下表示方式

  1. 2进制: 0,1﹐满2进1. 以0b或0B开头。
  1. 8进制: 0-7,满8进1. 以数字0o或者0O开头表示。
  1. 10进制:o-9,满10进1。

  2. 16进制: 0-9及A(10)-F(15),满16进1.以Ox或OX开头表示。此处的A-F不区分大小写

image-20240816081403928

image-20240816081420058

P45 其他进制转十进制 2024/8/16

image-20240816081927369

示意图

image-20240816082018923

一、二进制转换成十进制

规则:从最低位(右边)开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和。

  • 案例:请将0b1011转成十进制的数
0b1011
1*2^0 + 1*2^1 + 1*2^3 =1+2+8=11

二、八进制转十进制

规则:从最低位(右边)开始,将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和。

  • 案例:请将0o234
0o234
4*8^0 + 3*8^1 + 2*8^2 = 4+24+128 =156 

三、十六进制转十进制

规则:从最低位(右边)开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和。

  • 案例:请将0x23A转成十进制的数
0x23A
10*16^0 + 3*16^1 + 2*16^2 = 10+48+512 = 570

四、课后习题

1、课堂练习:请完成下面的进制转换(一定要自己动手练习)

0b110001100转成十进制-> 4+8+128+256=396
0o2456转成十进制 ->6*8^0 + 5*8^1 + 4*8^2 + 2*8^3 =6+40+256+1024=1326
0xA45转成十进制  ->5*10^0 + 4*16^1 + 10*16^2 =5+64+2560=2629

P46 十进制转其他进制 2024/8/16

image-20240816084950801

一、十进制转二进制

规则:将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。

  • 案例:请将34转成二进制=?

image-20240816085702320

二、十进制转八进制

规则:将该数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。

  • 案例:请将131转成八进制=?

image-20240816090019627

三、十进制转十六进制

规则:将该数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。

案例:请将237转成十六进制=?

image-20240816090610479

四、课堂练习

123转成二进制=>?

678转成八进制=>?

8912转成十六进制=>?

P47 二八十六进制间转换 2024/8/16

image-20240816091941792

一、二进制转八进制

规则:从低位开始,将二进制数每三位一组,转成对应的八进制数即可。

  • 案例:请将ob11010101转成八进制
11 010 101
3   2   5  --->0o325

二、二进制转十六进制

规则:从低位开始,将二进制数每四位一组,转成对应的八进制数即可。

  • 案例: 请将0b11010101转成十六进制
1101 0101
13     5  ---> 0xD5

练习

image-20240816093223267

三、八进制转二进制

规则: 将八进制数每1位,转成对应的一个3位的二进制数即可。

案例: 请将0o237转成二进制

2     3    7
010  011  111  -->0b10011111

四、十六进制转二进制

规则: 将十六进制数每1位,转成对应的4位的一个二进制数即可

案例: 请将0x23B转成二进制

2     3   B(11)
0010 0011 0111   --->0b1000110111

练习

image-20240816094533424

P48 原码补码反码 2024/8/16

位运算的思考题:

1、请看下面的代码段,回答a,b,c,d结果是多少?

#代码
a=1>>2#1向右移2位
b=-1>>2
c=1<<2
d=-1<<2

a,b,c,d结果是多少

print("a=", a)
print("b=", b)
print("c=", c)

2、请分析下面的表达式运算的结果:(位操作)

print(~2)# 按位取反
print(2&3)
print(2|3)
print(~-5)
print(13&7)
print(5|4)
print(-3^3)

一、基本介绍

1、二进制是逢2进位的进位制,0、1是基本数字符号

2、现代的电子计算机技术全部采用的是二进制,因为它只使用O、1两个数字符号,非常简单方便,易于用电子方式实现

3、计算机内部处理的信息,都是采用二进制数来表示的。二进制(Binary)数用O和1两个数字及其组合来表示任何数。进位规则是"逢2进1",数字1在不同的位上代表不同的值。

二、原码,反码,补码

书上原码,反码,补码的解释过于复杂,老韩这里精简几句话:
(这里有一定难度,小伙伴认真听,一定可以听懂,老韩也尽最大努力让大家掌握)

1、二进制的最高位是符号位:0表示正数,1表示负数

print(sys.getsizeof(3))  # 28 这里的3有28个字节

# 我们假定用一个字节来表示
3 =>  0000 0011
-3 => 1000 0011

2、正数的原码,反码,补码都一样(三码合一)

3=> 原码:0000 0011
反码:0000 0011
补码:0000 0011

3、负数的反码=它的原码符号位不变,其它位取反(0->1 1>0)

-3 => 原码:1000 0011
  反码:1111 1100

4、负数的社码=它的反码+1,负数的反码=负数的补码–1

-3 => 原码:1000 0011
  反码:1111 1100
  补码:1111 1101

5、5、0的反码,补码都是0
6、在计算机运算的时候,都是以补码的方式来运算的

例如:
1+3 =
1的补码:0000 0001
3的补码:0000 0011
1+3=>   0000 0100 补码

7、当我们看运算结果的时候,要看他的原码

1+3=>   0000 0100 补码-->原码0000 0100 --->4

# 1-3 =>
1的补码: 0000 0001

-3的原码:1000 0011
 反码:1111 1100
 补码:1111 1101
# 再对补码进行运算
# 1-3 =  1+(-3)
0000 0001
1111 1101
-
1111 1110 补码 --->反码1111 1101--->原码1000 0010 -2

P49 位运算(1)2024/8/16

一、六个位运算符号

1、~ 按位取反

  • 规则:对数据的每个二进制位取反,即把1变为0,把0变为1
# 分析 ~2,~-2的结果是多少?
-2的原码: 1000 0010
反码: 1111 1101
    补码: 1111 1110
~取反
  0000 0001 补码-->0000 0001 原码 (正数三码合一)--> 1 
    
2的补码:0000 0010
~取反
    1111 1101 补码-->反码 1111 1100 -->原码1000 0011--> -3

2、& 按位与

  • 规则:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为О
# 分析 2 & 3的结果是多少?
2的补码:0000 0010
&
3的补码:0000 0011
    0000 0010 -->2

3、^ 按位异或

  • 规则:当两个对应的二进位相异时,结果为1
# 分析2^-3的结果是多少?
2的补码:0000 0010
^
-3的原码:1000 0011
反码:1111 1100
    补码:1111 1101
    
2^-3:    1111 1111 补码-->1111 1110 反码-->原码 1000 0001 -->-1

4、| 按位或

  • 规则: 只要对应的二个二进位有一个为1时,结果位就为1
# 分析2|3的结果是多少?
2的补码:0000 0010
3的补码:0000 0011
2|30000 0011 --> 3

原文地址:https://blog.csdn.net/ZJC744575/article/details/142599798

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!