python生成机器码_学习Python第二天 机器码汇编码 高级汇编语言源码 常量变量 变量...

本文介绍了Python编程的第二天学习内容,涉及机器码、汇编码、高级汇编语言、常量变量和变量的本质。讲解了高级编程语言之间的区别,如静态编译型与动态解释型,并通过实例探讨了Python中变量的动态数据类型特性。同时,文章还提供了关于时间模块和用户输入的实践例子。
摘要由CSDN通过智能技术生成

学习Python第二天 机器码汇编码 高级汇编语言源码 常量变量 变量

学习Python第二天 机器码汇编码 高级汇编语言源码 常量变量 变量本质高级编程语言之间区别 例题 eval多项输入 time模块

bug由来 昆虫 臭虫

机器码 由二进制组成 是给计算机看 计算机可以直接执行

汇编码 由数字和字母和符号组成的一些代码

问题 汇编语言书写的代码必须按照计算的计算流程书写

写代码的流程就是在模拟计算机运行的流程

make space a in 3

make space b in 4

make space c in a add b

c=a+b

高级编程语言源码

由数字 字母 符号组成

可以按照人类的思维习惯去书写代码

int a=3;

int b=4;

int c=a+b;

源代码-机器码 编译

常量:不变的量

1.直接在程序中出现的数据(字面量)

2.将一个变量通过一些手段变成一个常量

限制变量的值不可修改

特殊的:在python中不存在第二种

变量:变化的量

变量的本质:进程空间中一个临时的存储空间

并且该临时存储空间有其自己的物理内存地址(由计算机随机分配)

因为变量的地址是随机的,所以我们不应该直接通过该变量的地址去操作数据

怎么办?我们可以给变量起别名 变量名

系统底层会自动为 变量名称和其针对的变量的地址 做一个表格

其实 在C语言里面 这个变量的地址 就是 指针

那么 该空间中存啥?先记住一点 无论是哪种语言 变量空间中永远不可能存数据本身 存的是数据的地址

常量池中 常量数据的地址

堆内存中 对象数据的地址

进程中 变量的地址

变量本质

int a=3;

int b=3;

int c ;指针变量

c=&b; c本身还是变量有自己的地址 c里存的是b的地址0456

printf("%d",c); 0x456 b的地址

printf("%d",&c);0x789 c的地址

printf("%d",c);0x333是一个常量的地址->常量

int **d; 首先d是个指针变量,意思可以存普通变量的地址,再加个*,也是指针变量,但是存的是另外一个指针的地址

d=&c;

printf("%d",&d);0x666

printf("%d",d);空间找 0x789

printf("%d",d);按照0789地址找c 打印0x456

printf("%d",d);*d=c c找b **d=b 打印0×333 是常量 所以打印 3

printf("%d",&&d);&d d的地址0×666 **&d找c 找c地址 再*一下 又在c 所以打印 0x456

变量永远存的是数据的地址

C 里面只有常量池中的地址 变量的地址

Java 里面只有常量池中的地址 堆中的地址 没有指针

Python 里面只有堆中的地址

Python中一切数据皆对象

高级编程语言之间区别

静态编译型 C C++ Java

编译:先将源代码整体编译完成 生成一个可执行程序

然后运行该可执行程序即可

一本英文书->翻译->一本中文书

c++

编译

VSC强制打开后乱码

.c->编译->.exe C语言

编译

.java->编译->.class Java语言

解释型:逐行进行编译且运行

同声传译 别人说一句英文 我翻译一句

动态解释型 Python JavaScript Matlab

静态:变量数据类型一旦确定 则不可更改 但是可以向下兼容

动态:变量数据类型随着数据的变化而变化

a=3

#id() 查看当前数据的地址

print(id(a)) # 查看a所存储的数据在堆内存中的地址

print(id(3)) # 查看3这个数据在堆内存中的地址

print(type(a))# int

两个地址一样

a=3.14

print(id(a)) # 查看a所存储的数据在堆内存中的地址

print(id(3.14)) # 查看3.14这个数据在堆内存中的地址

print(type(a))

数据类型变为浮点型。

a=“一二三四”

print(id(a))

print(id(“一二三四”))

print(type(a))

数据类型变为字符串。

“”" 三个引号

重点:

变量本身是内存当中的一个临时存储空间

该空间中存的数据的地址(数据都在堆)

变量的数据类型随着所存储的数据变化而变化

“”“

# 单行注释

“”“ 多行注释 三个双引号中间写 ”“”

练习题

print((分子)/(分母))

print((9.54.5-2.53)/(45.5-3.5))

print(4*(1-1/3+1/5-1/7+1/9-1/11))

print(4*(1-1/3+1/5-1/7+1/9-1/11+1/13-1/15))

#提示用户输入摄氏温度

cel=float(input(“Enter a degree in Celsius:”))

#利用已知公式求华氏温度

fah=(9/5)*cel+32

#输出

#print格式化输出

print("%.0f Celsius is %.1f Fahrenheit"%(cel,fah))

#提示用户输入半径和高

eval 同时输入两个A,B=eval(input(“Enter the A and B of a cylinder:”))

radius,length=eval(input(“Enter the radius and length of a cylinder:”))

pi=3.1415

#计算底面积 area

area=radius**2pi

#计算体积volume

volume=arealength

#输出

print(“The area is %.4f”%area)

print(“The volume is %.1f”%volume)

area 数据取决于pi的给定值 所以是正确的

#提示用户输入一个0~1000之间的数字

number=int(input(“Enter a number between 0 and 1000:”))

number=999

a=number%10 #9

number//=10 #99

b=number%10 #9

number//=10 #9

c=number%10 #9

sum=a+b+c

print(sum)

#提示用户输入一个分钟数:

#分钟//60 =整小时 小时//24=整天数 天数//365=整年 天数%365 剩下的天数

minutes=int(input(“Enter the number of minutes:”))

hours=minutes//60

days=hours//24

years=days//365

shengyu=days%365

print("%d minutes is approcimately %d years and %d days"%(minutes,years,shengyu))

#提示用户输入三个坐标点 六个数据

x1,y1,x2,y2,x3,y3=eval(input(“Enter three points for a triangle:”))

#三个坐标两两成边

side1=((x1-x2)**2+(y1-y2)**2)**0.5 #p1 p2

side2=((x2-x3)**2+(y2-y3)**2)**0.5 #p2 p3

side3=((x3-x1)**2+(y3-y1)**2)*0.5 #p3 p1

#计算半周长

s=(side1+side2+side3)/2

#计算面积

area=(s(s-side1)(s-side2)(s-side3))**0.5

#输出

print(“The area of the triangle is %.1f”%area)

#如何获取当前时间

#time模块 返回从1970年1月1日00:00:00至今所经过的毫秒数import time

import time

#提示用户输入时区

offset=int(input(“Enter the time zone offset to GMT:”))

#总秒数

totalSeconds=int(time.time())

#当前秒数

currentSeconds=totalSeconds%60

#总分钟数

totalMintues=totalSeconds//60

#当前分钟数

currentMintues=totalMintues%60

#总小时数

totalHours=totalMintues//60

#当前小时数

currentHours=(totalHours%24+offset)%24

print(“The current time is %.f:%.f:%.f”%(currentHours,currentMintues,currentSeconds))

检验一下我们是东八区输入8

正确

学习Python第二天 机器码汇编码 高级汇编语言源码 常量变量 变量相关教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值