python语言初学

python

python是一门解释性语言(C语言编写的),意味着它是逐行翻译解释代码的

python的执行程序文件格式:.py

参考学习:黑马程序员Python教程_600集Python从入门到精通教程(懂中文就能学会)_哔哩哔哩_bilibili

python特点

  • 面向对象
  • 拥有一个强大的标准库
  • 拥有大量的第三方模块
执行python程序的三种方式
  1. 解释器–python/python3
  2. 交互式–ipython
  3. 集成开发环境–pycharm
实现编写python程序执行
  1. 安装python解释器
  2. 创建hello_world.py文件
  3. 然后输入print("hello_world")
  4. 保存,输入python3 hello_world.py执行
python版本
  • python2.x默认不支持中文,命令:python
  • python3.x是支持中文的,命令:python3
  • 其中python2.6和2.7是python2.0向python3.0的过渡版本
python解释的多个版本
  • Cpytho–官方版本(C语言)
  • Jython–java版本
  • IronPython–支持.net
  • PyPy–python实现的,支持JIT即时编译

python语法

python程序常见错误
1.关键词编写错误

关键词编写错误

2.多条python语句写在一行

一行只需一条python语句

多行python语句在一行

3.python语句前有空格

python语句前有空格

注意,python语法严格,在python语句前都不要轻易有空格或者Tab

模块

模块是Python程序架构的一个核心概念

模块就好比是工具包,要想使用这个工具包中的工具,就需要导入这个模块(import)

每个python文件都可以是一个模块

模块中的全局变量,函数都是模块能提供给外界直接使用的工具

import 导入模块(“工具包”)
import keyword  # 关键字工具包
import random
random.randint(a,b)   # 返回[a,b]区间的一个随机整数
注释
行注释
# 这是一个行注释
块注释
"""
这个是一个块注释
也称多行注释
"""
运算符
算数运算符
运算符描述实例
+1+1=2
-2-1=1
*1*1=1
/9/2=4.5
//取整数9//2=4
%取余数9%2=1
**2**3=8

*乘号在python中还能起拼接字符串的作用,计算结果就字符串重复指定次数

" hello " * 10
' hello  hello  hello  hello  hello  hello  hello  hello  hello  hello '

python运算符

符号意义
+=取加a+=b等效a=a+b
-=取减a-=b等效a=a-b
*=取乘a*=b等效a=a*b
/=取除a/=b等效a=a/b
//=取整除a//=b等效a=a//b
%=取余a%=b等效a=a%b
**=取幂a**=b等效a=a**b

注意:python中没有++和–

逻辑运算符
  1. and 与
  2. or 或
  3. not 非
  4. in 是否存在
  5. is 是否
运算符支持的数据类型
运算符python表达式结果描述支持的数据类型
+[1,2]+[3,4][1,2,3,4]合并字符串,列表,元组
*[“hi”]*4[“hi”,“hi”,“hi”,“hi”]重复字符串,列表,元组
in3 in (1,2,3)True元素是否存在字符串,列表,元组,词典
not in4 not in (1,2,3)True元素是否不存在字符窜,列表,元组,词典
>,>=,==,<,<=(1,2,3)<(2,2,3)True元素比较字符串,列表,元组
变量和数据类型
变量的命名

标识符

与C/C++相同:数字,下划线和字母,然后数字不能开头且不能和关键词同名

变量的信息

内存中的一个变量包括以下信息

  1. 变量的名称
  2. 变量保存的数据
  3. 变量存储数据的类型
  4. 变量的地址(标示)

在python中定义变量不需要指定类型,它会根据赋值自动确定类型

变量的数据类型
数字型
  1. 整型int
  2. 浮点型float
  3. 布尔型bool—非零即真
  4. 复数型complex
非数字型
  1. 字符串str
  2. 列表list
  3. 元组tuple
  4. 字典dict

可以用type函数查看变量的类型

type(2**100)

字符串间可以用+拼接,但是字符串和数字不能进行计算

全局变量-global关键字

它会告诉解释器后面跟的变量是一个全局变量

变量的类型转换
函数说明
int()整型转换
float()浮点型转换
基本的输入输出
input()—输入的都是字符串
str = input("提示")
print()
print("你好")

在默认情况下,print函数在输入出后会自动换行,其中在print打印的内容后面加上,end="",可以取消自动换行

print("ni",end="")
print("hao")

格式化字符

格式化字符含义
%s字符串
%d有符号十进制整数,%06d表示输出的整数显示位数,不足的地方使用0补全
%f浮点数,%.2f表示小数点后只显示两位
%%输出%
print("格式化字符" % 变量名)
print("格式化字符" % (变量1,变量2...))
逻辑语句
判断语句

if

#if冒号后缩进相同的可以看成一个代码块
if 条件1:
    a = 3
    b = 4
elif 条件2:  #elif 类似else if
    b = 3
elif 条件3:
    b = 6
else:
    a = 5
    d = 6
e = 7
循环
while
while 条件:
    todo_1
    todo_2
for
for val in list:
    todo_1
    todo_2
else: #  此段可有可无,如同 if else里的else
    没有通过break退出循环,循环结束后就会执行该段代码
函数
定义
def 函数名(参数1, 参数2, ...):
    函数封装的代码
    ...
    return 

注意:函数内return后面的代码不会执行

函数的多值参数
类型作用
*表示元组的多个参数
**表示字典的多个参数
公共函数
函数功能备注
len(a)取得元素数量
del(a)删除元素
max(a)返回容器中元素最大值
min(a)返回容器中元素最小值
cmp(a,b)比较两个值,-1小于/0等于/1大于python3.x已经取消

切片

描述pythoy表达式结果支持的数据类型
切片“0123456789”[::-2]“97531”字符串,列表,元组

dir()内置函数

可以查看一个对象所有的函数

id()函数

可以获取变量地址

不可变类型(指只能修改地址来修改变量值)

  1. 数字类型
  2. 字符串
  3. 元组

可变类型(指不修改地址就可以修改变量值)

  1. 列表
  2. 字典
非数字型变量
列表

list—类似数组,但是又不同(可以存储不同类型的数据)

num_list = [1, 2, 3]
函数使用作用
index()取得索引
append()末尾添加数据
insert()指定位置添加数据
extend()把整个列表添加到末尾
remove()删除某个数据
pop()删除末尾或者指定索引位置的数据
count()统计列表中某一个数据出现的次数
sort()排序(默认升序,reverse=false)
reverse()反转列表顺序

del关键字

主要是用于删除处于内存中的变量。

len()函数:主要是用于统计列表中元素的个数

元组

Tuble与列表类似,不同之处在于元组的元素不能修改

info_tuple = (1, 2, 3)
info_ming = ("小明", 22, 180)
str1 = "姓名:%s, 年龄:%d, 身高:%d" % info_ming
print(str1)

注意:在只要定义一个元素的元组时,元素后面一定要加一个

tuple()转换成元组类型

list()转换成列表

字典

类似hash表

字典是保存无序的对象集合

xiaoming = {"name":"小明",
           "age",18,
           "height":1.80}
函数使用作用
update()更新字典
pop()删除字典中某个键值对
clear()清空字典
字符串

与C++中的字符串相似,但是末尾没有’\0’

str 可以用"",也可以用''

函数使用作用
len()获取字符串的长度
count()统计字符串中某个子串出现的次数
index()获取字符串中的某个子串的索引下标
定义
class 类名:
    def 方法1(self, 参数列表):  # self 相当于this指针
        # Todo1

	def 方法2(self, 参数列表):
        # Todo2
构造和析构方法
def __init__(self):
   	# todo
def __del__(self):
    # todo
    
# 还有一个默认输出方法
def __str__(self):
    # todo
    # 必须返回一个字符串
    return "__str__"

is 和 ==的区别

is是判断二者的地址是否相等,而== 是判断二者的数据是否相等

私有属性和私有方法
# 私有只要在命名前加上__
class Person:
    def __init__(self):
        self.__age = 18
    def __func(self):
        print("私有方法")

实际上python并没有真正的私有,只需要在私有属性命名前加上_类名,就可以访问

类的继承
class 类名(父类名):
    pass

Python pass 是空语句,是为了保持程序结构的完整性。

pass 不做任何事情,一般用做占位语句。

在 Python3.x 的时候 pass空函数可以写或不写;python2.x,空函数一定要写,

重写

跟C++一样,子类覆盖父类的方法

super().父类方法,可以在子类中调用父类方法

多继承

python 提供了一个可以查继承关系的方法 _mro_

多态

父类中的方法在不同的子类对象的调用下产生不同的效果

类方法和静态方法

类属性就是针对类对象定义的属性,直接在类中定义,类似C++中类的静态变量

class person:
    age = 0  # 类属性,所有类对象共有
    def __init__(self):
        self.height = 0  #实例属性,每个对象有一份

类方法就是针对类定义的方法,定义方式如下

class person:
    @classmethod
    def run(cls):
        pass

静态方法

不访问实例属性和类属性的方法可以封装成静态方法

@staticmethod
def func():
    pass

python运行

python的另一种执行方式-----Shebang符号
  1. 在程序的开头加上: #!python程序的绝对路径
  2. 然后修改该文件的权限:chomd +x xxx.py
主程序

使用__name__ == "__main__"来区分被调用模块和主程序

python2.x的编码问题

# *-* coding:utf8 *-*

# coding=utf8

eval函数

可以将字符串当成有效表达式来求值,并返回计算结果

eval("1+1")  # 结果是2
OS模块

文件常用管理操作

__import__("os").system("终端命令")

django

model数据库表连接模块

django-admin startapp TestModel
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值