Python入门2——编程的基本概念(1)

一、Python程序的构成

1、Python程序由模块组成。一个模块对应Python源文件,一般后缀名为:.py

2、模块由语句组成。运行Python程序时,按照模块中语句的顺序依次执行

3、语句是Python程序的构造单元,用于创建对象、变量赋值、调用函数、控制语句等

二、对象、变量

1、对象

Python中的一切均为对象,对象由三部分组成

(1)identity        标识(用于唯一标识对象,通常对应对象在计算机中内存的地址);

(2)type        类型(表对象存储的“数据”类型,可使用type获得对象的所属类型);

(3)value        值(对象所存储的值,可使用print()打印出值);

对象的本质:一个内存块,拥有特定的值,支持特定类型的操作

2、变量

在Python中,变量也称为对象的引用(reference)

变量通过地址引用了"对象",变量存储的就是对象的地址。

变量位于栈内存(Stack Memory)中,对象位于堆内存(Heep Memory)中。

注:(1)python是动态类语言,变量不需要显式声明类型,根据变量引用的对象,python解释器自动确定数据类型(如java中:int b=3,python中:b=3);

(2)python中的变量没有类型,对象有类型

a=3#变量a被放进栈(stack)里,3是一个对象,3被放进堆(heep )里,此处存的是a的地址:2529296711984,通过该地址可以找到该对象
print(a)#value
print(id(a))#2529296711984
print(type(a))#int类型
b="中国通史"#变量b被放进stack里,中国通史是一个对象,中国通史被放进heep里,此处存的是b的地址:2529298141840,同理可以找到对象中国通史的地址
print(b)#value
print(id(b))#2529298141840
print(type(b))#Str类型

三、标识符规则(含标识符命名规则)

(1)区分大小写;

(2)第一个字符必须是字母、下划线,数字不能作首字符(不能有其他的符号);

(3)不能使用关键字;

(4)以双下划线开头和结尾的名称通常含有特殊含义,尽量不使用该种写法;

(5)python标识符命名规则

         模块和包名:全小写字母,尽量简洁,多个单词之间使用下划线(eg:math、os、sys)

         函数名:全小写字母,多个单词之间使用下划线(eg:phone,my_name)

         类名:首字母大写,采用驼峰规则(MyPhone、MyClass、Phone)

         常量名:全大写字母,多个单词之间使用下划线(SPEED、MAX_SPEED)

四、变量、常量和简单赋值语句

(1)变量的声明和赋值,用于将一个变量绑定到一个对象上,格式:变量名=表达式

eg:a=1234        在运算过程中,解释器先运行右边的表达式,生成一个代表表达式运算结果的对象,然后将该对象地址赋给右边的变量

注:变量在使用前必须先被初始化(即赋值)

print(c)

 报错如下

Traceback (most recent call last):
  File "C:\Users\HP12\PycharmProjects\mypro01\2023_10_28_2.py", line 1, in 
    print(c)
NameError: name 'c' is not defined

变量c在使用前未被赋值,因此报错  'c' is not defined

(2)常量

Python不支持常量,即:没有语法规则限制改变一个常量的值,只能约定常量的命名规则,以及在程序的逻辑上不对常量的值作出修改。

MAX_SPEED=120
print(MAX_SPEED)#120
MAX_SPEED=140#逻辑上不做修改,但实际上是可以改的
print(MAX_SPEED)#140


(3)删除变量和垃圾回收机制

通过del语句删除不在使用的变量;

a=9
del a
print(a)

若对象未被变量引用,就会被垃圾回收器回收,清空内存空间

五、链式赋值和系列解包赋值

(1)链式赋值

用于同一对象复制给多个变量

x=y=123#链式赋值,如有需要,可以一直链式下去
print(x,y)

(2) 系列解包赋值

系列数据赋值给对应相同个数的变量(个数保持一致)

eg:使用系列解包赋值实现变量值交换

a,b=1,2
a,b=b,a#变量值互换
print(a,b)#2,1

六、最基本内置数据类型

变量没有类型,但对象有类型(a(变量)=3(对象)),变量通过地址引用对象

(1)int(2345,20,88)整型

(2)float(3.14,314e-2)浮点型

(3)bool(True,False)布尔型

(4)str("yy是一只小狗",”shjhuyde“单双引号都可)字符串型

a=123
b=3.999
b2 = 314e-3
c=True

print(type(a))
print(type(b))
print("b2:"+str(b2))
print(type(c))

 七、数字和基本运算符

(1)+(加)-(减)*(乘)与其他语言中的计算一致;

(2)浮点数除法:单斜杠/(eg:8/2=4.0);

          整数除法:双斜杠//(eg:9/8=1);

          注:1、 0不能作为除数

 (3)取余,也称模:%(eg;7%4=3);

(4)幂:**(eg:2**3=8);

(5)使用divmod函数可以同时得到商和余数(>>>divmod(13,3) (4,1))它返回的是一个元组(,)

a=6/2#3.0   浮点数除法
print(a)

b=9//6#1    整数除法
print(b)

c=5%3#2     取余
print(c)

d=5**5#3125     幂
print(d)

八、整数

(1)范围:任意大,无穷(Python3可以做超大数的计算,而不会造成“整数溢出”,这也是Python特别适合科学运算的特点);

(2)三种进制 0b或0B:二进制(0 1) 0o或0O:八进制(0 1 2 3 4 5 6 7) 0x或0X:十六进(0 1 2 3 4 5 6 7 8 9 a b c d e f);

(3)使用int()实现类型转换(): 1、int(浮点数)=整数 2、int(True或False)=1或0 3、int(字符串类型);

a=int(9.9)#9
print(a)
b=bool(False)#0
print(b)
c=int(True)#1
print(c)
d=str("1235")#1235
print(d)
#e=int("12345aaaa")为非法格式,不可运行,报错哦

(4)整数和浮点数混合运算时,表达式结果自动转型成浮点数(eg:2+9.0=11.0) 注:其他类型同理可得(eg;float()、bool()、str())

九、浮点数

(1)浮点数用科学计数法表示(eg:3.14可表示为314E-2或者314e-2),这些数字在内存中也是按照科学计数法存储;

(2)类型转换和四舍五入

类似于int(),我们也可以使用float()将其他类型转化为浮点数;

整数和浮点数混合运算时,表达式结果自动转型成浮点数;

 (3)round(value)可以返回四舍五入的值。产生新的值,但不改变原有值

#科学计数法
b=314E-2
print(b)

c=9.5
d=round(c)#10   四舍五入
print(d)

十、布尔值

(1)在poython语言底层,会将布尔值True看作1,将布尔值False看作0,尽管从表面上看,True和1、False和0是两个完全不同的值,但实际上他们是相同的

(2)在python语言中有一些特殊的布尔值类型为False,例如False,0.0,空值None、空序列对象(空列表、空元祖、空集合、空字典、空字符串)、 空range对象、空迭代对象,而其他的非空情况,均为True 17、运算符

a=True
b=5
print(a+b)#6
print("空字符串的布尔类型的值:",bool(""))#False
print("空列表布尔类型的值:",bool([]))#False
print("None布尔类型的值:",bool(0))#False
print("字符串True和False转成布尔都是True:",bool("False"))#True

十一、增强型运算符

增强型运算符,运算符+、-、*、/、//、**、%、赋值符=结合可以构成“增强型赋值运算符”

1、+=(a+=2等价于a=a+2)

2、-=(a-=2等价于a=a-2)

3、*=(a*=2等价于a=a*2)

4、/=(a/=2等价于a=a/2)

5、//=(a//=2等价于a=a//2)

6、**=(a**=2等价于a=a**2)

7、%=(a%=2等价于a=a%2)

x=y=7
y+=x#14
print(y)
x=y=6
y+=x*5#等价于y=y+(x*5)
print(y)#36
x=y=3
y*=x+6#等价于y=y*(x+6)
print(y)#27

十 二、时间的表示

(1)计算机中时间的表示是从“1970年1月1日00:00:00”开始,以毫秒(千分之一秒)进行计算,也称1970年这个时刻称为“unix时间点”, 这样我们就把时间全部用数字来表示了

(2)python中可以通过time.time()获得当前时刻,返回值以秒为单位,带微秒(千分之一毫秒)精度的浮点值。

import time
b=int(time.time())
print(b)
totalMinutes=b//60
print(totalMinutes)
totalDays=totalMinutes//(60*24)
print(totalDays)
totalYears=totalDays//365
print(totalYears)

十三、海归绘图——定义多点坐标绘出折线并计算起始点和终点距离

import turtle
import math
#定义多个点的坐标
x1,y1,x2,y2,x3,y3,x4,y4=100,100,100,-100,-100,-100,-100,100
#绘制
turtle.penup()
turtle.goto(x1,y1)
turtle.pendown()
turtle.goto(x2,y2)
turtle.goto(x3,y3)
turtle.goto(x4,y4)
#计算起始点和终点的距离
distance=math.sqrt((x1-x4)**2+(y1-y4)**2)
turtle.write(distance)
turtle.done()#该语句让程序等待,而不是直接退出窗口

你可能感兴趣的:(python,开发语言)