python-1.基础铺垫

python

序言

  • 这篇文章是什么?
    这篇文章介绍了python3的基础操作,会采用概念+例子的形式。写的通俗易懂,供自己忘记时查阅和大家参考学习使用。
  • 为什么写这篇文章?
    因为工作需要,需要经常查阅一些python基础语法的东西,索性把它系统性的整理出来,回顾一下。
  • 说明
    我这里使用的环境是python3.9+pycharm.
    假设你已经安装好了基础的环境,我们这里直接展示操作。我写的不完全正确,希望发现的同学及时帮我指正出来。

python概述

  • 什么是python
    (1)python是一门编程语言(程序设计语言)
    (2)python是一门跨平台,开源,免费的解释型高级动态编程语言。
    (3)语言:
    自然语言:人类能识别的语言,英语,汉语,法语。。
    机器语言:机器能识别的语言,二进制(01010)
    程序设计语言:由文本构成文件,有固定语法(人和机器都能读懂的语言—人和机器的桥梁) —java c++ c python c# php
  • python的特点
    (1)语法简洁:约等于java的五分之一
    (2)拥有强大的类库:145000
    (3)胶水语言:粘java的类库,c的类库,其他语言类库
    (4)纯面向对象:python一切皆对象
    (5)跨平台:通过虚拟机,可以跨平台

python的运行机制

  • 常见的运行机制:
    (1)编译型:源代码,通过编译器,生成一个可执行文件,下一次运行,直接运行可执行文件 优势:效率高 劣势:不能跨平台
    (2)解释性:源代码,通过解释器,逐行翻译运行,下一次运行,需要重新翻译 优势:可以跨平台(需要有解释器进行配合) 劣势:执行效率低
  • python有两种运行机制:
    (1)以脚本执行运行:纯解释性语言
    (2)先编译后解释:
    源文件:.py结尾的文件
    编译器:compiler
    字节码文件:.pyc(本质:是一个二进制文件,计算机不能直接识别,只能由解释器来识别)
    解释器:interpretere—PVM(包含了解释器)

python解释器

(1)CPython:标准的实现方式,是官方提供的解释器(由c语言实现的解释器)
(2)Jython:由java实现的解释器
(3)IronPython:是由.net实现的解释器
(4)PyPy:是由python自己实现的解释器

python的应用

web开发 爬虫 数据分析 数据挖掘 人工智能

python基础语法

  • 1.输出函数
    print(*args, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)
    (1)*args:可以传入多个数据
    (2)sep: 分割符号(当传入多个数据时生效)
    (3)end:结尾符号
    (4)file:文件流
    (5)flush:设置缓冲流
代码:
print('a', 'b')
print('a', 'b', sep='***', end='$$$')

效果:
a b
a***b$$$
  • 2.输入函数
    input(): 从控制台获取用户输入的数据
    (1) input(pompt=None)
    pompt:在获取用户数据之前,显示的提示信息(没有类型限制)
    (2) input会将获取的数据,以字符串的形式进行返回
    (3) input在执行时,会等待用户输入数据,用户输入完毕(触发了回车)之后才会继续运行
    这种行为称之为阻塞
代码:
a = input('请输入一个你心里(❤ ω ❤)的数字:')
print(a, type(a))
b = 520 + int(a)
print(b)

效果:
请输入一个你心里(❤ ω ❤)的数字:1
1 <class 'str'>
521
  • 3.变量
    没有默认值
    先定义后使用
    变量中存储的时数据的首地址
    变量名。要符合标识符命名规范。
  • 4.标识符命名规范
    (1) 语法规范:
    合法标识符:数字(数字不能开头),字母,下划线
    大小写敏感
    不能使用关键字和保留字
    没有长度限制
    (2)开发习惯
    望文生义
    大小写:包名全小写,类名大驼峰,函数名/变量名/方法名:小驼峰,常量:全大写,其他命名:单词和单词之间用下划线连接(单词全小写)
    [注] 驼峰命名法: HelloWorld:大驼峰 helloWorld:小驼峰
关键字:python中内置的,具有特殊含义的字符,且这些字符不可更改
	if else while or and not True False class def assert as with is yield pass print
保留字:python中预制使用的函数名,方法名,类名等字符,是可以被修改的(一旦修改再也不能起原作用,已被修改)
	input type id zip next iter int str bool dict float set list tuple frozenset(不可变集合)
  • 5.数据类型
    python没有类型的概念(源码中int是一个class) python只有一种类型:对象类型
    a = 10 a=int(10) 相当于创建对象 整型对象
    所有的数据都是某一个类型的数据, 所有的数据类型的类型—类型类
(1)整型:int 1 2 3
(2)浮点型:float 1.5
    科学计数法,也是浮点型 eg:1.23e+8
    浮点数是由定点整数和定点小数构成 1.  .5
    如何存储:槽(最多四个字节,<=4) ,通过两个slot(槽)分别存储两个定点数。占内存,开发是尽量避免浮点型,后面会学到decimal.Decimal,可以尝试使用
(3)布尔型:bool
    True1    # True 和 False 是关键字
    False0
    任何非零:True
    任何零:FalseNone空也算零) 例如:[] '' 0
    【注】在Python中空为None,并不是null或NULL
(4)字符串:str
    字符串天生具有跨平台特性
    分类:
        单引号字符串
        双引号字符串
        三引号字符串
(5)空值:None
(6)其他复杂数据:
    list:列表 dict:字典 tuple:元组 set:集合 frozenset:不可变集合 pipe:管道 queue:队列
  • 6.数据类型转换
    要转换成谁就使用谁
    数据之间转换要兼容
代码:
a = 123
b = str(a)
print(b, type(b))
c = float(a)
print(c, type(c))
a = '123'
print(int(a))
print(float('1.5'))
print(float('1.'))

效果:
123 <class 'str'>
123.0 <class 'float'>
123
1.5
1.0
  • 7.获取类型
    (1)type(obj) 本质是一个类,执行慢;用起来方便 返回的是obj参数的类型
    (2)isinstance() 本质是一个函数,执行快;判断obj是不是class类型 返回bool类型
代码:
a = 10
print(a, type(a))
print(isinstance(a, int))

效果:
10 <class 'int'>
True
  • 8.运算符
    (1)一般运算符
# + - * /(真除法) %(模运算) 和字符串格式化
# **(幂运算,是一元运算符) //(地板除法)向下取整
print(10/3)
print(10%3)

(2)赋值运算符
= += -= *= /= **= //=
(3)布尔运算符(比较运算符)
eg: > < >= <= == !=
a>b>c 解释器解释a>b and b>c(但java中是错的)
(4)逻辑运算符
and or not
(5)三元运算符
(值1 if 布尔值 else 值2) 如果bool值为真,返回值1,否则返回值2
(6)集合运算符
交集 & 并集 | 对称差集 ^ 差集 -
-9.优先级
(1)四则运算:先乘除后加减 ():括号,干扰优先级
(2)元和优先级的关系:元数越多,优先级越低
(3)逻辑运算符:not> and > or

流程控制

  • if-else结构
# 1. if-else结构
# if
# if-else
# if-elif-else

代码:
age = 25
if age > 18:
    print('可以玩游戏了')

if age <= 18:
    print('好好学习')
else:
    print('可以适当玩游戏了')

if age <= 12:
    print('你跑出来你妈妈知道吗')
elif age <= 24:
    print('年轻人应该报效祖国')
else:
    print('可以做一些嘿嘿嘿的事情了')
   
效果:
可以玩游戏了
可以适当玩游戏了
可以做一些嘿嘿嘿的事情了
补充:
1. 嵌套使用:if-else可以任意嵌套使用
2. python可以避免else悬挂问题,因为python有严格的缩进方式
3. pass关键字:当代码块中不书写人和代码时使用

定义一个变量,定义变量没有代码块,所以下一行定义,必须和自己对齐,表示同一层代码
代码块:(有冒号)只要缩进不一样,就是一个新的代码块
不同的代码拥有独立的缩进空间
缩进表示代码块,代码块中不能不写代码,可以引进pass
  • 断言
关键字:assert
用法:assert 布尔表达式
含义:布尔表达式为真,程序正常执行,如果为假,抛出异常:AssertionError
age = 25
if age < 24:
    print('年轻人应该好好学习')
else:
    assert '太大了'
  • while
循环:重复执行某段代码
1.语法:
    while 布尔表达式:
        循环体
2. 注意:
    死循环:重复执行某一段代码永不停止
    死循环不一定是坏的,服务器需要死循环支持执行(不宕机)
补充:
while 1while True 哪个执行效率高?
python2: while 1效率高
原因:
    1 是一个整数,是一个不可变类型的数据,执行while操作时,不需要判断1的值是不是本身
    True是一个保留字,可以被赋值,执行while时,需要判断True中的值是不是True本身
python3: 一样高
原因:
    1是不可变的,True是关键字,也是不可变的
  • for 循环(使用心得:思考行列数)
for 循环也称计数循环
    如果不知道循环次数,一般使用while
    如果知道循环次数,一般使用for循环
语法:
    for 变量 in 可迭代对象:
        循环体
    可迭代对象:拥有迭代器的对象,称之为可迭代对象
    迭代器:(方便记忆,拥有多个元素且可以取出来)
代码:
for i in 'hello':
    print(i)

效果:
h
e
l
l
o
循环误区:
    最后一次循环也算,只是没执行循环体,判断条件也属于循环
    最后一次没取到值(并不是取到空值)抛出stopIteration()异常
    循环体n次:for n+1
  • 补充
break
跳出当前循环,且之后的循环不再执行

continue
跳过当前循环,且之后的循环不受影响

循环嵌套
循环之间可以任意嵌套
注意:不建议嵌套三层以上,会大大降低执行效率
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值