Python入门篇——环境安装、标识符、基本数据类型与运算符

python

  • 版本python3.6.5~3.7.8
  • 教学版本python3.7.6
  • 安装包 提取码:r01t
  • IDE: VSCode 或者 pycharm(推荐)
  • pycharm安装包 提取码:d8k1
  • VSCode安装包 提取码:aqeb

python发展史

Python之父,荷兰人Guido van Rossum。他于1982年从阿姆斯特丹大学取得了数学和计算机硕士学位。

20世纪80年代中期,Python之父Guido van Rossum还在CWI(数学和理论计算机科学领域的研究中心,位于阿姆斯特丹)为ABC语言贡献代码。ABC语言是一个为编程初学者打造的研究项目。ABC语言给了Python之父Guido很大影响,Python从ABC语言中继承了很多东西:比如字符串、列表和字节数列都支持索引、切片排序和拼接操作。

在CWI工作了一段时间后,Guido构思了一门致力于解决问题的编程语言,他觉得现有的编程语言对非计算机专业的人十分不友好。于是,1989年12月份,为了打发无聊的圣诞节假期,Guido开始写Python的第一个版本。值得一提的是Python这个名字的由来,Python有蟒蛇的意思,但Guido起这个名字完全和蟒蛇没有关系。当Guido在实现Python的时候,他还阅读了Monty Python’s Flying Circus的剧本,这是来自一部来自20世纪70年代的BBC喜剧。Guido认为他需要一个简短、独特且略显神秘的名字,因此他决定将该语言称为Python。

1991年,Python的第一个解释器诞生了。他是由C语言实现的,有很多语法来自C,又受到了很多ABC语言的影响。有很多来自ABC语言的语法,知道今天还很有争议,强制缩进就是其中之一。要知道,大多数语言都是代码风格自由的,即:不在乎缩进有多少,写在哪一行,只要有必要的空格即可。而Python是必须要有缩进的,这也导致了很多其他语言的程序员开玩笑说“Python程序员必须会要用游标卡尺。”

Python1.0版本于1994年1月发布,这个版本的主要新功能是lambda, map, filter和reduce,但是Guido不喜欢这个版本。

六年半之后的2000年10月份,Python2.0发布了。这个版本的主要新功能是内存管理和循环检测垃圾收集器以及对Unicode的支持。然而,尤为重要的变化是开发的流程的改变,Python此时有了一个更透明的社区。

2008年的12月份,Python3.0发布了。Python3.x不向后兼容Python2.x,这意味着Python3.x可能无法运行Python2.x的代码。Python3代表着Python语言的未来。

Python入门篇——环境安装、标识符、基本数据类型与运算符_第1张图片

1.Hello Python

  • 安装完成之后打开cmd命令行,输入python检查是否安装成功
  • 输入print(‘Hello python’)

Python入门篇——环境安装、标识符、基本数据类型与运算符_第2张图片

2.python的语言性质

  • python是一种解释型语言,代码直接通过解释器解释,无需编译
  • python是一门面向对象的语言,在python里,一切皆对象。
  • python也是一门强类型的语言,也是一种动态的语言,亦可以做脚本,整体与JavaScript较为类似
  • python与Java在语法上有比较大的区别,所以以前学过Java但是没有学过python的同学需要认真注意细节
  • 在python中有两种类型的注释一种是行注释 用一个# ,另一种是块注释用三对引号
# 这是单行注释

"""
这是块注释
"""
'''
这也是块注释
'''

3.标识符与关键字

  • Python的关键字

and as assert break class continue
def del elif else except finally
for from False global if import
in is lambda nonlocal not None
or pass raise return try True
while with yield

需要注意的是,由于 Python 是严格区分大小写的,保留字也不例外。所以,我们可以说 if 是保留字,但 IF 就不是保留字。

  • 标识符:即变量名,函数名,类名等
  • python的标识符命名规则:由数字、字母、下划线组成,不能以数字开头,不能跟关键字重名
  • python的的变量定义不需要申明类型,也不需要分号结尾
  • Python命名规范同样遵循驼峰命名法
  • 代码规范遵循PEP8标准

4.数据类型

内置数据类型

在编程中,数据类型是一个重要的概念。

变量可以存储不同类型的数据,并且不同类型可以执行不同的操作。

在这些类别中,Python 默认拥有以下内置数据类型:

文本类型:(基本数据类型) str
数值类型:(基本数据类型) int, float, complex(了解复数类型,科学计数法)
序列类型:(引用数据类型) list, tuple, range
映射类型:(引用数据类型) dict
集合类型:(引用数据类型) set, frozenset
布尔类型:(基本数据类型) bool
二进制类型:(了解) bytes, bytearray, memoryview
  • 我们可以用type()函数来查看一个变量的数据类型,可以用id() 来查看变量的id

a = 10
b = "hello"
c = 3.0
d = True

print(type(a))  # 
print(type(b))  # 
print(type(c))  # 
print(type(d))  # 


# 字符串的其他表示形式
b = 'hello'
print(b)
b = '''hello'''
print(b)
  • 类型转换
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2020/8/6 23:45
# @Author  : GHong


a = 10.1
b = "10.1"

a = int(a)
print(a)   # 10
print(type(a))  #  float --> int

a = str(a)
print(a)  # 10
print(type(a))  #  int --> str

# b = int(b)  # ValueError  错误,原因字符串去掉括号的数值是一个float,一次性只能做一级转换

b = float(b)
print(b)  # 10.1
print(type(b))  #  str --> float

c = True
c = str(c)
print(c)  # True
print(type(c))  #  bool --> str

c = bool(c)
print(c)  # True
print(type(c))  #  str --> bool  注意!这里并不是因为字符串是True才转换成True,这里只要
print("--------")  
print(bool("False"))  # True
print(bool(""))  # 除非是空串  --> False
print("--------")

c = int(c)
print(c)  # 1
print(type(c))  #  bool --> int

5.运算符

  • 算术运算符

    • +、-、*、/
    • %、**(幂运算)、//(整除)
  • 赋值运算符

    • =
    • +=、-=、*=、/=、*=、**=、%=、//=
  • 注意,在python中没有 i++,i–等

  • 比较运算符

    • >、<、==
    • >=、<=、!=
  • 成员运算符

    • in
    • not in
运算符 描述 实例
in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
  • 逻辑运算符
    • and
    • or
    • not
运算符 逻辑表达式 描述 实例
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
or x or y 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False
  • 身份运算符
    • is
    • is not

身份运算符用于比较两个对象的存储单元

运算符 描述 实例
is is 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is not is not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

注: id() 函数用于获取对象内存地址

  • 位运算(了解)
    • & 、|、 ^
    • ~、<<、>>
运算符 描述 实例
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 (a & b) 输出结果 12 ,二进制解释: 0000 1100
| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 (a | b) 输出结果 61 ,二进制解释: 0011 1101
^ 按位异或运算符:当两对应的二进位相异时,结果为1 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1 (~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。
<< 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。 a << 2 输出结果 240 ,二进制解释: 1111 0000
>> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数 a >> 2 输出结果 15 ,二进制解释: 0000 1111
a = 10
b = 10.1
c = "你好"
bool = True

print(a + b)  # 20.1
# print(a + c) # TypeError
print(a+bool) # 11  True 会自动转换成 1 False 会自动转换成0

  • 当不同类型的数据进行运算时,解释器会自动向高级别的类型进行转型,如果无法转为同一类型的会报TypeError
str = "*"
print(str * 100)  # 会打印出100颗星
  • 如果int类型跟一个字符串做乘法,解释器会认为重复该字符n次
a = 10
b = 20
print(a > b)  # False 比较运算后会得到一个bool类型值

list = [0, 2, 4, 8]
print(a in list)  # False 成员运算符也是会得到一个bool类型数值

print(a is 10)  # True  身份运算符也是获得一个bool类型值
  • 逻辑运算解析
a = 10
b = 20
c = 30

print(a < b or c < b)  # True  or 相当于Java中的 ||
print(a < b and c < b)  # False and 相当于 &&
print(not a < b)  # False not 取反
  • ** 、 //
a = 10
b = 3
print(a ** b)  # 1000  // 幂运算  10^3
print(a // b)  # 3  整除,相当于取整数部分
print(a % b)  # 1  取余数部分

Python运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:(可以通过括号改变优先级,无序记忆)

运算符 描述
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 ‘AND’
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符

你可能感兴趣的:(Python,python,编程语言)