Python 从零开始

 下载 地址

https://pan.baidu.com/s/1OB3kL2Y7oB2D0gbX6ExCvQ 提取码:5otk 

Python 概述及安装

Python 版本

  • Python 2.x
    • 目前所有系统默认安装的版本
  • Python 3.x
    • 2009年2月13日发布
    • 在语法和功能上有较大调整
    • Python 的发展趋势

Python 的特点

  1. 高级:有高级的数据结构,缩短开发时间与代码量
  2. 面向对象:为数据和逻辑相分离的结构化和过程化编程添加了新的活力
  3. 可升级:提供了基本的开发模块,可以在它上面开发软件,实现代码的重用
  4. 可扩展:通过将其分离为多个文件或模块加以组织管理
  5. 可移植性:Python是用 C 语言写的,又由于 C 的可移植性,使得 Python 可以运行在任何带有 ANSI C编译器的平台上;
  6. 易学:Python 关键字少、结构简单、语法清晰;
  7. 易读:没有其他语言通常用来访问变量、定义代码块和进行模块匹配的命令式符号;
  8. 内存管理器:内存管理是由Python解释器负责的;

Python 语法基础

Python 运行方式

交互解释器:进入交互解释器

Pycharm 里面有个 Terminal 终端,点击即可进入Python的交互环境

[root@localhost xxx] # python3
>>> print('hello world')  # 使用print函数输入“Hello world!”
hello world
>>> exit()  # 退出使用 exit() 或 Ctrl + D

 退出交互式环境: ctrl+d   交互式环境无法保存代码

文件形式:明确指定解释器

Terminal 终端运行

Python 语法结构

语句块缩进

Python 代码块通过缩进对齐表达代码逻辑而不是使用大括号

  • 缩进表达一个语句属于哪个代码块

  • 缩进风格:4个空格:非常流行,范-罗萨姆支持的风格

  • 缩进相同的一组语句构成一个代码块,称之代码组

缩进

#向右缩进时,按【Tab】键
#向左缩进时,先按【Shift】,再很快按【Tab】
#多行代码的缩进,选中,按如上操作即可
if 3 > 0:
    print('yes')
    print('ok')

注释(ctrl+?)及续行

  • 尽管Python 是可读性最好的语言之一,这并不意味着程序员在代码中就可以不写注释

  • 和很多 UNIX 脚本类似,Python 注释语句从 # 字符开始

  • 注释可以在一行的任何地方开始,解释器会忽略掉该行 # 之后的所有内容

  • 一行过长的语句可以使用反斜杠 \ 分解成几行

# 在Python中的代码的注释,用"#"来实现
# 代码过长时,用 "\" 代表折行, 代表含义:a = 'hello world' + 'hello tedu'

a = 'hello world' + \
  'hello tedu'  3720.75

同行多个语句

  • 分号:允许你将多个语句写在同一行上

  • 但是些语句不能在这行开始一个新的代码块

  • 因为可读会变差,所以不推荐使用

输出语句:print

[root@localhost ~]# mkdir day01
[root@localhost ~]# cd day01
[root@localhost day01]# vim demo01.py
[root@localhost day01]# python3 demo01.py  
hello world
zhong wu chi sha ???
[root@localhost day01]# cat demo01.py  #查看写入的代码
print("hello world")
print("zhong wu chi sha ???")

[root@localhost day01]# cat demo02.py 
#因为没有手动指定,所以使用默认的分隔符和结束符换行
#print语句中每句话与每句话之间默认的分隔符是空格
print("hello","zhangsan","lisi")
#修改默认的分隔符(空格):sep=自定义的分隔符
print("hello","zhangsan","lisi",sep="@#")
#修改默认的结束符(换行\n):end=自定义的结束符
print("hello","zhangsan","lisi",end="!!!\n")
#换行输出
print("hello"'\n'"zhangsan"'\n'"lisi")


[root@localhost day01]# python3 demo02.py 
hello zhangsan lisi
hello@#zhangsan@#lisi
hello zhangsan lisi!!!
hello
zhangsan
lisi

 input输入语句:

注意:返回值一定是字符类型

 

 练习:

#模拟用户登录
#1.创建名为login.py的程序文件
#2.提示用户输入用户名 input("xxxxxxxx:")
#3.用户输入用户名后,打印 **欢迎用户xxxx** print()
dc = input("请输入用户名:")
print("欢迎用户:",dc)

 

变量

概念理解

  • 变量变量,也就是会变的量。它是一个装数据的容器,里面的数据是可以变的,因此叫变量
  • 比如 "班长" 就是一个变量,这学期可能是李雷,那下学期就可能是韩梅梅了,老师想安排同学任务,想到的是班长,而非某个具体的同学

变量定义

  • 在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 才会被创建
  • 等号(=)用来给变量赋值
    • = 左边是一个变量名
    • = 右边是存储在变量中的值
变量名 = 值

 

vim demo03.py
# 两个数字
print(10 + 20) # 30
# 多个带引号(str: 字符串,也就是一句话)的数据相加
# 两个字符串的首尾相连,两个短句变成了一个长句
print("今天" + "天气真好") # "今天天气真好"
print("100" + "200")  # 100200
# print(100 + "200")  报错
# 保证+左右两边的数据类型要一致,要么都是数字,要么都是字符串

练习 1:买包子

  • 可以用 其他变量的计算结果 来定义变量
  • 变量定义之后,后续就可以直接使用了

需求

  • 包子的价格是 1.5 元/个
  • 买了 10 个 包子
  • 计算付款金额
[root@localhost day01]# vim demo04.py 
[root@localhost day01]# python3 demo04.py 
总价是: 13.5
[root@localhost day01]# cat demo04.py 
# 定义包子价格变量
price = 1.5
# 定义购买数量
number = 10
# 计算金额
total = price * number
#打九折
total *= 0.9 # *0.9  乘等于0.9
print("总价是:",total)

提问

  • 上述代码中,一共定义有几个变量?
    • 三个:pricenumber/total
  • total = total * 0.9 是在定义新的变量还是在使用变量?
    • 直接使用之前已经定义的变量
    • 变量名 只有在 第一次出现 才是 定义变量
    • 变量名 再次出现,不是定义变量,而是直接使用之前定义过的变量
  • 在程序开发中,可以修改之前定义变量中保存的值吗?
    • 可以
    • 变量中存储的值,就是可以  的

变量的类型

在内存中创建一个变量,会包括:

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

运算符

Python 中所支持的运算符:

算术运算符

  • 算数运算符是 运算符的一种
  • 是完成基本的算术运算使用的符号,用来处理四则运算
运算符描述实例
+10 + 20 = 30
-10 - 20 = -10
*10 * 20 = 200
/10 / 20 = 0.5
//取整除返回除法的整数部分(商) 9 // 2 输出结果 4
%取余数返回除法的余数 9 % 2 = 1
**又称次方、乘方,2 ** 3 = 8

比较运算符

运算符描述
==检查两个操作数的值是否 相等,如果是,则条件成立,返回 True
!=检查两个操作数的值是否 不相等,如果是,则条件成立,返回 True
>检查左操作数的值是否 大于 右操作数的值,如果是,则条件成立,返回 True
<检查左操作数的值是否 小于 右操作数的值,如果是,则条件成立,返回 True
>=检查左操作数的值是否 大于或等于 右操作数的值,如果是,则条件成立,返回 True
<=检查左操作数的值是否 小于或等于 右操作数的值,如果是,则条件成立,返回 True

>>> 5 > 3  # 比较两个数值的大小,5大于3, 为真
True
#  比较10是否小于15,并且15是否小于20,为真,不方便阅读,少用; 可写为:10 < 15 and 15 < 20
>>> 10 < 15 < 20
True
# 比较10是否小于15,并且15是否大于13,为真,可写为:10 < 15 and 15 > 13
>>> 10 < 15 > 13
True

逻辑运算符

运算符逻辑表达式描述
andx and y只有 x 和 y 的值都为 True,才会返回 True
否则只要 x 或者 y 有一个值为 False,就返回 False
orx or y只要 x 或者 y 有一个值为 True,就返回
True只有 x 和 y 的值都为 False,才会返回 False
notnot x如果 x 为 True,返回 False
如果 x 为 False,返回 True
# and是且,同时满足的意思,两边必须同时满足才为【True】
>>> 5 > 3 and 10 > 5  # 5大于3,为真; 10大于5,也为真
True
# or是或者的意思,只要一边满足即为真 
>>> 5 > 3 or 10 > 50  # 5大于3,为真,结果为【True】
True
# not 取反
>>> not 5 > 3  # 5大于3,正确,为【True】,not取反,将其结果定义为【False】
False
>>> 10 > 50  # 10大于50,不正确,为【False】
False
>>> not 10 > 50  # 10大于50,不正确,为【False】;not取反,将其结果定义为【True】
True

数据类型

数字

基本的数字类型有:

  • int:有符号整数
  • bool:布尔值
    • True:1
    • False:0
  • float:浮点数
>>> type(5)  # 查看变量常量的类型,5为int 整数类型
<class 'int'>
>>> type(5.0)  # 查看变量常量的类型,5.0为float 浮点数类型
<class 'float'>
>>> True + 3  # True 代表的值为1,结果为4;True 第一个字母必须是大写
4
>>> False * 3  # False 代表的值为0,0乘任何数均为0;False 第一个字母必须是大写
0

整数数字表示方式

Python 默认以十进制数 显示

  1. 数字以 0o 或 0O 开头表示为 8 进制数
  2. 数字以 0x 或 0X 开头表示 16 进制数
  3. 数字以 0b 或 0B 开头表示 2 进制数
# python 默认以十进制数显示,十进制数范围:0 ~ 9
>>> 23
23

# 以0o或0O开头表示8进制,0o23即将8进制数23,以十进制方法进行显示
# 8进制数23转为十进制方法: 2*8的1次方 + 3*8零次方 = 2*8 + 3*1 = 19
# 8进制数范围:0 ~ 7
>>> 0o23
19

# 以0x或0X开头表示16进制,0x23即将十六进制数23,以十进制方法进行显示
# 十六进制数23转为十进制方法: 2*16的1次方 + 2*16零次方 = 2*16 + 3*1 = 35
# 16进制数范围:0 ~ 9,a ~ f
>>> 0x23
35

# 以0b或0B开头表示二进制,0b10即将二进制数10,以十进制方法进行显示
# 十进制数10转为二进制方法: 1*2的1次方 + 0*2零次方 = 1*2 + 0*1 = 2
# 二进制数范围:0,1
>>> 0b10
2

>>> oct(100)  # 函数oct(), 可以将十进制数100,转换为8进制数
'0o144'
>>> hex(100)  # 函数hex(), 可以将十进制数100,转换为16进制数
'0x64'
>>> bin(100)  # 函数bin(), 可以将十进制数100,转换为二进制数
'0b1100100'

字符串

  • Python 中字符串被定义为引号之间的字符集合
  • Python 支持使用成对的单引号或双引号
  • 无论单引号,还是双引号,表示的意义相同
  • Python 还支持三引号(三个连续的单引号或者双引号),可以用来包含特殊字符
  • Python 不区分字符和字符串

演示

# 三引号的使用,保存用户输入的格式,可以是三个单引号,也可以是三个双引号
>>> users="""tom
... bob
... alice
... """
>>> users  # 输出内容,print把\n转换成回车
'\nbob\nalice\n'

>>> name = 'zhangsan\nlisi\nwangwu'  # 直接写\n也是可以的
>>> print(users)  # 打印变量users,验证结果
>>> print(name)  # 打印变量name,验证结果

# 两种符号共用
>>> sentance = "hello aaa, I'm your baby~"
>>> print(sentance)
hello aaa, I'm your baby~

字符串切片

  • 使用索引运算符 [ ] 和 切片运算符 [ : ] 可得到子字符串
  • 第一个字符的索引是0,最后一个字符的索引是 -1
  • 子字符串包含切片中的起始下标,但不包含结束下标

>>> py_str = 'python'  # 定义变量py_str, 值为python
>>> len(py_str)  # 使用函数len(),统计变量py_str的字符长度
6
>>> py_str[0]  # 默认字符的下标从0开始,取出变量py_str中的第一个字符p
'p'
>>> py_str[5]  # 取出变量py_str中的第六个字符n
'n'
>>> py_str[-1]  # 取出变量py_str的倒数第一个字符n
'n'
>>> py_str[-6]  # 取出变量py_str的倒数第六个字符n
'p'

# 取出变量py_str中,下标为2到下标为3之间的字符,下标为3的字符【h】不包含在内
>>> py_str[2:3]
't'
# 取出变量py_str中,下标为2到下标为4之间的字符,下标为4的字符【o】不包含在内
>>> py_str[2:4]
'th'
# 取出变量py_str中,下标为2到下标为5之间的字符,下标为5的字符【n】不包含在内
>>> py_str[2:5]
'tho'
# 取出变量py_str中,下标为2到下标为6之间的字符,下标为6的字符【n】不包含在内
>>> py_str[2:6]
'thon'
>>> py_str[2:6000]  # 取出变量py_str中,下标为2字符之后的所有数据
'thon'
>>> py_str[2:]  # 取出变量py_str中,下标为2字符之后的所有数据
'thon'

# 取出变量py_str中,下标为0到下标为2之间的字符,下标为2的字符【t】不包含在内
>>> py_str[0:2]
'py'
>>> py_str[:]  # 取出变量py_str中的所有字符,没指定下标,则代表所有字符
'python'

# 设置步长为2,即第一次取值后,每次下标加2,然后取值,p下标为0; t下标为0+2=2; o下标为0+2+2=4 
>>> py_str[::2]
'pto'
# 设置步长为2,即第一次取值后,每次下标加2,然后取值,y下标为1; h下标为1+2=3; n下标为1+2+2=5 
>>> py_str[1::2]
'yhn'

>>> py_str[::-1]  # 设置步长为-1,即从后往前取值,没有设置结束位置,则取出变量中所有的值
'nohtyp'

字符串连接操作

  • 使用 + 号可以将多个字符串拼接在一起
  • 使用 * 号可以将一个字符串重复多次
>>> 10 + 20
30
>>> 10 + "20"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>> str(10) + "20"   数字转字符
'1020'
>>> 10 + int(20)   
30
>>> int("123465")   #字符转数字
123465





>>> py_str + ' is good'  # 将变量py_str中的值,和字符串'is good'进行拼接
'python is good'
# 字符串拼接时,注意要拼接的双方必须是都是字符串类型,否则报错
>>> py_str + 10
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: must be str, not int

# 重复操作:使用 * 号可以将一个字符串重复多次,只能应用于字符串,数字则为乘法运算 
>>> '*' * 30  # 将字符串'*'重复打印30次,使用 * 号来完成
>>> '*' * 50  # 将字符串'*'重复打印30次,使用 * 号来完成
>>> py_str * 5  # 将变量py_str中的值,重复打印5次,使用 * 号来完成

# 字符串判断:in,not in判断字符是否处于变量的范围之内
>>> 't' in py_str  # 判断字符't',是否在变量py_str范围内,True 为真
True
>>> 'th' in py_str  # 判断字符串'th',是否在变量py_str范围内,True 为真
True

# 判断字符串'to',是否在变量py_str范围内,False 为假,这里'to'指的是一个连续的字符,不能分开看
>>> 'to' in py_str
Falsed
>>> 'to' not in py_str  # 判断字符串'to',是否不在变量py_str范围内,True 为真
True

列表

列表的定义

  • List(列表) 是 Python 中使用 最频繁 的数据类型,在其他语言中通常叫做 数组

  • 专门用于存储 一串 信息,它能保存 任意数量,任意类型的 Python 对象

  • 列表用 [] 定义,数据 之间使用 , 分隔

  • 列表中的项目 可以改变

  • 列表的 索引 从 0 开始

    • 索引 就是数据在 列表 中的位置编号,索引 又可以被称为 下标
  • 类似于排队,可动态变化

列表操作

  • 使用 in 或 not in 判断成员关系
  • 使用 append 方法向列表中追加元素

注意:从列表中取值时,如果 超出索引范围,程序会报错

list01 = [10,20,"lisi","wangwu","[1,2]"]
print(len(list01)) #length:求长度(元素的个数) 
print(list01[1],list01[-2]) #输出列表中的第2个元素和倒数第二个元素
print(list01[2:4])   #支持切片 输出索引为2到3的元素
print(type(list01))  # <class 'list'>
print("lisi" in list01) # 判断lisi是否在list01中
print("[1,2]" in list01) #判断 [1,2] 是否在 list01中


#list01.append(元素):给列表的尾部追加一个元素
list01.append("zhaoliu")
print(list01)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值