Python语法之一 | 一步一步跟我学Python(二)
- 1.本系列基于新生大学课程《Python编程&数据科学入门》和公开的参考资料;
- 2.文章例子基于python3.6,使用Windows系统(除了安装,其余基本没有影响);
- 3.我是纯小白,所以,错误在所难免,体系会逐渐成熟,我会经常进行更新;如果您发现了错误,也烦请帮我指出来,在此先谢过了。
这一次主要讲Phython的基础语法。我所做的工作是将课程和相关的参考资料整合起来,变成一个相对完整的体系。
因为我的学习还是非常初步的,所以,我的体系是逐渐成熟的,如果文章中有理解错误的,也请你帮我指出来,互相讨论,我们都会学到更多。:)我会定期将新学到的内容进行更新。
今天主要讲五个方面的内容,分别是:
- Python语法基础
- Python的计算
- 变量
- 数字
- 一些小技巧
一、Python语法基础
1.Python的标识符
Python的标识符有字母、数字和下划线“_”。
- 所有的标识符都包括这3部分,但是不能以数字开头。
- python的标识符是区分大小写的。
- 通常,下划线“_”具有特殊的意义。
比如,“_foo”代表不能直接访问的雷属性,需要提供接口才能访问,也就是说,不能用“from xxx import”而导入(这些函数不懂不要紧,后来知道这些函数就明白了);
以双下划线开头的__foo代表类的私有成员;
以双下划线开头和结尾的“foo”代表Python里特殊方法专用标识。
2.保留字符
python中有一些字符是不能作为常数、变量或其他标识符的。见下表:
and exec not
assert finally or
break for pass
class from print
continue global raise
def if return
del import try
elif in while
else is with
except lambda yield
要注意的是:这些保留字只是指小写的。如果有大写的,仍然可以作为标识符来使用。比如:
and =1
print(and)
执行的话,就会报错:
File "<ipython-input-6-354ec25dd56c>", line 1
and = 1
^
SyntaxError: invalid syntax #无效的变量
因为“and”是无效变量。
而如果这样:
And = 1
print(And)
程序会输出正确结果:
1
3.行和缩进
python的代码块不需要用括号{}括起来,它是使用缩进来写代码的。这是它与其他语言在“外表”上一个最大的区别。
-
缩进的空白数量是可以变化的,通常可以使用空格、制表符(TAB键)来缩进。
-
通常当需要缩进的时候,程序会自动缩进一个制表符,而这个制表符是空2格还是4格,或其他指定的空格,都是可以设置的。
-
在一个程序里面,这个缩进必须是相同数目的空格或者制表符
比如,下面这段代码:
a = 1
if a:
prinf("True")
else a = 0:
print("False")
'''
因为两个缩进的长度不一样,程序就会报错:
python
File "<ipython-input-18-83a7db6a3767>", line 3
else a = 0:
^
SyntaxError: invalid syntax
'''
- 多行语句。python的语句一般以新行作为语句的结束符;但是也可以使用右斜杠将一行的语句分为多行显示,比如:
sum = item_0 + \
item_1 + \
itim_2 +
另外,语句中包含[],(),{}这些括号,就不需要使用上面的多行连接符了。
- 有一些函数输出后是默认换行的
比如,使用print(content)在打印内容后,自动换行。如果不想换行,可以使用print(content,end='')。
4.注释
在python中有两种注释的方法:
第一种是用“#”进行单行注释;第二种是用三引号(单引号'''或双引号""")进行多行注释。在#之后、三引号之间的内容程序是不会执行的,只作为阅读代码而用。
a = 3 # 定义变量a
b = ‘dkk’ # 定义变量b
'''
多行注释
多行注释
多行注释
'''
5.格式化
fomat函数可以格式化输出的内容。
比如:format(content, '4d')表示打印的是4位整数.
print(format(1,'4d'),end='')
print(format(2,'4d'),end='')
print('\n')
print(format(11,'4d'),end='')
print(format(12,'4d'),end='')
print('\n')
print(format(111,'4d'),end='')
print(format(112,'4d'),end='')
用这种方法打印出来的数值不论大小,都占4个格子,便于对齐。
1 2
11 12
111 112
二、Python的计算
我们可以把phython当成一个计算器来用。
比如,可以在输入框里输入:
1+2
按“Shift + Enter”输出结果:3
bmi = 60 / 1.75 ** 2
bmi
就得到了一个人的bmi值,输出的结果是:
19.591836734693878
python主要可以进行下面这些类型的运算:
1.算数运算
假设a=10,b=20。主要的算数运算符如下:
比较少见的是后面3种,我们再举例如下:
9 % 5
9 // 5
2 ** 3
结果分别是:
4
1
8
2.比较运算
就是一种比较两个数字的大小,通常用在条件语句里。主要的比较运算符如下:
判断相等是用两个“=”,这个在使用中是需要注意的。
3.赋值运算
赋值主要通过“=”来达成,但数值类型的变量还可以通过多种方法实现赋值:
a = 15
b = 3
c += a
c
c/= a
c
输出的是:
18
5
这两个赋值运算分别是加法赋值和除法赋值,其余的也一样,在读代码的时候要注意。
三、变量
在Python中,变量的使用非常方便。
a = 123 # a是整数
print(a)
a = “123” # a是字符串
print(a)
123
"123'"
1.变量无需定义和声明
直接用“=”就能给一个变量赋值,然后就可以使用了。
2.变量可以反复赋值,而且可以赋不同类型的值
可以把任何数据类型赋值给变量,同一个变量可以反复赋值,也可以是不同类型的变量。
像这样变量本身不固定的语言,称之为动态语言。与之相对的静态语言,需要指定变量的类型,如果赋值不匹配,就会报错。
3.变量的本质
变量是存储在内存中的值。这句话的意思是说,创建变量的时候,是在内存中开辟出一个空间,这个空间的名字就是变量名。
换句话说,变量永远指向一个具体的值,而不能指向另外一个变量。
比如:
a = 5
b = a
a = 10
b
输出的“b”会是多少呢?
按我们一般的思维,应该是10。但是,正确的答案是5。
执行的过程如下:
- a指向数值5;
- b被赋值之后,b也指向5;
- 变量a被重新赋值,现在a指向10,而b保持不变;
- 输出b的值:5
4.多个变量赋值
python可以给多个变量一起赋值,主要有两种形式:
a = b = c = 'xyz'
或者:
a, b, c = 1, 2, 'jack'
上面的给a,b,c都赋同样的值;第二个赋了三个不同类型的值。
5.变量名
变量名是区分大小写的。也就是说,变量“a”和变量“A”是不同的变量。
变量尽量取比较有意义的名称。不要用a 、b、c这样没有意义的词,当变量多的时候,容易搞混。
比如定义身高和体重,最好用height、weitht。
四、数字
在Python中,基础的数字类型有4种:
- 布尔型
- 整型
- 浮点型
- 复数
1.布尔型
-
布尔型的值永远只有两个:True和False。
-
通过比较运算和条件表达式,都会产生True或False。
比如:
z = 1 <100
print(z)
上面的比较判断是真的,z<100,结果就是:
True
-
可以直接给变量赋以布尔值,比如:
z = True
f = False -
在数学运算中,布尔值的True和False分别对应1和0 。
布尔值也可以理解为整型的子类。 -
不是通过比较才能产生布尔值,所有python对象都有一个内建的布尔值。空值、0、none的布尔值是False,其他的都是True。
比如:
a = [1,2,3]
if a:
print('This is true.')
else:
print('False')
输出:
'This is true.'
如果给a赋值“0”,或者“[]”,输出就为'False'。
- 通过bool函数可以查询一个对象布尔值。
bool('Hello world'),bool(''),bool((1,3,4))
输出:
(True, False, True)
- 布尔值可以通过and和or来运算
True or False
True
True and False
False
- 布尔值的首字母是大写的,如果小写的话,就算一个变量了。
true or false
程序会出错:
NameError Traceback (most recent call last)
<ipython-input-9-a5b49643879d> in <module>()----> 1 true or false
NameError: name 'true' is not defined
程序默认true 和false是一个变量,而且没有被赋值和定义。
2.整型
也就是整数,在phython3之前还区分标准整数(int)和长整型(long)。现在已经不需要区分了.
Python可以处理任意大小的整数,包括负数。比如:1, 1000, -300, 0 ,等等。
整型的表达还可以用八进制、十六进制,八进制从0开始,十六进制从“0x”或者“0X”开始。
3.浮点型
浮点型的全称是双精度浮点型,也就是带小数点或者用科学计数法来表示。
它有两种表达方式:
- 可以用十进制的带小数点的数来直接表达,和我们平时的写法一样。比如10.0、11.24 等等
- 也可以用科学技术法表达(用e/E代表小数位)。比如:96e3, -2.3e8、70.2-E12等等。
4.complex 复数
既有实数又有虚数,虚部用j或J表示。比如:2.5j、26J、.82j、233-2j等。
- 虚数不能单独存在,它总是和一个实数部分构成一个复数
- 实数和虚数都是浮点型
- 虚数部分必须有后缀j或者J
- 内建属性:
1)num.real指的是该复数的实部;
2)num.imag指的是该复数的虚部;
3)num.conjugate()指的是该复数的共轭复数
5.内建函数
关于数字的一些内建函数。
转换类型的函数:
- 用bool、int、float、complex可以将数字进行转换。
功能函数主要有:
- abs()是求绝对值的函数
- divmod()把除法和取余结合起来,返回一个包含商和余数的元组。
divmod(5,2)
输出的是(2,1)
- pow()函数是指数运算符。
除了正常的指数运算外,它还可以增加一个参数,进行取余数的操作。比如:
pow(2,3)
pow(2, 3, 3)
首先,求2的3次方,结果是8;而后,8对3取余数,结果是2.
所以,运行结果分别是
8
2
- round函数是四舍五入的函数
它也可以有一位或两位参数,第二位是取小数的位数。比如:
round(3.3333, 2)
结果是:
3.33
求近似值的还有一个math.floor()函数,这个函数的意思是得到最接近原数,但小于原数的整型
五、一些小技巧
当输入的过程中按下Tab键,系统会自动把相关的变量或关键词显示出来,如果只有一个的话,就会自动上显了。
比如,我输入a,按下tab键,显示如下:
我输入ab,按下tab键,自动把abs的命令补全了。因为与ab相关的命令只有一个。
如果我提前设置了一个变量abj,输入ab,再按下tab键的话,出现这样的提示:
这也是python非常人性化的一个例子。
知识本身不是力量,“知识+持续的行动”才是!
我是陶肚,每天陪你读点书。如果喜欢,请帮忙点赞或分享出去。