Python极简入门:数据类型、条件语句、循环语句、异常处理

简介: Python极简入门:数据类型、条件语句、循环语句、异常处理

一、变量、运算符与数据类型


1. 注释


  1. 在 Python 中,# 表示注释,作用于整行。


  1. ''' ''' 或者 """ """ 表示区间注释,在三引号之间的所有内容被注释(多行注释)。


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 整型 <class 'int'>-876, 10
float 浮点型 <class 'float'>3.149, 11.11
bool 布尔型 <class 'bool'>True, False


通过 print() 可看出 a 的值,以及类 (class) 是int


a = 1031
print(a, type(a))
# 1031 <class 'int'>


type可以帮助我们去获取到它的类型,再通过print()打印出来。


  1. type() 不会认为子类是一种父类类型,不考虑继承关系。
  2. isinstance()会认为子类是一种父类类型,考虑继承关系
  3. 如果要判断两个类型是否相同使用 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 条件表达式可以通过布尔操作符 andornot 实现多重条件判断。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 与资源使用相关的警告







相关文章
|
1天前
|
网络协议 网络架构 Python
Python 网络编程基础:套接字(Sockets)入门与实践
【5月更文挑战第18天】Python网络编程中的套接字是程序间通信的基础,分为TCP和UDP。TCP套接字涉及创建服务器套接字、绑定地址和端口、监听、接受连接及数据交换。UDP套接字则无连接状态。示例展示了TCP服务器和客户端如何使用套接字通信。注意选择唯一地址和端口,处理异常以确保健壮性。学习套接字可为构建网络应用打下基础。
18 7
|
2天前
|
Python
10个python入门小游戏,零基础打通关,就能掌握编程基础_python编写的入门简单小游戏
10个python入门小游戏,零基础打通关,就能掌握编程基础_python编写的入门简单小游戏
|
2天前
|
人工智能 数据挖掘 索引
Python中的异常处理
异常是程序执行过程中不可避免的出错情况,而在Python中,通过使用异常处理机制可以有效地应对这些异常情况。本文将介绍Python中的异常处理机制,并讲解如何使用try-except代码块来捕获和处理异常。
|
4天前
|
Python 索引 C语言
Python3从零基础到入门(2)—— 运算符-3
Python3从零基础到入门(2)—— 运算符
|
4天前
|
Python
Python3从零基础到入门(2)—— 运算符-2
Python3从零基础到入门(2)—— 运算符
Python3从零基础到入门(2)—— 运算符-2
|
4天前
|
Python C语言 存储
Python3从零基础到入门(2)—— 运算符-1
Python3从零基础到入门(2)—— 运算符
Python3从零基础到入门(2)—— 运算符-1
|
4天前
|
存储 C语言 Python
|
4天前
|
Python Windows
|
4天前
|
存储 数据可视化 数据挖掘
Python在数据分析中的利器:Pandas库全面解析
【2月更文挑战第7天】 众所周知,Python作为一种简洁、易学且功能强大的编程语言,被广泛运用于数据科学和人工智能领域。而Pandas库作为Python中最受欢迎的数据处理库之一,在数据分析中扮演着举足轻重的角色。本文将全面解析Pandas库的基本功能、高级应用以及实际案例,带您深入了解这个在数据分析领域的利器。
78 1
|
6月前
|
数据采集 存储 数据挖掘
【Python】数据分析:pandas
【Python】数据分析:pandas
51 0