编程基础

编程基础

2.1 基本语法

  1. 注释

    # 单行注释,以“#”开头,下一行结束
    “““
    多行注释,三对双引号
    ”””
    ‘‘‘
    多行注释,也可以是三对单引号
    ’’’
    
  2. 标识符和关键字

    在Python语言中,对程序中的各个元素进行命名,以便区分,这种用来标识变量、语言、类等元素的符号称为标识符

    标识符有字母、数字、下划线组成,并且只能由字母和下划线作为标识符的开头,但是注意

    • 命名时应注意见名知义的原则
    • 系统已用的关键字不得作为标识符
    • 下划线对于解释器有特殊的含义,建议避免使用下划线作为标识符的开头
    • 标识符区分大小写
# 查询当前版本的关键字
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
  1. 语句换行

    Python一般是一条语句占用一行,但是有时候一条语句太长,就需要换行,在首行的末尾加上反斜杠“\”就可以写下一行

    print("夫诸,中国古代神话传说中的神兽,是一种长着四只角的鹿。\
    夫诸的形状像白鹿而且有四个角,最开始出现于先秦时期它的情状似温柔洁净,\
    喜欢四处角戏,它一出现,其地必定是大水时期,古代人民视其为水灾的兆星。")
    

    但是还有一点,在[]、{}、()中换行是不需要反斜杠的

    print(["道可道,非常道;",
           "名可名,非常名。"])
    
  2. 缩进

    Python语言使用缩进来表示代码块,这点不同于java和c++:

    a=100
    if a>99:
           print("a")
           print("True")
    else:
           print("false")
    

    在这里需要注意的是同样的缩进表示一个代码块,如果同一个代码块缩进不同就会报错,如:

    a=100
    if a>99:
           print("a")
             print("True")# 缩进不一致
    else:
           print("false")
    

    同样还要注意使用四个空格作为缩进,而不是tab键,因为不同的编辑器中代表的长度不一样。

2.2 变量和数据类型

  1. 变量

    变量是编程中最基本的单元,它引用存储的数据对象

    例如:age=18,使用了age变量来引用了18这个数据

image-20210904074828968

注意:将age修改为20,输出的值就变成了20,如果查询age修改前后的地址,是不一样的,如果再定义一个page,将它的数据修改为20,此时可以发现page的地址和age是相同的。

  1. 对象

    • java对象是分配在堆上的,存储数据;引用是在堆栈中开辟的内存空间,用于引用某一个对象。
    • Python中的对象是内存空间+数据。对象有类型,不同类型的对象可以拥有不同类型的数据
  2. 引用

    • 变量和对象之间的关系,是指针指向的关系 。
    • 一个对象,和不同的变量可以存在着多个引用关系。
    • 变量是无类型的,想关联谁就指向谁。
    age=18
    print(id(age))
    age=20
    print(id(age))
    

    输出结果:

    140714103438944
    140714103439008

  3. ==判断两个对象所储存的数据的值是否相等

    is 判断两个变量是否引用同一个对象

  4. 数据类型:为了充分利用内存空间,为不同的数据指定了合适的类型。

    • 数字类型number
      • 整型int
        • 布尔类型bool
      • 浮点型float
      • 复数类型complex
    • 字符串类型str
    • 列表类型list
    • 元组类型tuple
    • 集合类型set
    • 字典类型dict
  5. 整型数据:二进制0b(0B)、八进制0o(0O)、十六进制0x(0X)

    image-20210907204148728

进制转换(得到整数的字符串表示形式)

a=10
b=bin(a) #二进制转换
c=oct(a) #八进制转换
d=hex(a) #十六进制转换
print(b,c,d)
print(b[2:],c[2:],d[2:])

输出结果:

0b1010 0o12 0xa
1010 12 a

补充int()的用法:

class int(x,base=10) #x是数字或者字符串,base是进制数,默认是十进制,返回整型数据
int() #无参数时返回0
int(3.6) #3
int('12',16) #如果是带参数base的话,参数要用字符串形式,因为输入纯数字的时候int()的作用是取整
int("3.5",8) # 报错,str必须为整数
int("1010",2) # 1010是正确的二进制格式

总结:int()对纯数字的作用是取整,进行进制转换必须用字符串类型,而且字符串中的数字为整数,base为2时进行的是将前面的二进制转换为十进制,其余base则是将前面的字符串转换成对应的进制数。

注意:利用[]其中加上数字,可以从这个数字之后进行截断,显示后面的内容,叫做切片

可以算大值

Data=2**13654 ## 两个**表示多少次方
print(Data)

输出结果:

183468198253262624483936350897408452847270346304160814822591220917911943602883...(后面还有很多)

  1. 浮点类型:

    f1=1.1234567891e10 #小数点后移十位
    print(f1)
    
    d1=int(f1) #浮点型变为整型
    print(d1)
    

    输出结果:

    11234567891.0
    11234567891

    d1=1.123456789e5
    print(d1)
    f1=int(d1) #取整数时截断后面的小数
    print(f1)
    f2=float(f1) #变回浮点型后面的小数不会恢复
    print(f2)
    

    输出结果:

    112345.6789
    112345
    112345.0

  2. 复数类型:

    复数的实部和虚部都是浮点数类型。

    print("===========")
    c1=1+2j #直接输出有括号
    print(c1)
    print("===========")
    c2=complex(1,2) #构造
    print(c2)
    print("===========")
    print(c1+c2) #运算
    print(c1-c2)
    print(c1*c2)
    print(c1/c2)
    print("===========")
    a=complex(1,3)
    print(a.real) #实部
    print(a.imag) #虚部
    print(a.conjugate()) #共轭复数
    

    输出结果:

    ===========
    (1+2j)
    ===========
    (1+2j)
    ===========
    (2+4j)
    0j
    (-3+4j)
    (1+0j)
    ===========
    1.0
    3.0
    (1-3j)
    

    注意:虚部1和-1不可以省略

    补充:共轭复数:共轭复数,两个实部相等,虚部互为相反数的复数互为共轭复数(conjugate complex number)。当虚部不为零时,共轭复数就是实部相等,虚部相反,如果虚部为零,其共轭复数就是自身(当虚部不等于0时也叫共轭虚数)。复数z的共轭复数记作z(上加一横),有时也可表示为Z*。同时, 复数z(上加一横)称为复数z的复共轭(complex conjugate)。

  3. 布尔类型:

    b1=True
    b2=False
    print(b1+1)
    print(b2+1)
    print(b1+b2)
    

    输出结果:

    2
    1
    1

    print(True+1)
    print(True-1.233+100)
    print(True+100-1.235+(1+2j))
    

    输出结果:

    2
    99.767
    (100.765+2j)

    • 由此可以得出:bool-->int-->float-->complex

       每一个python对象都有布尔值,下面的对象的布尔值为False:
      

    image-20210907204612651

        其余的布尔值都为真
    
    • 可以判断布尔值为什么的函数:

      print(bool([]))
      print(bool(0))
      print(bool({}))
      print(bool(()))
      print(bool(0.0))
      print(bool(0+0j))
      print(bool(""))
      print(bool(''))
      

      输出结果:

      False
      False
      False
      False
      False
      False
      False
      False

      判断什么类型的函数:

      a={}
      print(type(a))
      

      输出结果:

      <class 'dict'>


      数据类型上是由存储的数据类型决定的。

      内置函数type():对于不同类型的数据进行检测

      a="a"
      print(type(a))
      

      输出结果:

      <class 'str'>

      内置函数isinstance():判断数据是否属于某个类型

      a="a"
      print(isinstance(a,int))
      

      输出结果:

      False


    • 数据类型的转换:

      函数 说明
      int(x/base) 将一个数字或base(代表进制)类型的字符串转换为整数
      float(x) 将x转换为一个浮点型数据
      complex(real,imag) 创建一个复数

2.3 运算符


算数运算符
print(10//3) #取整
print(10/3) #除法
输出结果:3
3.3333333333333335
运算符 说明
**
% 取余
// 取整
/ 除法

函数:divmod()除法之后取余

赋值运算符
a=b=12 #为多个变量赋相同的值
a,b=1,3 #为多个变量赋不同值

因此,交换数值:

a,b=1,2
a,b=b,a
print(a,b)
# 输出结果:2 1

输入:

data=input().split() #得到键盘输入,split默认按照空格分割
# data=input().split(" ")
print(data)
data=input().split()
m=map(int,data)#两个参数,函数名称,变量,把变量转换为对应的函数
l=list(m)
print(sum(l)) #对list进行求和

data=input().split()
m=map(int,data)#两个参数,函数名称,变量,把变量转换为对应的函数
# l=list(m) 
print(sum(m)) #对m可以直接求和

注意:m被list赋值给l之后m的数据就被取出了,m里面的数据只能引用一次。


输出:

a,b,c=1,2,3
print(a,b,c,sep='',end='')
print(1000)
# 输出结果:1231000

a,b,c=1,2,3
print(a,b,c,sep='')
print(1000)
# 输出结果 :
# 123
# 1000
# 默认换行

函数:sep打印时的分隔符,end打印时的结束符

print("%+10d"%1234) 

d 整数,+右对齐,-左对齐,%赋值

f1=1.234567
print("%.4f %f" % (f1,f1))
# 输出结果:1.2346 1.234567

注意:取两个以上的值需要加小括号,取几位小数的时候会四舍五入。

逻辑运算符
运算符 说明 示例 意义
and a and b 如果a的布尔值为True,则返回b,否则返回a
or a or b 如果a的布尔值为True,则返回a,否则返回b
not not a a为True,返回False
  • and运算:

    当a为True,b为True,返回b

    当a为True,b为False,返回b

    当a为False,b为True,返回a

    当a为False,b为False,返回a

位运算
成员运算符
A=[1,2,3]
print(1 in A,end=" ")
print(0 not in A)
# 输出结果:  True True
身份运算符

is

posted @ 2021-09-04 08:04  甲乙丙I  阅读(165)  评论(0)    收藏  举报