Python入门教程(一)
一、基础语法
1、编码
默认情况下,Python3以utf-8编码的,当然你也可以指定不同的编码。utf-8能防止代码乱码的情况。所有字符串都是unicode字符串。
2、标识符
- 第一个字符必须是字母表中字母或下划线_.
- 标识符其它部分由字母、数字和下划线组成
- 标识符对大小写敏感
3、Python保留字(关键字)
保留字不能把它用作任何标识符名称。以下是Python中的所有保留字:
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>>
4、注释
- Python中单行注释用#开头
- 多行注释用多个#号,或'''和"""
- 多行注释可以使用Ctrl+/一键注释
5、行与缩进
Python中最具有特色的就是使用缩进表示代码块,缩进的空格数是可变的,但同一个代码块的语句必须包含相同的缩进空格数。
通常情况下,缩进空格数可以用Tab一键缩进。
值得注意的是,缩进空格数不对会导致运行错误。所以我们一定要多检查代码中的缩进空格数。
6、多行语句
在Python中如果遇到一行语句太长,要想换行的话可以使用“\”实现多行语句。但如果在【】、{}、()中的多行语句中,不需要使用“\”,直接换行。例如:
total=1111+\22222+\33333
total=("11111","22222","33333")
7、数字(number)类型
Python中数字有四种类型:整数、布尔型、浮点数和复数
- int(整数),如:5.
- bool(布尔型),如:TRUE、FALSE
- float(浮点数),如:1.23、3E-5
- complex(复数),如:1+2i
8、字符串(string)
- Python中单引号'和双引号"使用完全相同
- 使用三引号'''或"""可以指定一个多行字符串
- 转义符\
- \用来转义,使用r可以让反斜杠不发生转义。
- 按字面意义级联字符串
- 字符串使用+运算符连接在一起,用*运算符重复
- 字符串有二种索引,从左往右0开始,从右往左-1开始
- 字符串不能改变
- 没有单独的字符类型,一个字符就是长度为1的字符串
- 字符串的截取语法格式:变量【头下标:尾下标:步长】
9、空行
函数或类之间要用空行分隔,表示一段新的代码的开始。
空行与代码缩进不同,空行不是Python语法的一部分。书写是也不用插入空行,运行也不会出错。空行的作用在于日后代码的维护或重构
10、等待用户输入
input("\n\n按下enter键后退出")
在代码中。\n\n输出时会输出二个新的空行。
11、同一行显示多条语句
Python可以在同一行使用多条语句,语句之间使用分号;分割
使用交互式命令行执行,输出结果为:
import sys;x='runoob';sys.stdout.write(x+'\n')
runoob
7
输出结果的7表示字符数,runoob有6个字符,\n表示一个字符所以就有7个字符数
12、多个语句构成代码组
缩进相同的一组语句构成代码块,称为代码组
如:if、while、def、class这些复合语句,以冒号:结束改行之后的一行或多行代码构成代码组
13、print输出
print默认输出是换行的,如果要实现不换行需在变量末尾加上end=""
如:
x="a"
y="b"
#换行输出
print(x)
print(y)
#不换行输出
print(x,end="")
print(y,end="")#输出结果为:
a
b
ab
14、import与from...import
在Python中用import或from...import导入相应的模块
- 将整个模块(somemodule)导入,格式:import somemodule
- 从某个模块导入某个函数,from somemodule import somefunction
- 从某个模块导入多个函数,from somemodule import function1,function2,function3
- 从某个模块导入全部函数,from somemodule import *
- *代表所有函数
15、命令行参数
可以执行来查看基本信息,Python中可以使用python -h查看各种参数。
二、基本数据类型
在Python中每个变量在使用前必须赋值,变量赋值以后才会被创建。
等号=运算符左边是变量名,运算符右边是变量的值。
1、多个变量赋值
Python中可以同时为多个变量赋值,如:
x=y=f=5(三个变量被赋予相同的数值)
同时也可以为多个对象指定多个变量,如:
x,y,d=5,6,"dfnjbjh" (两个整型对象5与6分别给变量x,y,字符串对象给变量d)
2、标准数据类型
number(数字)、string(字符串)、list(列表)、tuple(元祖)、set(集合)、dictionary(字典)。其中number、string、tuple为不可变数据,set、list、dictionar为可变数据
3、number(数字)
Python支持int、float、bool、complex。可以通过type()函数查询对象类型,如:
>>> a,b,c,d=3,2.35,True,4+4j
>>> print(type(a)),type(b),type(c),type(d)
<class 'int'>
(None, <class 'float'>, <class 'bool'>, <class 'complex'>)
>>>
Python中通过del语句删除单个或多个对象,如:
- del var
- del var1,var2,var3...
4、数值运算
在Python中+加法、-减法、*乘法、/除法(得到一个浮点数)、//除法(得到一个整数)、%取余、**乘方
注意:
- Python可以同时为多个变量赋值,如x,y=5,5.14
- 一个变量可以通过赋值指向不同类型的对象
- 数值的除法有两个,/浮点数,//整数
- 在混合计算时,Python会把整型转换成浮点数
5、string(字符串)
前面提过字符串索引从左边0开始,从右边-1开始,如,
>>> str='abcdefg'
>>> print(str) #输出字符串
abcdefg
>>> print(str[0:-1]) #输出第一个到倒数第二个的所有字符
abcdef
>>> print(str[0:-2]) #输出第一个到倒数第三个的所有字符
abcde
>>> print(str[2:5]) #输出第三个到第5个的字符
cde
>>> print(str[2:]) #输出第三个开始的所有字符
cdefg
>>> print(str*3) #星号*表示复制当前字符串的次数
abcdefgabcdefgabcdefg
>>> print(str+"ABCD") #连接字符串
abcdefgABCD
>>>
前面也提过\反斜杠是转义字符,如果你不想让反斜杠发生转义,可在前面添加r,如,
>>> print("小明\n喜欢玩游戏")
小明
喜欢玩游戏
>>> print(r"小明\n喜欢玩游戏")
小明\n喜欢玩游戏
6、列表(list)
列表是写在方括号[]之间,用逗号分隔开元素。同时列表和字符串的索引和截取大致相同如,
>>> list=["grg","grg",5,3.84]
>>> list2=[456,"gerg"]
>>> print(list)
['grg', 'grg', 5, 3.84]
>>> print(list[0])
grg
>>> print(list[1:3])
['grg', 5]
>>> print(list[3:])
[3.84]
>>> print(list*3)
['grg', 'grg', 5, 3.84, 'grg', 'grg', 5, 3.84, 'grg', 'grg', 5, 3.84]
>>> print(list+list2)
['grg', 'grg', 5, 3.84, 456, 'gerg']
7、元祖(tuple)
元祖与列表类似,不同在于元祖的元素不能修改。元祖写在小括号()里面
在这里就不过于介绍,可以看看前面字符串与列表的例子。
8、set(集合)
集合是由一个或数个整体组成的,构成集合的事物或对象称为元素或成员
集合能够进行成员关系测试和删除重复元素如,
>>> set={"grge","gnjkn","abccd","grge",1546}
>>> print(set)
{1546, 'gnjkn', 'grge', 'abccd'}
9、字典(dictionary)
字典是一种映射类型,用{}标识,它是一个无序的对象集合。
字典的关键字必须为不可变类型,且不能重复
三、数据类型转换
数据类型的转换一般情况下只需将数据类型作为函数名即可。
Python数据类型转换可分为两种:
- 隐式类型转换(自动完成)
- 显式类型转换(使用 函数来转换)
1、隐式类型转换
隐式类型指的是会将一种数据类型转换成另一种数据类型。如,
num_int = 123
num_flo = 1.23num_new = num_int + num_floprint("datatype of num_int:",type(num_int))
print("datatype of num_flo:",type(num_flo))print("Value of num_new:",num_new)
print("datatype of num_new:",type(num_new))#输出结果为:
datatype of num_int: <class 'int'>
datatype of num_flo: <class 'float'>
Value of num_new: 124.23
datatype of num_new: <class 'float'>
在代码中num_int为整型,num_flo为浮点型。在num_new中之所以为浮点型是因为Python将小的数据类型转换为大的数据类型,避免数据丢失。
2、显式类型转换
显式类型转换指的是用户将对象是数据类型转换为所需的数据类型。
- int()强制转换成整型
- float()强制转换成浮点型
- str()强制转换成字符串类型
所以整型和字符串类型就是用强制类型转换完成的,如
num_int = 123
num_str = "456"print("num_int 数据类型为:",type(num_int))
print("类型转换前,num_str 数据类型为:",type(num_str))num_str = int(num_str) # 强制转换为整型
print("类型转换后,num_str 数据类型为:",type(num_str))num_sum = num_int + num_strprint("num_int 与 num_str 相加结果为:",num_sum)
print("sum 数据类型为:",type(num_sum))
#输出结果为
num_int 数据类型为: <class 'int'>
类型转换前,num_str 数据类型为: <class 'str'>
类型转换后,num_str 数据类型为: <class 'int'>
num_int 与 num_str 相加结果为: 579
sum 数据类型为: <class 'int'>
四、推导式
Python推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体。
推导式分为:列表推导式、字典推导式、集合推导式、元祖推导式
以下一次分析介绍:
1、列表推导式
格式:(1)、[out_exp_res for out_exp in input_list]
[表达式 for 变量 in 列表]
(2)、[out_exp_res for out_exp in input_list if condition]
[表达式 for 变量 in 列表 if 条件]
看不懂表达式也不要着急,接下来的例子将分析
names=["grg","hyh","hthj","yuth"]
new_names=[name.upper() for name in names if len(name)>3]
print(new_names)
#输出结果为:
['HTHJ', 'YUTH']
从以上代码中可以看到将长度小于或等于3的字符串过滤掉,剩下的转换机成大写字母
x=[i for i in range(30) if i%3==0]
print(x)
#输出结果为:
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]
以上代码是计算30以内可以被3整除的数。其中range是指范围 %取余
2、字典推导式
格式:
(1)、{key_exp:value-exp for value in collection}
(2)、{key-exp:value-exp for value in collection if condition}
使用字符串及其长度创建字典
x=["sdfg","brgrh","btgnruh","bt"]
newx={key:len(key) for key in x}
print(newx)
#输出结果为:
{'sdfg': 4, 'brgrh': 5, 'btgnruh': 7, 'bt': 2}
计算数字的平方并创建字典
x=[2,6,8]
dic={x:x**2 for x in x}
print(dic)
print(type(dic))
#输出结果
{2: 4, 6: 36, 8: 64}
<class 'dict'>
3、集合推导式
格式:
(1)、{expression for item in sequence}
(2)、{expression for item in wequece if condition}
集合推导式与列表推导式类似
同样的计算数字的平方并创建集合
x=[2,6,8]
dic={x**2 for x in x}
print(dic)
print(type(dic))
#输出结果
{64, 4, 36}
<class 'set'>
输出不是abc的字母并创建集合
x=("fefegrhabcrghuahhcb")
y={x for x in x if x not in "abcf"}
print(y)
print(type(y))
输出结果
{'r', 'e', 'g', 'h', 'u'}
<class 'set'>
4、元祖推导式
元祖推导式可以利用range区间、元祖、列表、字典、集合等数据类型生成一个满足指定需求的元祖
格式:
(1)、(expression for item in sequence)
(2)、(expression for item in wequece if condition)
元祖推导式和列表推导式的用法相同,只是元祖推导式是用()
x=range(1,20)
a=(x for x in x)
print(a)
print(type(a))
print(tuple(a)) #使用tuple()函数可以直接将生成器对象转换成元祖
#输出结果为
<generator object <genexpr> at 0x00000249BD46F510> #返回的是生成器
<class 'generator'>
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
五、注释
Python中是注释有单行注释和多行注释。
- 单行注释以#开头
- 多行注释以'''或者"""注释
- 使用快捷键Ctrl+/一键注释
六、运算符
Python语言支持以下类型的运算符:算数运算符、比较运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符、运算符优先级
接下来将一一介绍。
1、算术运算符
运算符有:+、-、*、/、%(取余)、**(幂)、//(取整数),如:
a=15
b=5
c=0c=a+b
print("1.",c)
c=a-b
print("2.",c)
c=a*b
print("3.",c)
c=a/b
print("4.",c)
c=a%b
print("5.",c)
c=a**b
print("6.",c)
c=a//b
print("7.",c)
#输出结果为:
1. 20
2. 10
3. 75
4. 3.0
5. 0
6. 759375
7. 3
2、比较运算符
比较运算符:==、!=、>、<、>=、<=,如:
a=15
b=5
if(a==b):print("a等于b")
else:print("a不等于b")
if(a!=b):print("a不等于b")
else:print("a等于b")
if(a>b):print("a大于b")
else:print("a小于等于b")
if(a>=b):print("a大于等于b")
else:print("a小于b")
#输出结果为:
a不等于b
a不等于b
a大于b
a大于等于b
3、赋值运算符
赋值运算符有:=(简单的赋值运算符)、+=(加法赋值运算符)、-=(减法赋值运算符)、*=(乘法赋值运算符)、/=(除法赋值运算符)、%=(取模赋值运算符)、**=(幂赋值运算符)、//=(取整数)、:=(海象运算符),如:
a=15
b=5
c=0
c=a+b
print(c)
c+=a
print(c)
c-=a
print(c)
c*=a
print(c)
c/=a
print(c)
c%=a
print(c)
c//=a
print(c)
#输出结果为
20
35
20
300
20.0
5.0
0.0
4、位运算符
位运算符是把数字看做二进制来进行的。
位运算符有:&(按位与运算符)、|(按位或运算符)、^(按位异或运算符)、~(按位取反运算符)、<<(左移动运算符)、>>(右移动运算符)
二进制加法法则:0+0=0 0+1=1 1+0=1 1+1=0(向高位进1)
减法法则:0-0=0 1-0=1 1-1=0 0-1=1(向高位借1)
乘法法则:0*0=0 0*1=0 1*0=0 1*1=1
除法法则:0/0=0 0/1=0 1/0=0
看到这些你是不是还不会计算二进制呢?
下面我们先进行二进制练习吧...
把60转换成二进制
同理可以输出13=0000 1101
a=60 #60=0011 1100
b=13 #13=0000 1101
c=0
c=a&b
print(c)
c=a|b
print(c)
c=a^b
print(c)
c=~a
print(c)
c=a<<2
print(c)
c=a>>2
print(c)
#输出结果
12
61
49
-61
240
15
5、逻辑运算符
逻辑运算符有:and or not
6、成员运算符
除了以上运算符之外还包含了一系列的成员,包括字符串、列表、元祖
如:
a = 10
b = 20
list = [1, 2, 3, 4, 5]if (a in list):print("1 - 变量 a 在给定的列表中 list 中")
else:print("1 - 变量 a 不在给定的列表中 list 中")if (b not in list):print("2 - 变量 b 不在给定的列表中 list 中")
else:print("2 - 变量 b 在给定的列表中 list 中")# 修改变量 a 的值
a = 2
if (a in list):print("3 - 变量 a 在给定的列表中 list 中")
else:print("3 - 变量 a 不在给定的列表中 list 中")
#输出结果
1 - 变量 a 不在给定的列表中 list 中
2 - 变量 b 不在给定的列表中 list 中
3 - 变量 a 在给定的列表中 list 中
7、身份运算符
is(判断二个标识符是不是引用一个对象)
is not(判断二个标识符是不是引用自不同对象)
a=10
b=10
if(a is b):print("相同标识")
else:print("不相同标识")
if(id(a)==id(b)):print("相同标识")
else:print("不相同标识")#输出结果
相同标识
相同标识
8、运算符优先级
a = 20
b = 10
c = 15
d = 5
e = 0e = (a + b) * c / d #( 30 * 15 ) / 5
print ("(a + b) * c / d 运算结果为:", e)e = ((a + b) * c) / d # (30 * 15 ) / 5
print ("((a + b) * c) / d 运算结果为:", e)e = (a + b) * (c / d) # (30) * (15/5)
print ("(a + b) * (c / d) 运算结果为:", e)e = a + (b * c) / d # 20 + (150/5)
print ("a + (b * c) / d 运算结果为:", e)
#输出结果
(a + b) * c / d 运算结果为: 90.0
((a + b) * c) / d 运算结果为: 90.0
(a + b) * (c / d) 运算结果为: 90.0
a + (b * c) / d 运算结果为: 50.0
Python入门教程(一)相关推荐
- Python入门教程:很多人推荐学 Python 入 IT ,如果学完 Python 找不到工作怎么办...
Python入门教程:很多人推荐学 Python 入 IT ,但是如果学完 Python 找不到工作怎么办,这也是很多人担心的问题. 很多人推荐通过学习 Python 入行 IT 一是因为 Pytho ...
- python入门教程完整版(懂中文就能学会)-Python入门教程完整版(懂中文就能学会)...
不过小编的内心是强大的,网友虐我千百遍,我待网友如初恋,因为今天又给大家带来了干货,Python入门教程完整版,完整版啊!完整版! 言归正传,小编该给大家介绍一下这套教程了,希望每个小伙伴都沉迷学习, ...
- python入门教程非常详细-Python编程入门教程:从入门到高级,非常详细
本文的资料和内容是我下载的,觉得非常有用,于是转过来大家瞧瞧: 这里给初学Python的朋友提供一些建议和指导吧.大神请无视, 俗话说:授人以鱼不如授人以渔.所以我这里只是阐述学习过程,并不会直接详细 ...
- 小学生python入门-极度舒适的全套 Python 入门教程,小学生看了也能学会
编程几乎已经成为现代人的一门必修课,特别是 Python ,不仅长期霸占编程趋势榜.薪资榜第一,还屡屡进入小学教材,甚至成为浙江省信息技术高考项目-- 今天,小编带来了一门极度舒适的 Python 入 ...
- python入门教程 官方-Python自学入门?
如果你是零基础入门 Python 的话,建议初学者至少达到两个目标: 会用,理解. 会用 通过 Python 入门教程,学习 Python 的语法,熟悉 Python 标准库的使用. 目前 Pytho ...
- python第一次使用教程-python入门教程第一日
python 官方下载地址:https://www.python.org/downloads/ 根据系统的不同安装包也不同,但是开发的程序兼容各个操作系统,这点是python能吃得开的原因之一. py ...
- python语言入门教程-菜鸟学Python入门教程大盘点|7个多月的心血总结
原标题:菜鸟学Python入门教程大盘点|7个多月的心血总结 阅读本文大概需要5分钟 菜鸟学python已经写了70几篇,入门的教程已经快写完了,我把入门的文章整理了一下,下面是入门篇的一些总结,也是 ...
- python快速编程入门黑马-新手如何快速入门Python编程?/开发python入门教程
Python从入门到实践的教程是什么? 第一阶段Python与Linux数据这是Python的入段,也是帮助零基础学员打好基础的重要阶段,让零基础学员可以具备基础的编程能力,并掌握MySQL进阶内容. ...
- python入门教程非常详细-python初学者怎么入门:python入门教程非常详细
python安装后如何打开 ,先找到python安装位置. python学习网,大量的免费python入门教程,在线学习! 进装目录之后,点击Lib文件夹. 相关推荐:<Python教程> ...
- python入门教程收藏_python入门教程:超详细保你1小时学会Python,快来收藏看看...
简介:简介(转发文章+私信[Python]获取资料方式)1.Hello world安装完Python之后,打开IDLE(Python GUI) ,该程序是Python语言解释器,你写的语句能够立即运行 ...
最新文章
- 科学研究发现:说谎,是儿童成长的里程碑
- 无法打开物理文件“E:\Database\VRVIES6841-FZ01-Global\VRVEIS.mdf”。操作系统错误 5:“5(拒绝访问。)”...
- python与lua闭包的一点不同
- apache 2许可证_如何理解Apache 2专利许可
- [原创]java WEB学习笔记36:Java Bean 概述,及在JSP 中的使用,原理
- 5个元素排序java_Android-java-如何按对象内的某个值对对象列表进行排序
- 亚特兰大,I got you!
- 初窥QuickTest脚本录制
- 怎么练字才会有效果,多久才能有体现
- linux系统中查看系统内存或flash使用情况
- 广外男生病毒代码剖析
- git gui 中文乱码解决方法
- OpenGL学习书籍推荐
- 记录一下CSR蓝牙做DFU的流程
- mysql的安全加固方法_MySQL数据库安全加固方法
- java-opencv文档
- 使用 VMware 16 RHEL7.7 虚拟机静默安装 Oracle 19c RAC
- STC15系列单片机与 OV7670 SCCB通讯
- 机器人磨内孔_半导体阀块内孔机器人打磨,效果超乎想象!
- 【为生活开发系列之二】Android微信新版全自动抢红包助手
热门文章
- 盘点一道使用pandas.groupby函数实战的应用题目
- 处理PDF文档比较强大的库
- Ubuntu桌面生存指南
- 桥梁工程相关c语言程序,土木工程专业(路桥梁工程方向)本科生培养方案.doc
- IDEA 常用快捷键以及调试
- html怎么让两个表单并行,HMLT/CSS:如何将一个表单分成两个部分,使其并排显示?
- 基于mysql的高校学生管理系统_基于Web的学生考勤管理系统的设计与实现(Struts2,MySQL)...
- C/C++打印圣诞树||秀翻全场!
- mfc实现加载jpg图片
- CSS实现磨砂玻璃(毛玻璃)效果样式