Python 简介、

Python 简介、
Python 简介、

编程:

	编写程序。

程序(软件):

	一组由计算机执行的指令(代码)

操作系统:

	隔离程序与硬件的差异,使程序开发简单化。
	Windows/Linux/Unix
  • 定义

     是一个免费,开源,跨平台,动态,面向对象的编程语言。
    
  • Python程序执行方式

     	交互式
     		定义:在命令行输入指令,回车即可得到结果。
     	步骤:
     	1.	打开终端
     	2.	输入:python3
     	3.	输入: print(“Hello World”)
     	4.	退出:exit()
     	
     	文件式
     		定义:将指令编写到.py文件中,可以重复运行程序。
     		步骤:
     	1.	创建文件:
     	/home/tarena/1902/month01/day01/hello.py
     	2.	打开终端进入指定目录
     	cd /1902/month01/day01
     	3.	运行python程序
     	python3 hello.py
    
  • Linux常用命令

     	pwd:  查看当前工作路径
      	cd: 进入目录
     	ls:查看当前目录中的文件
     …
     	其他的暂时Python用不到,
    
  • 练习1:

     创建python程序,输出你好,世界!
     	    通过文件式执行。
    
  • 程序执行过程

     由源代码转换为机器码的过程,分为编译和解释。
    
  • 编译:

     在程序执行之前,通过编译器将源代码转换为机器码。
     		-- 特点:运行时,计算机可以直接执行。例如:c语言
     		-- 优势:运行速度快。
     -- 缺点:不能跨平台,开发效率低。
    
  • 解释:

     在程序执行中,通过解释器将源代码转换为机器码。
     		-- 特点:运行时逐语句解释执行。
     		-- 优点:可以跨平台,开发效率高。例如:JavaScript
             -- 缺点:运行效率低。
    
  • python执行过程:

     源代码 –编译--> 字节码(特定python的表现形式.pyc) –解释--> 机器码
     |—————————1次—————————————|
    
  • Python 版本

     python 2.7(2020年结束维护)
     python 3.5(教学版本)
     python 3.8(最新)
     Python 解释器类型
     CPython(c语言开发)
     Jython(Java开发)
     IronPython(.Net开发)
     数据基本运算
     pycharm 快捷键
    

格式化代码 ctrl+alt+L

运行 shift+ctrl+f10

复制行 ctrl+d

注释 ctrl+/

  • 注释

     定义:给人看的,描述代码的文本。
     		 -- 单行注释: # 内容
     		 -- 多行注释:
     		 		 “””
               			  内容
              		 “””
    
  • 函数

     表示一个功能,制作函数的人叫做函数定义者,使用函数的人叫做函数调用者。
    

print(数据):将括号里面的数据,显示到控制台中。
变量 = input(“提示信息”):将用户在控制台中输入的内容赋值给变量

  • day01作业:

     练习1:在控制台中录入学生信息(姓名,年龄,性别,成绩。。。)
     	  在控制中显示学生信息。
     	  格式:xx的年龄是xx,性别是xx,成绩是xx。
     代码:day02/day01_exercise/exercise01.py
     练习2:看看教程 www.runoob.com
     练习3:逛逛社区 www.pythontab.com 
    

变量

  • 代码:

    """
        变量
    """
    
    a = 500
    b = 600
    c = a + b
    a = 800
    d = e = 1000
    f, g = 101
    print(f)  # 10
    print(g)  # 20
    
    # class = 1902  # 关键字
    # 01_class = 1902 # 数字开头
    class01 = 1902
    

Python 简介、

  • 定义:

     关联一个对象的标识。
    
  • 命名:

     -- 必须为字母数或下划线,后面跟着字母,数字,下划线。
     -- 不能使用保留关键字
    
  • 建议命名:

     见名知意
     	  字母小写,多个单词用下划线隔开。
     	   例如: class_name   student_name
    
  • 语法:

     变量名  = 表达式
     变量名1 = 变量名2 = 表达式
     变量名1,变量名2  =表达式1,表达式2
    
  • 练习1:

     画出下列代码内存图
     	a =”我”
     	b = “爱”
      	a =”python”
     	d = a + b
    
  • 练习2:

     在控制台中依次获取两个变量,然后交换变量,
     输出结果。
     	例如:请输入第一个变量:100
     请输入第二个变量:200
     ….
     第一个变量是:200
     第二个变量是:100
    
  • 数据类型

    • 代码:

      """
          数据类型
      """
      
      # 1. 整形
      # 二进制 0 1 2 3 4
      print(0b0,0b1,0b10,0b11, 0b100)
      # 八进制 0 7 8 9
      print(0o0,0o7,0o10,0o11)
      # 十六进制 0 10 161
      print(0x0,0xa,0xa1)
      
      # 2. 浮点型
      # 1.5 --> 150.0
      print(1.5e2)
      # 1.5 -->0.015
      print(1.5e-2)
      
      # 3. 字符串
      str01 = '我爱python'
      str01 = "我爱python"
      str01 = '''我爱python'''
      str01 = """我爱python"""
      
      # 类型转换
      a = 10
      re1 = "变量是:"+str(a)
      t1 = type(a)
      t2 = type(re1)
      print(t1,t2)
      
      print(re1)
      

    变量没有类型,关联的对象有类型。
    可以通过type方法,判断对象的类型。
    语法:变量 = type(数据)

  • None

     表示不存在的特殊对象
     作用:用来占位 a = None
     	 变量解除绑定 
    
  • 整形int

     	整数。包含正数,负数,0.
     	字面值:
     --- 十进制:100,-5, 0
     --- 二进制(0,1):0b0,0b1,0b10,0b11, 0b100
     --- 八进制(0-7):0o0,0o7,0o10
     --- 十六进制(0-9,a-f):0x0,0xa
    

    Python 简介、

小整数对象池:CPython中整数-5 到 256,永远存在小整数对象池中,不会释放。
对象池:缓存的机制。

  • 浮点型float

     小数,包含正数,负数,0.0
     字面值:
      --- 小数:1.5
      --- 科学计数法:1.5e1   0.5e-1
    
  • 字符串str

     用于记录文本信息。
     字面值:单引号  双引号  三引号
    
  • 布尔bool

     True 表示真(成立)
     False 表示假(假的)
    
  • 复数complex

     由实部和虚部组成的数字。
     虚部以j或J结尾
     字面值:
     5 + 3j     5j  
    
  • 数据类型转换

     转换为整形:int(数据)
     转换为浮点型:float(数据)
     转换为字符串:str(数据)
     转换为布尔:bool(数据)
     False : 0 ,0.0 , “” ,None
     True: 有值
    
  • 运算符

    • 算数运算符

       +     相加
       -		相减
       *		相乘
       /   小数除
       //  底板除(向下取整)
       %  取余数
       **  幂运算
      
  • 代码:

    """
        算数运算符
    """
    
    # 算数运算符
    num01 = 6
    num02 = 2
    # / 结果是float类型
    re01 = num01 / num02
    print(re01) # 2.5
    # // 商向下取整数
    re01 = num01 // num02
    print(re01) # 2
    # % 取余数
    re01 = num01 % num02
    print(re01) # 1
    # 作用1:一个数能否被另外一个数整除
    # num01  num02
    re01 = num01 % num02  ==  0
    print(re01)
    # 作用2:求整数的个位
    num03 = 15
    re01 = num03 % 10
    print(re01)  # 5
    re01 = num03 // 10
    print(re01) # 1
    
    # 5 * 5
    print( 5 ** 2) # 25
    # 5 * 5 * 5
    print( 5 ** 3) # 125
    
  • 增强运算符

     x += 1 等同于 x = x + 1 
     -=
     *=
     /=
     //=
     %=
     **=
     在变量基础上进行操作
    
  • 代码:

     """
         增强运算符
     """
     
     a = 5
     b = a + 1
     print(a) # 5
     # a = a + 1 # 6
     a += 1
     
     # 累加 个位 十位 百位 ...
     number = int(input("输入4位整数"))
     result = number % 10 # 个位
     result += number // 10 % 10 # 十位 1234 // 10 --> 123
     result += number // 100 % 10  # 百位 1234 //100 ->12
     result +=  number // 1000
     
     print(result)
    
  • 比较运算符

     >
     <
     == 等于
     >=
     <=
     != 不等于
     	结果是bool类型
    

练习1:在控制台中依次获取小时,分钟,秒,
计算总秒数。

答案:

"""
    小时/分钟/秒  --> 总秒数
"""
str_hour = input("请输入小时数:")
hour = int(str_hour)

minute = int(input("请输入分钟数:"))

second = int(input("请输入秒数:"))

result = hour * 3600 + minute * 60 + second
print(result)

练习2:在控制台中获取一个4位整数,
计算每位相加和。
例如:1234
1 + 2+3+4

答案:

"""
    在控制台中获取一个4位整数,
		计算每位相加和。
"""

number = int(input("输入4位整数"))
unit01 = number % 10  # 个位
unit02 = number // 10 % 10  # 十位 1234 // 10 --> 123
unit03 = number // 100 % 10  # 百位 1234 //100 ->12
unit04 = number // 1000 + "a"
result = unit01 + unit02 + unit03 + unit04
print(result)
# 调试
# 1.	加断点(程序运行到本行停止,没有执行本行)
# 2.	开始调试shift+alt+f9
# 3.	逐行执行 F7
# 4.	停止调试ctrl + f2
  • 逻辑运算符
    • 与 and

       表达并且,一假俱假。
       re = True and  True # True
       re = False and  True # False
       re = True and  False # False
       re = False and False # False
      
    • 或 or

       表达或者,一真则真
       re = True  or True # True
       re = False or  True # True
       re = True  or False # True
       re = False or False # False
      
    • 取反 not

       re = True
       re = not re
       print(re) # False
      
    • 作用

       比较两个bool值关系。
      

练习:在控制台中输入一个年份
判断是否为闰年
条件1:年份能被4整除,但是不能被100整除
条件2:年份能被400整除

  • 身份运算符

代码:

"""
    身份运算符
"""


a = 500
b = 600
c = a
re01 = a is b
re02 = a is c
print(re01) # False
print(re02) # False
# id函数返回变量所关联的对象地址
print(id(a),id(b),id(c))


# 文件式python对一下代码做了优化
# 优化:创建一个800对象	
# 交互式python中就是2个对象
num01 = 800
num02 = 800
print(id(num01),id(num02))
print(num01 is num02)# true

is : 判断两个对象是否为一个对象
is not:与is相反

  • 语法:

     变量 = 变量1   is  变量2
     结果是bool类型
    
  • 优先级

     从高到低:
     算数运算符
     比较运算符
     增强运算符
     逻辑运算符
     小括号最高
    (1 +  2) * 5
    
  • 调试步骤

     	目的:
     1.	理解程序执行过程
     2.	排除逻辑错误(不是Error)
     	
     1.	加断点(程序运行到本行停止,没有执行本行)
     2.	开始调试shift+alt+f9
     3.	逐行执行 F7
     4.	停止调试ctrl + f2
     错误信息
       File "/home/tarena/1902/month01/day02/exercise03.py", line 10, in <module>
         unit04 = number // 1000 + "a"
     TypeError: unsupported operand type(s) for +: 'int' and 'str'
    

File “文件路径”, line 行号, in

  • 错误代码

     XXXError: 错误描述
    
  • 作业:

     使用二进制输出1  3   5
     八进制  1  8  10
     十六进制  1  13  20
      在控制台中获取圆形的半径,
     输出面积(3.14 * r 的平方)与周长(2 * 3.14 * r)
     在控制台中输入总秒数,计算几小时零几分钟零几秒钟。
     读书:Python编程:从入门到实践 第二章