Python——基础(一)

语法规范

1
2
3
4
5
6
print absolute value of an integer:
a = 100
if a >= 0:
print(a)
else:
print(-a)
  • 以 “#” 开头的语句是注释,注释是给人看的,可以是任意内容,解释器会忽略掉注释。
  • 其他每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块。
  • 按照约定俗成的惯例,应该始终坚持使用4个空格的缩进。
  • Python程序是大小写敏感的,如果写错了大小写,程序会报错。

变量

变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头,比如:

1
2
3
a = 1
t_007 = 'T007'
Answer = True

整数

Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。

对于很大的数,例如10000000000,很难数清楚0的个数。Python允许在数字中间以_分隔,因此,写成10_000_000_000和10000000000是完全一样的。

浮点数

浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是完全相等的。

浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

字符串

字符串是以单引号’或双引号”括起来的任意文本,比如’abc’,”xyz”等等。

如果字符串内部既包含’又包含”怎么办?可以用转义字符\来标识,比如:

1
'I\'m \"OK\"!'

转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\表示的字符就是\,可以在Python的交互式命令行用print()打印字符串看看:

1
2
3
4
5
6
7
8
>>> print('I\'m ok.')
I'm ok.
>>> print('I\'m learning\nPython.')
I'm learning
Python.
>>> print('\\\n\\')
\
\

如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r’’表示’’内部的字符串默认不转义,可以自己试试:

1
2
3
4
>>> print('\\\t\\')
\ \
>>> print(r'\\\t\\')
\\\t\\

如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用’’’…’’’的格式表示多行内容,可以自己试试:

1
2
3
4
5
6
>>> print('''line1
... line2
... line3''')
line1
line2
line3

布尔值

布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False。

1
2
3
4
5
6
7
8
>>> True
True
>>> False
False
>>> 3 > 2
True
>>> 3 > 5
False

空值

空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

占位符

如何输出格式化的字符串。我们经常会输出类似’亲爱的xxx你好!你xx月的话费是xx,余额是xx’之类的字符串,而xxx的内容都是根据变量变化的。

  1. %运算符就是用来格式化字符串的。

    在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。

    1
    2
    print('%2d-%02d' % (3, 1))
    print('%.2f' % 3.1415926)
  2. format()

    另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}、{1}……,不过这种方式写起来比%要麻烦得多:

    1
    2
    >>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
    'Hello, 小明, 成绩提升了 17.1%'
  3. f-string

    最后一种格式化字符串的方法是使用以f开头的字符串,称之为f-string,它和普通字符串不同之处在于,字符串如果包含{xxx},就会以对应的变量替换:

    1
    2
    3
    4
    >>> r = 2.5
    >>> s = 3.14 * r ** 2
    >>> print(f'The area of a circle with radius {r} is {s:.2f}')
    The area of a circle with radius 2.5 is 19.62

    数据结构

列表

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

1
>>> classmates = ['Michael', 'Bob', 'Tracy']

list元素可以不同,也可以是另一个list。

1
2
3
4
>>> L = ['Apple', 123, True]
>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)
4

可以使用 list() 构造函数创建一个新列表。

1
2
thislist = list(("apple", "banana", "cherry")) # 请注意双括号
print(thislist)

Python 有一组可以在列表上使用的内建方法。

方法 描述
append() 在列表的末尾添加一个元素
clear() 删除列表中的所有元素
copy() 返回列表的副本
count() 返回具有指定值的元素数量。
extend() 将列表元素(或任何可迭代的元素)添加到当前列表的末尾
index() 返回具有指定值的第一个元素的索引
insert() 在指定位置添加元素
pop() 删除指定位置的元素
remove() 删除具有指定值的项目
reverse() 颠倒列表的顺序
sort() 对列表进行排序

元组

不可变的list,一旦定义完成,不可增删改,可以通过索引获取。

1
>>> classmates = ('Michael', 'Bob', 'Tracy')

因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。

字典

Dictionary字典是一个无序、可变和有索引的集合。键值对的储存方式,有点像Map。

1
2
3
4
5
6
thisdict =	{
"brand": "Porsche",
"model": "911",
"year": 1963
}
print(thisdict)

可以使用 dict() 构造函数创建新的字典:

1
2
3
4
thisdict = dict(brand="Porsche", model="911", year=1963)
请注意,关键字不是字符串字面量
请注意,使用了等号而不是冒号来赋值
print(thisdict)

Python 提供一组可以在字典上使用的内建方法。

方法 描述
clear() 删除字典中的所有元素
copy() 返回字典的副本
fromkeys() 返回拥有指定键和值的字典
get() 返回指定键的值
items() 返回包含每个键值对的元组的列表
keys() 返回包含字典键的列表
pop() 删除拥有指定键的元素
popitem() 删除最后插入的键值对
setdefault() 返回指定键的值。如果该键不存在,则插入具有指定值的键。
update() 使用指定的键值对字典进行更新
values() 返回字典中所有值的列表

集合

Set集合是无序和无索引的集合。在 Python 中,集合用花括号编写。

1
2
thisset = {"apple", "banana", "cherry"}
print(thisset)

可以使用 set() 构造函数来创建集合。

1
2
thisset = set(("apple", "banana", "cherry")) 请留意这个双括号
print(thisset)

Python 拥有一套能够在集合(set)上使用的内建方法。

方法 描述
add() 向集合添加元素。
clear() 删除集合中的所有元素。
copy() 返回集合的副本。
difference() 返回包含两个或更多集合之间差异的集合。
difference_update() 删除此集合中也包含在另一个指定集合中的项目。
discard() 删除指定项目。
intersection() 返回为两个其他集合的交集的集合。
intersection_update() 删除此集合中不存在于其他指定集合中的项目。
isdisjoint() 返回两个集合是否有交集。
issubset() 返回另一个集合是否包含此集合。
issuperset() 返回此集合是否包含另一个集合。
pop() 从集合中删除一个元素。
remove() 删除指定元素。
symmetric_difference() 返回具有两组集合的对称差集的集合。
symmetric_difference_update() 插入此集合和另一个集合的对称差集。
union() 返回包含集合并集的集合。
update() 用此集合和其他集合的并集来更新集合。

运算符

算术运算符

算术运算符与数值一起使用来执行常见的数学运算:

运算符 名称 实例
+ x + y
- x - y
* x * y
/ x / y
% 取模 x % y
** x ** y
// 地板除(取整除) x // y

赋值运算符

赋值运算符用于为变量赋值:

运算符 实例
= x = 5
+= x += 3
-= x -= 3
*= x *= 3
/= x /= 3
%= x %= 3
//= x //= 3
**= x **= 3
&= x &= 3
^= x ^= 3
>>= x >>= 3
<<= x <<= 3

比较运算符

比较运算符用于比较两个值:

运算符 名称 实例
== 等于 x == y
!= 不等于 x != y
> 大于 x > y
< 小于 x < y
>= 大于或等于 x >= y
<= 小于或等于 x <= y

逻辑运算符

逻辑运算符用于组合条件语句:

运算符 描述 实例
and 如果两个语句都为真,则返回 True。 x > 3 and x < 10
or 如果其中一个语句为真,则返回 True。 x > 3 or x < 4
not 反转结果,如果结果为 true,则返回 False not (x > 3 and x < 10)

身份运算符

身份运算符用于比较对象,不是比较它们是否相等,但如果它们实际上是同一个对象,则具有相同的内存位置:

运算符 描述 实例
is 如果两个变量是同一个对象,则返回 true。 x is y
is not 如果两个变量不是同一个对象,则返回 true。 x is not y

成员运算符

成员资格运算符用于测试序列是否在对象中出现:

运算符 描述 实例
in 如果对象中存在具有指定值的序列,则返回 True。 x in y
not in 如果对象中不存在具有指定值的序列,则返回 True。 x not in y

位运算符

位运算符用于比较(二进制)数字:

运算符 描述 实例
& AND 如果两个位均为 1,则将每个位设为 1。
OR
^ XOR 如果两个位中只有一位为 1,则将每个位设为 1。
~ NOT 反转所有位。
<< Zero fill left shift 通过从右侧推入零来向左移动,推掉最左边的位。
>> Signed right shift 通过从左侧推入最左边的位的副本向右移动,推掉最右边的位。

表达式

if else

语法规范:

1
2
3
4
5
6
7
8
a = 200
b = 66
if b > a:
print("b is greater than a")
elif a == b:
print("a and b are equal")
else:
print("a is greater than b")

if 语句不能为空,但是如果您处于某种原因写了无内容的 if 语句,请使用 pass 语句来避免错误。

1
2
3
4
5
a = 66
b = 200

if b > a:
pass

while

如果使用 while 循环,只要条件为真,我们就可以执行一组语句。

1
2
3
4
i = 1
while i < 7:
print(i)
i += 1

break 语句:

1
2
3
4
5
6
i = 1
while i < 7:
print(i)
if i == 3:
break
i += 1

continue 语句

1
2
3
4
5
6
i = 0
while i < 7:
i += 1
if i == 3:
continue
print(i)

else 语句
通过使用 else 语句,当条件不再成立时,我们可以运行一次代码块:

1
2
3
4
5
6
i = 1
while i < 6:
print(i)
i += 1
else:
print("i is no longer less than 6")

for

for 循环用于迭代序列(即列表,元组,字典,集合或字符串)。

1
2
3
4
5
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
if x == "banana":
break

for 循环中的 else 关键字指定循环结束时要执行的代码块:

1
2
3
4
for x in range(10):
print(x)
else:
print("Finally finished!")

Try Except

try 块允许您测试代码块以查找错误。

except 块允许您处理错误。

finally 块允许您执行代码,无论 try 和 except 块的结果如何。

1
2
3
4
5
6
try:
print(x)
except:
print("Something went wrong")
finally:
print("The 'try except' is finished")

您可以选择在条件发生时抛出异常。

如需抛出(引发)异常,请使用 raise 关键词。

1
2
3
4
x = -1

if x < 0:
raise Exception("Sorry, no numbers below zero")

读取输入

Python 允许命令行输入。

这意味着我们能够要求用户输入。

Python 3.6 中的方法与 Python 2.7 略有不同。

Python 3.6 使用 input() 方法。

Python 2.7 使用 raw_input() 方法。

1
2
3
print("Enter your name:")
x = input()
print("Hello ", x)
文章目录
  1. 1. 语法规范
  2. 2. 变量
    1. 2.1. 整数
    2. 2.2. 浮点数
    3. 2.3. 字符串
    4. 2.4. 布尔值
    5. 2.5. 空值
  3. 3. 占位符
  4. 4. 数据结构
    1. 4.1. 列表
    2. 4.2. 元组
    3. 4.3. 字典
    4. 4.4. 集合
  5. 5. 运算符
    1. 5.1. 算术运算符
    2. 5.2. 赋值运算符
    3. 5.3. 比较运算符
    4. 5.4. 逻辑运算符
    5. 5.5. 身份运算符
    6. 5.6. 成员运算符
    7. 5.7. 位运算符
  6. 6. 表达式
    1. 6.1. if else
    2. 6.2. while
    3. 6.3. for
  7. 7. Try Except
  8. 8. 读取输入
|