-
Python基础入门语法和变量类型(一)
1 基础语法
标识符
标识符由字母、数字和下划线(_)组成,其中不能以数字开头,并且区分大小写。
以下划线开头的标识符是有特殊意义的:
- 单下划线开头的如 _foo,表示不能直接访问的类属性,需要通过类提供的接口进行访问,不能通过 from xxx import * 导入;
- 双下划线开头的如 __foo ,表示类的私有成员;
- 双下划线开头和结尾的如 __foo__ 代表 Python 中的特殊方法,比如 __init()__ 代表类的构建函数
保留字
保留字是不能用作常数或变数,或者其他任何标识符名称。 keyword 模块可以输出当前版本的所有关键字:
import keyword
print(keyword.kwlist)
所有的保留字如下所示:
|
|
|
and |
exec |
not |
assert |
finally |
or |
break |
for |
pass |
class |
from |
|
continue |
global |
raise |
def |
if |
return |
del |
import |
try |
elif |
in |
while |
else |
is |
with |
except |
lambda |
yield |
行和缩进
和其他编程语言的最大区别就是,Python 的代码块不采用大括号 {} 来控制类、函数以及其他逻辑判断,反倒是采用缩进来写模块。
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行,如下所示:
# 正确示例
i = 2if i == 3:
print('true!')else:
print('False')
# 错误示例if i == 3:
print('i:')
print(i)else:
print('wrong answer!')
# 没有严格缩进,执行时会报错
print('please check again')
这里将会报错 IndentationError: unindent does not match any outer indentation level,这个错误表示采用的缩进方式不一致,有的是 tab 键缩进,有的是空格缩进,改为一致即可。
而如果错误是 IndentationError: unexpected indent,表示格式不正确,可能是 tab 和空格没对齐的问题。
因此,按照约定俗成的管理,应该始终坚持使用4个空格的缩进,并且注意不能混合使用 tab 键和四格空格,这会报错!
注释
注释分为两种,单行和多行的。
# 单行注释
print('Hello, world!')
'''
这是多行注释,使用单引号。
这是多行注释,使用单引号。
这是多行注释,使用单引号。
'''
"""
这是多行注释,使用双引号。
这是多行注释,使用双引号。
这是多行注释,使用双引号。
"""
输入输出
通常是一条语句一行,如果语句很长,我们可以使用**反斜杠(\)**来实现多行语句。在 [], {}, 或 ()中的多行语句,则不需要反斜杠。
sentence1 = "I love " + \"python"
sentence2 = ["I", "love",
"python"]
另外,我们也可以同一行显示多条语句,语句之间用分号(;)分割,示例如下:
print('Hello');print('world')
对于用户输入,Python2 采用的是 raw_input(),而 3 版本则是 input() 函数:
# 等待用户输入# python 2
user_input = raw_input('请输入一个数字:\n')# python 3
user_input = input('请输入一个数字:\n')
print('user_input=', user_input)
其中 \n 实现换行。用户按下回车键(enter)退出,其他键显示。
对于 print 输出,默认输出是换行的,如果需要实现不换行,可以指定参数 end,如下所示:
a = 3
b = 2
c = 4
d = 5# 默认换行
print(a)
print(b)# 不换行,并设置逗号分隔
print(c, end=',')
print(d)
如果你有关于python的问题,可以加博主的扣扣群来交流:879151479
2 基本变量类型
计算机程序要处理不同的数据,需要定义不同的数据类型。Python 定义了六种标准的数据类型,分布如下所示:
- Numbers(数字)
- Strings(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
变量赋值
Python 并不需要声明变量的类型,所说的"类型"是变量所指的内存中对象的类型。但每个变量使用前都必须赋值,然后才会创建变量。给变量赋值的方法是采用等号(=),等号左边是变量名,右边是存储在变量中的值。
一个示例如下:
counter = 100 # 赋值整型变量
miles = 1000.0 # 浮点型
name = "John" # 字符串
print(counter)
print(miles)
print(name)
Python 还允许同时为多个变量赋值,有以下两种实现方式:
# 创建一个整型对象,值为1,三个变量被分配到相同的内存空间上
n = m = k = 2# 创建多个对象,然后指定多个变量
cc, mm, nn = 1, 3.2, 'abc'
print('n=m=k=', n, m, k)
print('cc=', cc)
print('mm=', mm)
print('nn=', nn)
其中同时给多个变量赋值的方式也是 Python 独特的一种变量赋值方法。
数字
数字类型用于存储数值,它是不可改变的数据类型。Python 3 支持以下几种数字类型:
int (整数)
float (浮点型)
complex(复数)
bool (布尔)
数字类型的使用很简单,也很直观,如下所示:
# int
q = 1# float
w = 2.3# bool
e = True# complex
r = 1 + 3j
print(q, w, e, r) # 1 2.3 True (1+3j)
# 内置的 type() 函数可以用来查询变量所指的对象类型
print(type(q)) # <class 'int'>
print(type(w)) # <class 'float'>
print(type(e)) # <class 'bool'>
print(type(r)) # <class 'complex'>
# 也可以采用 isinstance()# isinstance 和 type 的区别在于:type()不会认为子类是一种父类类型,isinstance()会认为子类是一种父类类型
print(isinstance(q, int)) # True
print(isinstance(q, float)) # False
对于数字的运算,包括基本的加减乘除,其中除法包含两个运算符,/ 返回一个浮点数,而 // 则是得到整数,去掉小数点后的数值。而且在混合计算的时候, Python 会把整数转换为浮点数。
# 加
print('2 + 3 =', 2 + 3) # 2 + 3 = 5# 减
print('3 - 2 =', 3 - 2) # 3 - 2 = 1# 乘
print('5 * 8 =', 5 * 8) # 5 * 8 = 40# 除# 得到浮点数,完整的结果
print('5 / 2 =', 5 / 2) # 5 / 2 = 2.5# 得到一个整数
print('5 // 2 =', 5 // 2) # 5 // 2 = 2# 取余
print('5 % 2 =', 5 % 2) # 5 % 2 = 1# 乘方
print('5 ** 2 =', 5 ** 2) # 5 ** 2 = 25
字符串
如果你有关于python的问题,可以加博主的扣扣群来交流:879151479
字符串或串(String)是由数字、字母、下划线组成的一串字符。一般是用单引号 '' 或者 "" 括起来。
注意,Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。并且,Python 字符串是不可变,向一个索引位置赋值,如 strs[0]='m' 会报错。
可以通过索引值或者切片来访问字符串的某个或者某段元素,注意索引值从 0 开始,例子如下所示:
切片的格式是 [start:end],实际取值范围是 [start:end) ,即不包含 end 索引位置的元素。还会除了正序访问,还可以倒序访问,即索引值可以是负值。
具体示例如下所示:
s1 = "talk is cheap"
s2 = 'show me the code'
print(s1)
print(s2)
# 索引值以 0 为开始值,-1 为从末尾的开始位置
print('输出 s1 第一个到倒数第二个的所有字符: ', s1[0:-1]) # 输出第一个到倒数第二个的所有字符
print('输出 s1 字符串第一个字符: ', s1[0]) # 输出字符串第一个字符
print('输出 s1 从第三个开始到第六个的字符: ', s1[2:6]) # 输出从第三个开始到第六个的字符
print('输出 s1 从第三个开始的后的所有字符:', s1[2:]) # 输出从第三个开始的后的所有字符
# 加号 + 是字符串的连接符# 星号 * 表示复制当前字符串,紧跟的数字为复制的次数
str = "I love python "
print("连接字符串:", str + "!!!")
print("输出字符串两次:", str * 2)
# 反斜杠 \ 转义特殊字符# 若不想让反斜杠发生转义,可以在字符串前面添加一个 r
print('I\nlove\npython')
print("反斜杠转义失效:", r'I\nlove\npython')
注意:
- 1、反斜杠可以用来转义,使用 r 可以让反斜杠不发生转义。
- 2、字符串可以用 + 运算符连接在一起,用 * 运算符重复。
- 3、Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
- 4、Python 中的字符串不能改变。
字符串包含了很多内置的函数,这里只介绍几种非常常见的函数:
- strip(x):当包含参数 x 表示删除句首或者句末 x 的部分,否则,就是删除句首和句末的空白字符,并且可以根据需要调用 lstrip() 和 rstrip() ,分别删除句首和句末的空白字符;
- split():同样可以包含参数,如果不包含参数就是将字符串变为单词形式,如果包含参数,就是根据参数来划分字符串;
- join():主要是将其他类型的集合根据一定规则变为字符串,比如列表;
- replace(x, y):采用字符串 y 代替 x
- index():查找指定字符串的起始位置
- startswith() / endswith():分别判断字符串是否以某个字符串为开始,或者结束;
- find():查找某个字符串;
- upper() / lower() / title():改变字符串的大小写的三个函数