一、 python是什么?
优势:简单, 可以跨平台
劣势:执行效率没有C语言那么高
python是解释型语言,逐行编译解释,在不同的系统windows与Linux,需要不同的解释器来编译。
而编译型语言,所对应的是系统,全部编译完之后进行运行。
python发展史: 2.x, 3.x
编程语言分类:
1. 编译型: 执行效率高. 一次编译. 到处运行 2. 解释型: 执行效率不如编译型. 逐行的解释执行 一般跨平台性比较好 3. 混合型: 先编译, 后解释执行 编译型 -> 依赖操作系统进行编译 -> 依赖操作系统的 解释型 -> 不依赖操作系统的. 解释器上运行. 依赖的是解释器
python常见的解释器:
CPython: 官方 pypy: 执行效率提高. 相当于把python变成了编译型 IPython: 交互方式比较特别(数据分析, 机器学习, 人工智能) IronPython: .Net Jython: java+python
二、开始第一个python
1. 打开cmd. 输入python+回车. 进入到cmd模式 2. 把你的代码写在py文件中. 通过python命令去执行这个文件
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 print("hello world!") # 回车执行第一个程序 5 exit() # 退出 6 >>> python3 day01.py
三、python基础
1.数据的基础类型(八种基础类型介绍)
int 整数(Integer)
str 字符串(String)
bool 布尔值(boolean), 如:True 真,False 假
float 浮点数 在计算机中存储是有误差的 如: 3.1415926
list: 列表() 一堆数据放一起. 方便操作 如:[1,2,3,4,5]
tuple 元组() 元组是不可变的列表 如:(1,2,3,4,5)
dict: 字典{} 一对一对的存储数据,如:{k:v,k2:v2,k3:v3}
set: {} 去除重复数值,里面的数据不能重复 如: {1,2,3,4,5}
2.变量和常量
变量:在内存暂存数据,方便调用。 使用变量的目的:在复杂程序调用过程,找到一个数据。 变量值 = 值 --difined(定义) 变量命名规范: (1):数字不能当变量,数字不能当开头。 (2):不用python中的关键字。 (3):只能用数字,字母,下划线组成(有一定含义,不出现中文,不出现拼音) (4):推荐使用下划线。
5.常量:一般不会改变的常量。(不存在绝对常量) 命名:全部大写字母组成,有一定含义。
3.打印和输入
input() 输入用户信息, 用户交互: 语法:变量 = input(输入信息) 阻塞式 input 收到数据都是字符串。 一般情况基本数据类型转化,用数据类型() int() str() print() 打印变量信息 语法:print(变量)
4.单行注释和多行注释
注释:程序系统过滤,给后来人解释代码含义的。
#!/usr/bin/env python # -*- coding: utf-8 -*- # 单行注释
"""
多行注释
"""
'''
多行注释
''' """ """ 和 ‘‘‘ ’’’ 多行注释 (三个单引号 或 三个多引号) (三个多引号还可用于语句中,体现多行代码,不用换行符/n)
5.if条件语句
语法规则:
众多条件结果选一条,
嵌套三到五层为宜。
if 条件: 结果
# 方式二
if 条件:(分叉判断) 结果 else: 结果
# 方式三 (多条件判断)
if 条件1: 结果1 elif 条件2: 结果2 elif 条件3: 结果3
# 方式四(三元表达式)
6.while 循环
语法:
当条件为真的时候,开始循环,条件为假的时候跳出循环。无限循环为死循环。
执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
当判断条件假 false 时,循环结束
while 条件: 循环体
#!/usr/bin/python #-*- coding:utf-8 -*- #计算: 1-3+5-7+9…99 = ? #number = int(input("请输入你的整数(1-3+5-7+…99):")) n = 1 sum = 0 f = 1 while n <= 99: sum = sum + n*f f = -f # 在这里f永远是正1或者-1 ,主要是为了改变上面n的相反数 n += 2 else: # 如果循环条件不满足的话,会自动执行else,如果遇到break中断结束则不会执行else print(sum)
7.for循环和range()函数
for语法:
for循环可以遍历任何序列的项目,如一个列表或者一个字符串
for … else 语法:
for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
#!/usr/bin/env python # -*- coding: utf-8 -*- #打印算法(菱形算法星) for e in range(-3, 4): print(" " * (abs(e)) * 2 + "* " * (7 - abs(e) * 2)) for e in range(-3, 4): print(("* " * (7 - abs(e) * 2)).center(14)) # 倒三角 # m = 7 # for n in range(-m, m+1, 2): # s = abs(n) * "*" # print(s.center(m)) # 打印菱形,封装一个打印菱形的函数 # 定义一个菱形函数,必须是奇数 i = input("请输入一个奇数:") def print_diamond(n): if not n.isdigit(): print("您的输入有误,请输入一个奇数") j = input("请输入一个奇数:") print_diamond(j) return n = abs(int(n)) # 如果输入的是负奇数,记得获取它的绝对值 if n % 2 == 0: print("您的输入有误,请输入一个奇数") j = input("请输入一个奇数:") print_diamond(j) return # print(-(n//2)) n//2 向上取整,是一半 7//2 = 3 # print(abs(-n//2)) -n//2 向上取整,是一半 -7//2 = -4 for k in range(-(n//2), abs(-n//2)): # print(" " * abs(k) * 2 + "* " * (n - abs(k) * 2)) print(("* "*(n-abs(k)*2)).center(n*2)) # 调用函数的时候,必须先定义函数,在函数下边调用,python是从上到下执行的 print_diamond(i)
range() 函数
#range(start, stop, step) # start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5); # stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 # step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1) >>> list(range(10)) [0,1,2,3,4,5,6,7,8,9]
8.break与continue与pass
break:终止一个循环。
1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 4 n = 0 5 while n < 20: 6 n = n + 1 7 if n == 8: # 如果n是偶数,执行continue语句 8 break #break语句会直接结束循环,跳出循环体,后续的print()语句不会执行 9 print(n) 10 11 # 结果 1,2,3,4,5,6,7
continue:终止当前的循环,继续执行下一个循环。
1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 4 n = 0 5 while n < 10: 6 n = n + 1 7 if n % 2 == 0: # 如果n是偶数,执行continue语句 8 continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行 9 print(n)
pass:是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句。
#!/usr/bin/env python # -*- coding: UTF-8 -*- # 输出 Python 的每个字母 for letter in 'Python': if letter == 'h': pass print '这是 pass 块' print '当前字母 :', letter print "Good bye!" """ 运行结果: 当前字母 : P 当前字母 : y 当前字母 : t 这是 pass 块 当前字母 : h 当前字母 : o 当前字母 : n Good bye! """