学习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的地址0
456
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格式化输出

.0 .1 表示保留零位和一位小数

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=area
length
#输出
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
在这里插入图片描述正确
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值