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 与资源使用相关的警告







相关文章
|
14天前
|
程序员 开发者 Python
Python网络编程基础(Socket编程) 错误处理和异常处理的最佳实践
【4月更文挑战第11天】在网络编程中,错误处理和异常管理不仅是为了程序的健壮性,也是为了提供清晰的用户反馈以及优雅的故障恢复。在前面的章节中,我们讨论了如何使用`try-except`语句来处理网络错误。现在,我们将深入探讨错误处理和异常处理的最佳实践。
|
1月前
|
程序员 开发者 Python
Python错误与异常处理详解
Python提供强大的错误和异常处理机制,包括语法错误(编译时)和运行时错误。异常处理通过try-except语句实现,优雅地处理运行时错误。例如,尝试除以零会引发`ZeroDivisionError`,可通过except捕获并处理。可以使用多个except处理不同类型的异常,或者用`Exception`捕获所有异常。此外,用raise语句可手动抛出异常,增强代码健壮性。理解并运用这些机制能提升Python编程水平。
|
24天前
|
存储 索引 Python
python数据类型
【4月更文挑战第1天】,Python有数字(整型、浮点型、复数)、布尔、字符串等基本类型,及列表、元组、字典、集合等复合类型。列表是可变有序集合,元组是不可变有序集合,字典是键值对无序集合,集合是无序唯一元素集合。还有特殊类型NoneType,仅包含值None。
26 1
python数据类型
|
28天前
|
Java Python 开发者
Python 学习之路 01基础入门---【Python安装,Python程序基本组成】
线程池详解与异步任务编排使用案例-xian-cheng-chi-xiang-jie-yu-yi-bu-ren-wu-bian-pai-shi-yong-an-li
77 2
Python 学习之路 01基础入门---【Python安装,Python程序基本组成】
|
1天前
|
存储 Python
Python的变量与数据类型详解
Python的变量与数据类型详解
10 0
|
6天前
|
机器学习/深度学习 数据可视化 数据挖掘
《Python 简易速速上手小册》第9章:数据科学和机器学习入门(2024 最新版)
《Python 简易速速上手小册》第9章:数据科学和机器学习入门(2024 最新版)
18 1
|
6天前
|
程序员 数据库连接 索引
《Python 简易速速上手小册》第5章:Python 常见错误和异常处理(2024 最新版)
《Python 简易速速上手小册》第5章:Python 常见错误和异常处理(2024 最新版)
24 1
|
6天前
|
人工智能 数据挖掘 程序员
《Python 简易速速上手小册》第1章:Python 编程入门(2024 最新版)
《Python 简易速速上手小册》第1章:Python 编程入门(2024 最新版)
35 0
|
7天前
|
UED Python
掌握Python异常处理:面试中的关键考点
【4月更文挑战第14天】本文探讨了Python异常处理在面试中的重要性,涵盖核心概念、常见问题和易错点。异常处理涉及异常、捕获、异常链、自定义异常、finally子句和raise语句。面试中应注意避免过于宽泛的异常捕获、忽视异常链、在finally中误用return、自定义异常设计不实用以及异常处理与业务逻辑混杂等问题。通过理解并解决这些问题,可提升代码健壮性和面试表现。
21 0
|
7天前
|
机器学习/深度学习 数据采集 算法
scikit-learn入门指南:从基础到实践
【4月更文挑战第17天】这篇指南介绍了scikit-learn,一个Python数据分析和机器学习的重要库。内容涵盖安装、数据加载与预处理、模型训练(如KNN分类器)、评估、调参优化及高级应用,如降维和聚类。通过实例展示了scikit-learn在分类任务中的使用,强调其在数据科学中的重要性。要深入了解,可参考官方文档和实践案例。

热门文章

最新文章