Python极简入门:数据类型、条件语句、循环语句、异常处理
共 3990字,需浏览 8分钟
·
2020-09-11 21:49
↑↑↑点击上方蓝字,回复资料,10个G的惊喜
一、变量、运算符与数据类型
1. 注释
在 Python 中,# 表示注释,作用于整行。 ''' ''' 或者 """ """ 表示区间注释,在三引号之间的所有内容被注释(多行注释)。
2. 运算符
1. 位运算符
操作符 | 名称 | 示例 |
---|---|---|
~ | 按位取反 | ~4 |
& | 按位与 | 4 & 5 |
` | 按位或 | |
^ | 按位异或 | 4 ^ 5 |
<< | 左移 | 4 << 2 |
>> | 右移 | 4 >> 2 |
运算符的优先级
一元运算符优于二元运算符。例如 3 ** -2
等价于3 ** (-2)
。先算术运算,后移位运算,最后位运算。例如 1 << 3 + 2 & 7
等价于(1 << (3 + 2)) & 7
。逻辑运算最后结合。例如 3 < 4 and 4 < 5
等价于(3 < 4) and (4 < 5)
。
2. 数据类型与转换
类型 | 名称 | 示例 |
---|---|---|
int | 整型 | |
float | 浮点型 | |
bool | 布尔型 |
通过 print() 可看出 a 的值,以及类 (class) 是int
a = 1031
print(a, type(a))
# 1031
type可以帮助我们去获取到它的类型,再通过print()打印出来。
type()
不会认为子类是一种父类类型,不考虑继承关系。isinstance()
会认为子类是一种父类类型,考虑继承关系如果要判断两个类型是否相同使用 isinstance()。
Python 里面有很多用途广泛的包 (package),用什么你就引进(import)
什么。包也是对象,可以用dir(decimal)
来看其属性和方法
【例子】使 1/3 保留 5 位,用getcontext().prec
来调整精度。
import decimal
from decimal import Decimal
decimal.getcontext().prec = 5
c = Decimal(1) / Decimal(3)
print(c)
布尔 (boolean) 型变量只能取两个值,True 和 False。当把布尔型变量用在数字运算中,用 1 和 0 代表 True 和 False
类型转换
转换为整型 int(x, base=10)
转换为字符串 str(object='')
转换为浮点型 float(x)
3. print() 函数
将对象以字符串表示的方式格式化输出到流文件对象file里。其中所有非关键字参数都按 str()
方式进行转换为字符串输出;关键字参数 sep
是实现分隔符,比如多个参数输出时想要输出中间的分隔字符;关键字参数 end
是输出结束时的字符,默认是换行符\n
;关键字参数 file
是定义流输出的文件,可以是标准的系统输出sys.stdout
,也可以重定义为别的文件;关键字参数 flush
是立即把内容输出到流文件,不作缓存。
没有参数时,每次输出后都会换行。
shoplist = ['apple', 'mango', 'carrot', 'banana']
print("This is printed without 'end'and 'sep'.")
for item in shoplist:
print(item)
# This is printed without 'end'and 'sep'.
# apple
# mango
# carrot
# banana
item
值与'another string'
两个值之间用sep
设置的参数&
分割。由于end
参数没有设置,因此默认是输出解释后换行,即end
参数的默认值为\n
。
shoplist = ['apple', 'mango', 'carrot', 'banana']
print("This is printed with 'sep='&''.")
for item in shoplist:
print(item, 'another string', sep='&')
# This is printed with 'sep='&''.
# apple&another string
# mango&another string
# carrot&another string
# banana&another string
二、条件语句
1. if 语句
if 语句的 expr_true_suite
代码块只有当条件表达式expression
结果为真时才执行,否则将继续执行紧跟在该代码块后面的语句,如果为假则不输出。单个 if 语句中的 expression
条件表达式可以通过布尔操作符and
,or
和not
实现多重条件判断。if - else语句就是对if
后的内容进行一个判断,是则将继续执行紧跟在该代码块后面的语句,否则执行else
后的语句
temp = input("猜一猜小哥哥帅不帅?")
guess = int(temp) # input 函数将接收的任何数据类型都默认为 str。
if guess == 帅:
print("你太了解小姐姐的心思了!")
print("哼,猜对也没有奖励!")
else:
print("猜错了,小姐姐现在心里想的是666!")
print("游戏结束,不玩儿啦!")
if - elif - else
语句对if
后的内容进行一个判断,是则将继续执行紧跟在该代码块后面的语句,否则继续对elif
后的内容进行一个判断,是则将继续执行紧跟在该代码块后面的语句,否则直到执行else
后的语句
temp = input('请输入成绩:')
source = int(temp)
if 100 >= source >= 90:
print('A')
elif 90 > source >= 80:
print('B')
elif 80 > source >= 60:
print('C')
elif 60 > source >= 0:
print('D')
else:
print('输入错误!')
assert
这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。
my_list = ['lsgogroup']
my_list.pop(0)
assert len(my_list) > 0
# AssertionError
三、循环语句
1.while语句
while语句最基本的形式包括一个位于顶部的布尔表达式,一个或多个属于while代码块的缩进语句,代码块会一直循环执行,直到布尔表达式的值为布尔假。。
string = 'abcd'
while string:
print(string)
string = string[1:]
# abcd
# bcd
# cd
# d
如果布尔表达式不带有<、>、==、!=、in、not in等运算符,仅仅给出数值之类的条件,也是可以的。当while后写入一个非零整数时,视为真值,执行循环体;写入0时,视为假值,不执行循环体。也可以写入str、list或任何序列,长度非零则视为真值,执行循环体;否则视为假值,不执行循环体。
当while循环正常执行完的情况下,执行else输出,如果while循环中执行了跳出循环的语句,比如 break,将不执行else代码块的内容。
count = 0
while count < 5:
print("%d is less than 5" % count)
count = count + 1
else:
print("%d is not less than 5" % count)
# 0 is less than 5
# 1 is less than 5
# 2 is less than 5
# 3 is less than 5
# 4 is less than 5
# 5 is not less than 5
2.for 语句
for循环是迭代循环,在Python中相当于一个通用的序列迭代器,可以遍历任何有序序列,如str、list、tuple等,也可以遍历任何可迭代对象,如dict。
member = ['张三', '李四', '刘德华', '刘六', '周润发']
for each in member:
print(each)
# 张三
# 李四
# 刘德华
# 刘六
# 周润发
每次循环,迭代变量被设置为可迭代对象的当前元素,提供给代码块使用。
当for循环正常执行完的情况下,执行else输出,如果for循环中执行了跳出循环的语句,比如 break,将不执行else代码块的内容,与while - else语句一样。
for num in range(10, 20): # 迭代 10 到 20 之间的数字
for i in range(2, num): # 根据因子迭代
if num % i == 0: # 确定第一个因子
j = num / i # 计算第二个因子
print('%d 等于 %d * %d' % (num, i, j))
break # 跳出当前循环
else: # 循环的 else 部分
print(num, '是一个质数')
# 10 等于 2 * 5
# 11 是一个质数
# 12 等于 2 * 6
# 13 是一个质数
# 14 等于 2 * 7
# 15 等于 3 * 5
# 16 等于 2 * 8
# 17 是一个质数
# 18 等于 2 * 9
# 19 是一个质数
range 这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列,该序列包含start的值但不包含stop的值。
for i in range(1, 10, 2):
print(i)
# 1
# 3
# 5
# 7
# 9
3.跳出循环语句
break语句可以跳出当前所在层的循环。
import random
secret = random.randint(1, 10) #[1,10]之间的随机数
while True:
temp = input("猜一猜小姐姐想的是哪个数字?")
guess = int(temp)
if guess > secret:
print("大了,大了")
else:
if guess == secret:
print("你太了解小姐姐的心思了!")
print("哼,猜对也没有奖励!")
break
else:
print("小了,小了")
print("游戏结束,不玩儿啦!")
continue终止本轮循环并开始下一轮循环。
for i in range(10):
if i % 2 != 0:
print(i)
continue
i += 2
print(i)
# 2
# 1
# 4
# 3
# 6
# 5
# 8
# 7
# 10
# 9
四、异常处理
1. Python 标准异常总结
标识符 | 内容 | 标识符 | 内容 |
---|---|---|---|
BaseException |
所有异常的 基类 | Exception | 常规异常的基类 | |
StandardError | 所有的内建标准异常的基类 | ArithmeticError | 所有数值计算异常的基类 |
FloatingPointError | 浮点计算异常 | OverflowError | 数值运算超出最大限制 |
ZeroDivisionError | 除数为零 | AssertionError | 断言语句(assert)失败 |
AttributeError | 尝试访问未知的对象属性 | EOFError | 没有内建输入,到达EOF标记 |
EnvironmentError | 操作系统异常的基类 | OError | 输入/输出操作失败 |
OSError | 操作系统产生的异常(例如打开一个不存在的文件) | WindowsError | 系统调用失败 |
ImportError | 导入模块失败的时候 | KeyboardInterrupt | 用户中断执行 |
LookupError | 无效数据查询的基类 | IndexError | 索引超出序列的范围 |
KeyError | 字典中查找一个不存在的关键字 | MemoryError | 内存溢出(可通过删除对象释放内存) |
NameError | 尝试访问一个不存在的变量 | UnboundLocalError | 访问未初始化的本地变量 |
ReferenceError | 弱引用试图访问已经垃圾回收了的对象 | RuntimeError | 一般的运行时异常 |
NotImplementedError | 尚未实现的方法 | SyntaxError | 语法错误导致的异常 |
IndentationError | 缩进错误导致的异常 | TabError | Tab和空格混用 |
SystemError | 一般的解释器系统异常 | TypeError | 不同类型间的无效操作 |
ValueError | 传入无效的参数 | UnicodeError | Unicode相关的异常 |
UnicodeDecodeError | Unicode解码时的异常 | UnicodeEncodeError | Unicode编码错误导致的异常 |
UnicodeTranslateError | Unicode转换错误导致的异常 |
2.Python标准警告总结
标识符 | 内容 | 标识符 | 内容 |
---|---|---|---|
Warning | 警告的基类 | DeprecationWarning | 关于被弃用的特征的警告 |
FutureWarning | 关于构造将来语义会有改变的警告 | UserWarning | 用户代码生成的警告 |
PendingDeprecationWarning | 关于特性将会被废弃的警告 | RuntimeWarning | 可疑的运行时行为(runtime behavior)的警告 |
SyntaxWarning | 可疑语法的警告 | ImportWarning | 用于在导入模块过程中触发的警告 |
UnicodeWarning | 与Unicode相关的警告 | BytesWarning | 与字节或字节码相关的警告 |
ResourceWarning | 与资源使用相关的警告 |
↓扫描二维码添加好友↓ 推荐阅读
(点击标题可跳转阅读)
老铁,三连支持一下,好吗?↓↓↓