2.1 Python语言基本语法
Python最具特色的就是使用缩进来表示代码块,不需要使用大括号{}.缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数.
示例:
answer=int(input("请输入一个整数:"))
if answer==2:
print("it's True")
else:
print("it's False")
#out:
# 请输入一个整数:3
# it's False
一般来说,在编写代码时尽量不要使用过长的语句,应保证一行代码不超过屏幕宽度,如果语句确实太长, Python 允许在行尾使用续行符"\"表示下一行代码仍属于本条语句,或者使用圆括号把多行代码括起来表示是一条语句。另外, Python 代码中有两种常用的生释形式,即"#"和三引号。"#"用于单行注释,表示本行中"#"后的内容不作为代码运行:三引号常用于大段说明性的文本注释。
2.1.1 基础数据类型
Python 3中有6种标准的数据类型: Number (数字)、 String (字符串)、 List (列表)、 Tuple (元组)、 Set (集合)和 Dictionary (字典)。其中,不可变数据类型有 Number 、 String 、 Tuple :可变数据类型有 List 、 Dictionary 、 Set 。
Python 3支持的数字类型有 int (整数)、 float (浮点数)、 bool (布尔型)、 complex (复数)4种。在Python3里,只有一种 int 类型,表示为长整型,没有大小限制; float 就是通常说的小数,可以用科学记数法来表示; bool 型有 True 和 False 两个取值,分别对应的值为1和0,并且可以和数字相加; complex 由实部和虚部两部分构成,用 a + bj 或 complex ( a , b )表示,实数部分 a 和虚数部分 b 都是浮点型。
2.1.2 变量和赋值
Python 中的变量是不需要声明数据类型的,变量的"类型"是所指的内存中被赋值对象的类型,例如:
brower =' Google '#字符串类型
brower =100 #整数类型
brower =123.45 #浮点数类型
brower =2+3j #复数类型
同一变量可以反复赋值,而且可以是不同类型的变量,这也是 Python 语言被称为动态语言的原因,例如:
brower =' Google '#字符串类型
brower =100 #整数类型
brower =123.45 #浮点数类型
brower =2+3j #复数类型
并且, Python 也允许同时为多个变量赋值。
多变量赋值示例:
In [2]: brower , count , addsum =' Google ',100,123.45
print ( brower , count , addsum )
Out [2]: Google 100123.45
2.1.3 运算符和表达式
运算符用于执行程序代码运算,会针对一个以上操作数来进行运算。 Python 语言支持算术运算符、关系运算符和逻辑运算符。
运算符 | 功能 |
+,-,*,/,%,//,** | 算数运算:加,减,乘,除,取模,整除,幂 |
<,>=,>,>=,!=,== | 关系运算符 |
and,or,not | 逻辑运算符 |
各类运算符之间的优先级顺序为:逻辑运算符<关系运算符<算术运算符。如
2+3>5+6and4+9>4+7计算次序依次是算术运算、关系运算、逻辑运算。为了增强代码的可读性,可合理使用括号。此外, Python 还支持形如3<4<5的表达式,它实际上等价于表达式:3<4 and 4<5。
运算符 | 说明 | 范例 | 结果 |
- | 求反 | -5 | -5 |
* | 乘法 | 8.5*3.5 | 29.75 |
/ | 除法 | 11/3 | 3 |
% | 取余数 | 8.5%3.5 | 1.5 |
+ | 加法 | 11+3 | 14 |
- | 减法 | 5-19 | -14 |
** | 乘法(幂) | 2**5 | 32 |
表达式是由运算对象和运算符组成的有意义的式子。
2.1.4 字符串
字符串被定义为引号之间的字符集合,在 Python 中,字符串用单引号(')、双引号(")、三引号(''')括起来,且必须配对使用。当 Python 字符串中有一个反斜杠时,表示一个转义序列的开始,称反斜杠为转义符。所谓转义字符,是指那些字符串中存在的有特殊含义的字符。表2-3列出了常用的转义字符。
转义字符及说明
转义字符 | 说明 |
\ n | 换行 |
\ | 反斜杠 |
\" | 双引号 |
\t | 制表符 |
Python 允许用 r 十""的方式表示""内部的字符串,默认不转义。
In [3]: print (" python \ nprogram ")
print ( r " python \ nprogram ")
Out [3]: python
program
python \ nprogram
1.字符串的运算
字件串子串可以用分离操作符([])或者([:])选取, Python 特有的索引规则为:第添字符的索引是0.后续字符索引依次递增,或者从右向左编号,最后一个字符的索引号为一1、前面的字符依次减小。
运算符 | 说明 | 范例 | 结果 |
+ | 连接操作 | str1 =' Python ' str2='program !' str1 +str2 | ' Python , program !' |
* | 重复操作 | str =' Python ' str *2 | PythonPython |
[ ] | 索引 | str =' Python ' str [2] str2[-1] | ' t ' ' n ' |
[:] | 切片 | str =' Python ' str [2: 5] | ' tho ' ' tho ' |
注:如果+后面的数字是0,就会产生一个空字符串。例如,' python '*0的运算结果是' '。
2.字符串的常见方法属性
方法/函数 | 作用 |
str . capitalize () | 返回字符串的副本,其首字符大写,其余字符小写 |
str . count ( sub [, start [, end ]]) | 返回[ start , end ]内 sub 的非重叠出现次数, start 和 end 可选返回布尔值,表示字符串是否以指定的 sub 结束,同类方法为 str , startswith () |
str . endswith ( sub [, start [, end ]]) | 返回布尔值,表示字符串是否以指定的sub结束,同类方法为str.startswith() |
str . find ( sub [, start [, end ]]) | 返回字符串中首次出现子串 sub 的索引位置, start 和 end 可选,若未找到 sub ,返回一1,类似方法为 str . index () |
str . split ( sep = None ) | 使用 sep 作为分隔符拆分字符串,返回字符串中单词的列表,分隔空字符串 |
str . strip ([ chars ]) | 删除字符串前端和尾部 chars 指定的字符集,如果省略或None ,则删除空白字符 |
str . upper ()/ str . lower () | 将字符串中所有字符转换为大写/小写 |
2.1.5 流程控制
1. 条件语句
分支结构又称为选择结构,根据判断条件,程序选择执行特定的代码。在 Python 语
言中、条件语句使用关键字 if 、 elif 、 else 来表示,基本语法格式如下:
if condition:
if - block
[ elif condition:
elif - block
else:
else - block ]
其中,冒号(:)是语句块开始标记,[]内为可选项。另外,在 Python 中,当 condition 的值为 False 、0、 None 、""、()、[]、{})时,会被解释器解释为假( False )。
【例2-4】判断一个学生的考试成绩是否及格:如果成绩大于或等于60分,则打印"及格",否则输出"不及格"。
In [4]:
score = float ( input ("请输入成绩:"))
if score >=60:
print ("及格")
else :
print ("不及格")
Out [4]:请输入成绩:80
及格
注意:一个 if 语句最多只能拥有一个 else 子句,且 else 子句必须是整条语句的最后
一个子句, else 没有条件。
【例2-5】将化学分子式翻译为其所表示物质对应的英文。
In [5]: compound = input ("请输入化学分子式:")
if compound =="H20":
print (" water ")
elif compound =="NH3"
print (" ammonia ")
elif compound =="CH4"
print (" methane ")
else :
print (" no exist ")
Out [5]:请输入化学分子式:H20
water
2.循环语句
循环结构是指满足一定条件的情况下,重复执行特定代码块的一种编码结构。 Python 中,常见的循环语句是 while 循环和 for 循环。
1) while 循环
while 循环的语法格式:
while condition
while - block
【例2-6】求1+2+3+4+5的值。
sum = 0
i = 1
while<6:
sum = sum +1
i = i+1
print (" sum is * d ."% sum )
Out [6]: sum is 15.
while 循环嵌套:语句块中的语句也可以是另一个 while 语句。
【例2-7】输出20以内能被3整除的数。
in [7]: i = 0
whilei < 20:
if i%3 == 0:
print(i, end ="")
i = i +1
Out [7]:0 3 6 9 12 15 18
2) for 循环
for 循环的语法格式:
for v in Seq :
for _ block
其中, v 是循环变量; Seq 是序列类型,涵盖字符串、列表及元组,在每轮循环中,循环变量被设置为序列类型中的当前对象; for _ block 是循环体,用来完成具体功能。
【例2-8】求1+2+3+4+5的值。
In [8]:
sum =0
for i in range (1,6):
sum = sum + i
print ("1+2+3+4+5 = %d."% sum )
Out [8]:1+2+3+4+5=15.
本例中的 range ()函数返回一个可迭代对象,语法格式如下:
range ( start , end , step )
参数说明: start 是数列开始值,默认值为0; end 为终点值,不可缺省; step 是步长默认值为1。
这个函数产生以 start 为起点,以 end 为终点(不包括 end ),以 step 为步长的 int 型列表对象。这里的3个参数可以是正整数、负整数或者0。
【例2-9】将下面数组中的奇数变成它的平方,偶数保持不变。
In [9]:
x =[1,2,3,4,8,7,22,33,88]
print ("原数据:", x )
for i in range ( len ( x )):
if ( x [ i ]%2)!=0: #判读第 i 个元素是否为奇数
x [ i ]= x [ i ]* x [ i ]
print ("处理后:", x )
Out [9]:原数据:[1,2,3,4,8,7,22,33,88]
处理后:[1,2,9,4,8,49,22,1089,88]
注:本文章主要是摘录<<Python数据分析与可视化>>(第2版)(清华大学出版社)
摘录不易,不求素质三连,但求点赞.