Python基础语言学习(保姆级教程,适合零基础)

python语言简介

1、python编程语言

编程语言,可以理解为人类通过计算机指令与计算机沟通交流的语言,python是众多计算机编程语言中的一种。

2、Python的特点

Python支持面向对象的编程思想,有着极其简单的语法,可以移植到Linux、Windows等众多系统平台, 具有可扩展性(部分程序可以使用其他语言编写,如c/c++。)、可嵌入型(可以把Python嵌入到c/c++程序中)以及非常丰富的专业库,是免费、开源的解释性的高层计算机语言。

编程入门

1、代码注释

可以起到一个备注的作用,团队合作的时候,个人编写的代码经常会被多人调用,为了让别人能更容易理解代码的通途,使用注释是非常有效的。

**①:**单行注释以 # 开头

# 这是一个注释
``print``(``'Hello, World!'``)

②:*多行注释用三个单引号 ‘’’ 或者三个双引号 “”" 将注释括起来*

'''
这是多行注释,用三个单引号
这是多行注释,用三个单引号
这是多行注释,用三个单引号
'''
print('Hello, World!')
"""
这是多行注释,用三个双引号
这是多行注释,用三个双引号
这是多行注释,用三个双引号
"""
print('Hello, World!')

打印输出

print('hello')
print('python')

运行结果:

hello
python

注意:print()在输出完,内容后会自动换行,如果我们不需要输出后换行,可以通过end参数,指定输出后内容的结束形式

print('hello',end='')
print('python',end='')

运行结果:

hellopython

连续输出多个内容,将要输出的内容之间用,分开

print("5","中国",True)

运行结果:

中国 True

转义字符的使用

①、输出语句含有('、“”、\等)特殊字符时需要使用 \ 转义

print('\\') # print('\') 程序会报错误

运行结果:

\n 代表换行

print('我爱你\n中国')

运行结果:

我爱你``中国

\t 代表八个空格

print``(``'我爱你\t中国'``)

运行结果:

我爱你 中国

变量

是计算机语言中能储存计算结果或能表示值抽象概念(会在计算机内存中开辟一块空间)。

定义格式:变量名 = 初始化值

1、变量:可以被改变的量(存储数据的空间,类似于容器)

name = '小红'
print(name)
name = '小李' #小李 会覆盖掉 小红
print(name)

运行结果:

小红
小李

多目标赋值(不建议使用)

num1,num2 = 3,4  #第一种方式
print(num1)
print(num2)
num3 = num4 =5  #第二种方式
print(num3)
print(num4)

运行结果

3
4
5
5

命名规则:

①、只能是字母、数字、下划线组成,不能以数字开头

②、字母大小写敏感代表不同含义,不能使用python保留的关键字

命名规范:

①、见名知义,尽量不要用小写字母i和大写字母的O(避免与数字1、0混淆)

注意: 变量,必须设置初始化值,以达到节省内存空间的原则(从计算机内存条开辟出来的)

标准数据类型

对所有数据分类的划分,解决数据更方便的管理、表述及使用。

Python3 中有六个标准的数据类型

1、Number(数字)

2、String(字符串)

3、List(列表)

4、Tuple(元组)

5、Set(集合)

6、Dictionary(字典)

注意:

​ 可以使用 type(对象) 函数来查看数据类型

​ 不可变的对象:数字 、元组 、字符串

Number(数字) 类型

Python3的数字类型支持 int、float、bool、complex(复数)

1、int -> 整数

表示为长整型,包含正整数和负整数,在这里整数被允许具有无穷的精度 (只要内存空间允许,它可以增长成任意位数的数字)

age = 18 #年龄
score = 90 #成绩
print('年龄是:',age)
print('成绩是',score)
print(type(score))

运行结果:

年龄是:18
成绩是 90
<class 'int'>

float -> 小数

表示为小数,带一个小数点,也可以加上一个科学计数标志e或者E

avg_score = 90.5  #平均成绩
price = 99.8 #单价
num_value = 3.14e-10 #科学计数
print('平均成绩为:',avg_score)
print('单价为:',price)
print('科学计数的值:',num_value)
print(type(price))

运行结果:

平均成绩为:90.5
单价为:99.8
科学计数的值:3.14e-10
<class 'float'>

bool -> 布尔(判断)

表示为布尔类型,值为True 和False,也可以用数字表示:0 表示 False,1 表示 True ,同时也可以进行运算

isTrue = True
isHeight = False
isTrue2 = 1
isHeight2 = 0
isValue = isTrue+isTrue2
print('isTrue的值是:',isTrue)
print('isHeight的值是:',isHeight)
print('isTrue2的值是:',isTrue2)
print('isHeight2的值是:',isHeight2)
print('isValue的值是:',isValue)
print(type(isTrue))

运行结果:

isTrue的值是:True
isHeight的值是:False
isTrue2的值是:1
isHeight2的值是:0
isValue的值是:2
<class 'bool'>

complex -> 复数

复数常量写成实部+虚部的写法,虚部是以j或J结尾的

compileValue = 3+4j
print('compileValue的值为:',compileValue)
print(type(compileValue))

运行结果:

compileValue的值为:(3+4j)
<class 'complex'>

python序列

就是有序存放的一组数据,这组数据由一个个独立的元素组成

1、python中六种序列:

列表、元组、字符串、Unicode字符串、buffer对象、xrange对象

2、python序列特征:

①、元素有序存放,并每个元素都有一个索引,从0开始…

②、序列都能够进行索引操作、切片操作、加法运算、乘法运算和检查元素

​ 根据索引修改或查找元素的值,根据元素的值查找元素的索引

​ 切片操作能够获取序列中任意一段的数据

③、能够自动计算出序列类型的长度len(),最大值max()、最小值min()

String(字符串) 类型

1、简单使用

字符:所有的单个数字、文字、字母以及特殊的符号都叫字符

字符串:多个字符连接的串

①、单行字符串用‘…’ , “…”来定义

name = '小红'
name2 = "小花"
print("name的值为:",name)
print("name2的值为:",name2)

运行结果:

name的值为:小红
name2的值为: 小花

多行字符串用’‘’…‘’’ , “”“…”""来定义

info = '''我是一个帅哥
!'''
info2 = """我是一个帅哥
很帅!"""
print("info的值为:",info)
print("info2的值为:",info2)

运行结果:

info的值为:我是一个帅哥info2的值为:我是一个帅哥
很帅!

字符串格式化

问题:求100+300的和,在屏幕上输出:100+300=400

①、format实现

num01 = 100
num02 = 300
print(num01+num02)
print('100+300={}'.format(num01+num02)) #不写,默认从0开始
print('{}+{}={}'.format(num01,num02,(num01+num02))) #不写占位符的下标,默认从0开始
# 后面值的顺序要与前面占位符下标的顺序保持一致
print('{0}+{1}={2}'.format(num02,num01,(num01+num02)))

运行结果:

400
100+300=400
100+300=400
100+300=400

%实现

num01 = 100
num02 = 300
print(num01+num02)
print('100+300=%i'%(num01+num02))
# 后面值的顺序要与前面占位符的顺序保持一致
print('%i+%i=%i'%(num01,num02,(num01+num02)))

运行结果:

400
100+300=400
100+300=400 

注意:推荐使用format,可以复用:“5+3={0},5-3={1}{0}”.format(5+3,5-3)

3、字符串操作

字符串中的字符都是有索引的,从0开始。

字符串是序列,是用索引来表示元素的位置的,因此凡是对元素的操作,都离不开索引。

①、len(字符串名):计算字符串的长度

s = 'divpspan'
print('字符串的长度为:{}'.format(len(s)))

运行结果:

字符串的长度为:8

根据序列索引找字符

注意:正向索引从左边开始计算,从0开始,反向索引从右边开始计算,从最后一个(-1)开始

str = 'divpspan'
print('索引为4的字符时:{}'.format(str[4])) #正向索引(左[0开始] -> 右)
print('索引为-1的字符时:{}'.format(str[-1]))  #反向索引(右[-1开始] -> 左)

运行结果:

索引为4的字符时:s
索引为-1的字符时:n

合并

字符串作为一个序列,字符串支持用+,+=进行拼接,或者用*进行重复

+,+=操作时,只要两边都是字符串叫做字符串连接符;反之为操作运算符;数值与字符串不能互相运算和连接

#只要两边都是字符串叫做字符串连接符;反之为操作运算符
#print("6"+9)  #报错:数值与字符串不能互相运算
print(6+9)  #运算符
print('6'+'9')  #字符串连接符
print('8'*3)  #将前面字符串复制3倍

运行结果:

15
69
888

④、title() 将每个单词的首字母都改为大写

info_val = 'i love you'
print(info_val.title())

运行结果:

I Love You

⑤、upper()将字符串改为全部大写或lower()改为全部小写

info_val = 'i lOvE yOU'
print(info_val.upper()) #改为全部大写
print(info_val.lower()) #改为全部小写

运行结果:

I LOVE YOU
i love you

⑥、删除空格

剔除字符串末尾的空白:rstrip()

剔除字符串开头的空白:lstrip()

剔除字符串两端的空白:strip()

strValue = ' i love you '
print(strValue.rstrip()) #删除字符串末尾空格
print(strValue.lstrip()) #删除字符串开头空格
print(strValue.strip())  #删除字符串两端的空格

运行结果:

i love you
i love you
i love you

⑦、raw字符串

raw字符串表示原始字符串:你看到这个字符串是什么就显示什么,所有字符都不进行转义

写法:在字符串前面加r

作用:如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦,可以通过在字符串前面加r,抑制转义,里面的字符就不会转义了

abc = '\\'  #只打印一个\(一个\作为转义)
defg = r'\\'  #通过使用r 字符串中的字符将都不做转义
print(abc)
print(defg)
url = 'd:\tbc\def\gfh\t'  #\t 转义操作
url2 = r'd:\tbc\def\gfh\t'  #通过使用r 字符串中的字符将都不做转义
print(url)
print(url2)

运行结果:

\
\\
d:  bc\def\gfh 
d:\tbc\def\gfh\t

分片:从一个字符串中取出一部分的方法。

格式:X[I:J] 含义:取出在X中从偏移量为I,直到但不包含偏移量为J的内容。

注意:分片的左边界默认为0,右边界默认为分片序列的长度

s1 = 'adfj,k=国l78wm'
print(s1[1:6]) #得到切片:dfj,k
print(s1[2:-3]) #得到切片:fj,k=国l7
print(s1[:-3]) #得到切片:adfj,k=国l7
#左边不写,默认值为从0开始   右边不写,默认值是序列的长度len(s1)
print(s1[:]) #得到切片:全部内容
print(s1[:len(s1)]) #得到切片:全部内容
#序列从左往右...(从最后一个切,是没有值的)
print(s1[-1:1])#没有输出
#结果为去除掉最后一个字符
print(s1[:-1])#得到切片:adfj,k=国l78w

运行结果:

dfj,k
fj,k=国l7
adfj,k=国l7
adfj,k=国l78wm
adfj,k=国l78wm
 
adfj,k=国l78w

⑨、类型转换

隐式转换(自动类型转换):小范围类型数据向大范围类型数据转换,自动完成。

num1 = 8.2+5  #3自动转为浮点型,输出:13.2

运行结果:

13.2

​ 显示转换(强制类型转换):手动指定数据的类型

# num = '8'+3  #报错  需要转换
num2 = int('2')+3  #将str类型的数据”2”转为int类型数据2,输出:5
num3 = '2'+str(3)  #将int类型的数据3转为str类型数据”3”,输出:23
num4 = int(3.2) #将float类型的数据转为int类型数据,输出:3
print(num1)
print(num2)
print(num3)
print(num4)

运行结果

5
23
3

⑩、字符串的特点

特点:不可变性——在创建后不能就地改变。

注意:不能通过任何操作对原始的字符串进行改变,每个字符串都被定义为生成新的字符串作为其结果。在核心类型中,数字,字符串和元组是不可变的;列表和字典是可变的。

List(列表) 类型

列表是序列,能存放多个元素的容器

是一个任意类型的对象(元素)的位置相关的有序集合,它没有固定大小(长度可变)。

1、列表常用操作

student = ['张三','李四','王五']
print(student[1])  #根据索引找元素
print(len(student))  #列表的长度
print(student[1:3])  #分片的应用
num_list2 = [] #定义空列表

运行结果:

李四
3
['李四', '王五']

2、追加列表元素

student = ['张三','李四','王五']
#末尾追加一个元素
student.append('赵六')
print(student)
#末尾追加一个列表
s2=['小明','小红']
student.extend(s2)
print(student)
#追加任意位置,原位置占用,后面元素后移
student.insert(1,'小丽')
print(student)

运行结果:

['张三', '李四', '王五', '赵六']
['张三', '李四', '王五', '赵六', '小明', '小红']
['张三', '小丽', '李四', '王五', '赵六', '小明', '小红']

3、修改列表元素

要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值

student = ['张三','李四','王五']
student[1]='小王';
print(student)

运行结果:

[``'张三'``, ``'小王'``, ``'王五'``]

4、删除列表元素

student = ['张三', '小丽', '李四', '王五', '赵六', '小明', '小红']
#根据索引删除元素
del student[1]
print(student)
#pop返回被删除的元素
#默认删除最后一个元素
student.pop() 
print(student)
student.pop(1) #删除索引为 1的元素
print(student)
#删除(根据元素的值),返回值为被删除的元素
#删除一个不存在的元素,会报错
student.remove('小明')
print(student)

运行结果:

['张三', '李四', '王五', '赵六', '小明', '小红']
['张三', '李四', '王五', '赵六', '小明']
['张三', '王五', '赵六', '小明']
['张三', '王五', '赵六']

5、对列表元素排序

#sort() 对列表进行永久性排序,将原列表改变,升序
num_list = [1,5,7,4,9,33,2]
num_list.sort()
print(num_list)  #[1, 2, 4, 5, 7, 9, 33]
#降序
num_list.sort(reverse = True)
print(num_list)  #[33, 9, 7, 5, 4, 2, 1]
 
#对原列表,做临时排序不会更改原列表
num_list2 = sorted(num_list)
print(num_list2) #[1, 2, 4, 5, 7, 9, 33] 数据临时改变
print(num_list) #[33, 9, 7, 5, 4, 2, 1] 原来列表数据没有改变
#反转列表元素:按照中心轴转一圈
num_list.reverse()
print(num_list) #[1, 2, 4, 5, 7, 9, 33]

运行结果:

[1, 2, 4, 5, 7, 9, 33]
[33, 9, 7, 5, 4, 2, 1]
[1, 2, 4, 5, 7, 9, 33]
[33, 9, 7, 5, 4, 2, 1]
[1, 2, 4, 5, 7, 9, 33]

6、列表的特殊操作

num_list2 = [] #定义空列表
num_list3 = [6,0,5]
num_list2.append(num_list3)
print(num_list2)   # [[6, 0, 5]]
num_list2.append(num_list3)
print(num_list2)   #[[6, 0, 5], [6, 0, 5]]
print(num_list2[0][1])   # 0
#列表不能自己加自己(会循环加下去...)
num_list3.append(num_list3)
print(num_list3)   #[6, 0, 5, [...]]

`
运行结果:

[[6, 0, 5]]
[[6, 0, 5], [6, 0, 5]]
``0``
[6, 0, 5, [...]]

Tuple(元组) 类型

元组与列表类似,不同之处在于元组的元素不能修改(元素不能改变顺序、不能增伤改元素、不能给元组的元素赋值)

相比于列表,元组是更简单的数据结构,如果需要存储的一组值在程序的整个生命周期内都不变,可使用元组。

元组可以存放任意类型

可以定义一个空的元组,但意义不大(因为它不能增删改)

number = (1,5,8,2,10)
print(number[1])  #使用索引
print(number[:3]) #使用切片

运行结果:

5
(1, 5, 8)

虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改数据,可重新定义整个元组:

numbers = (200, 50)
print(numbers)
numbers = (1,2,3,4)
print(numbers)

运行结果:

(200, 50)
(1, 2, 3, 4)

Dictionary (字典)

是一系列键值对,每个键都与一个值相关联,你可以使用键来访问与之相关联的值

与键相关联的值,可以是数字、字符串、列表、字典(事实上,可将任何python对象用作字典中的值)

字典的键是无序,键不能重复,重复后,后面的值会覆盖前面的值

zidian = {'身高':175,'体重':130,'肤色':'黄色'}
print(zidian)  #查看字典结构
print(type(zidian))  #查看类型
print(zidian['体重'])  #查看字典键'体重'的值
zidian['性别'] = '男' #增加一个键值对元素
print(zidian)
zidian['身高'] = 180; #增加一个存在的键,等同于修改
print(zidian)
#根据键删除字典元素
del zidian['肤色']
print(zidian)
zidian.pop('身高')
print(zidian)
#创建一个空的字典
zidian2 = {}
print(zidian2)

运行结果:

{'身高': 175, '体重': 130, '肤色': '黄色'}
<class 'dict'>
130
{'身高': 175, '体重': 130, '肤色': '黄色', '性别': '男'}
{'身高': 180, '体重': 130, '肤色': '黄色', '性别': '男'}
{'身高': 180, '体重': 130, '性别': '男'}
{'体重': 130, '性别': '男'}
{} 

Set(集合) 类型

是一个无序(没有索引,没有顺序)不重复元素的序列,类似于字典,是一组不存储value的key的集合

set集合不支持索引

作用如下:

​ ①、去重:把一个列表变成集合,就自动去重啦

​ ②、测试两组数据之前的交集、差集、并集等关系

1、简单操作

ss1 = {1,5,3,4,2,1,'c','b','a','d'}
#查看类型
print(type(ss1))
#查看集合结构 -> 元素自动去重
#打印结果无序,结果根据计算机底层编码有关
print(ss1)
#成员运算符: in ,如果在指定的序列中找到值,返回True,否则返回False
print(5 in ss1)  #判断集合中是否存在 5

运行结果:

<class 'set'>
{1, 2, 3, 4, 5, 'c', 'b', 'd', 'a'}
True

2、列表List与集合转换Set

#将列表list转换成集合set -> 元素自动去重
list_num = [1,2,3,4,5,1,6]
ss2 = set(list_num)
#查看对象类型
print(type(list_num))
print(type(ss2))
print(ss2)
#将set转换成list
list2 = list(ss1);
print(type(list2))

运行结果:

<class 'list'>
<class 'set'>
{1, 2, 3, 4, 5, 6}
<class 'list'>

3、集合运算

set01 = set('abcda')
set02 = set('afg')
print(set01) #{'a', 'b', 'd', 'c'}
print(set02) #{'g', 'a', 'f'}
#差集 a中不包含b的东西
print(set01-set02)  #{'c', 'b', 'd'}
#并集 a与 b中所有不重复的元素
print(set01|set02) #{'g', 'c', 'f', 'a', 'b', 'd'}
#交集 a与 b中共同有的元素
print(set01&set02) #{'a'}
#a 和 b中不同时存在的元素
print(set01^set02) #{'g', 'c', 'b', 'f', 'd'}

运行结果:

{'a', 'b', 'd', 'c'}
{'g', 'a', 'f'}
{'c', 'b', 'd'}
{'g', 'c', 'f', 'a', 'b', 'd'}
{'a'}
{'g', 'c', 'b', 'f', 'd'}

常用集合操作

ss10 = set([1,2,3])
print(ss10)
ss10.add(5)  #填加一个元素
print(ss10)
ss10.update([8,9,0])  #填加多个元素
print(ss10)
ss10.remove(5) #删除一个元素
print(ss10)

运行结果:

{1, 2, 3}
{1, 2, 3, 5}
{0, 1, 2, 3, 5, 8, 9}
{0, 1, 2, 3, 8, 9}

以上就是今天的全部内容分享,觉得有用的话欢迎点赞收藏哦!

Python经验分享

学好 Python 不论是用于就业还是做副业赚钱都不错,而且学好Python还能契合未来发展趋势——人工智能、机器学习、深度学习等。
小编是一名Python开发工程师,自己整理了一套最新的Python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。如果你也喜欢编程,想通过学习Python转行、做副业或者提升工作效率,这份【最新全套Python学习资料】 一定对你有用!

小编为对Python感兴趣的小伙伴准备了以下籽料 !

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑培训的!

  • 学习时间相对较短,学习内容更全面更集中
  • 可以找到适合自己的学习方案

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、Python量化交易等学习教程。带你从零基础系统性的学好Python!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


最新全套【Python入门到进阶资料 & 实战源码 &安装工具】(安全链接,放心点击)

我已经上传至CSDN官方,如果需要可以扫描下方官方二维码免费获取【保证100%免费】

*今天的分享就到这里,喜欢且对你有所帮助的话,记得点赞关注哦~下回见 !

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值