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







相关文章
|
3天前
|
安全 Linux 网络安全
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
19 2
|
3天前
|
Python Windows 网络安全
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
19 1
|
4天前
|
数据可视化 数据挖掘 大数据
Python 数据分析入门:从零开始处理数据集
Python 数据分析入门:从零开始处理数据集
|
1天前
|
存储 Python
python数据类型、debug工具(一)
python数据类型、debug工具(一)
|
2天前
|
存储 关系型数据库 MySQL
Python写入文件内容:从入门到精通
本文详细介绍了使用Python进行文件写入的基本方法及高级技巧。从基础语法入手,讲解了如何使用`open()`函数的不同模式(如`&#39;w&#39;`和`&#39;a&#39;`)来创建或修改文件,并通过具体示例演示了`write()`和`writelines()`方法的应用。进一步探讨了利用CSV模块处理复杂数据结构的写入操作,以及在实际项目中如何批量导出数据库记录到CSV文件。最后,文章还讨论了在处理大数据集和云存储时的注意事项与优化方案。
|
2天前
|
安全 Java 程序员
Python 异常处理!
本文详细介绍了Python中的异常处理,包括try、except和finally语句的使用方法。文章区分了语法错误与异常,并列举了Python中常见的异常类型,如`SyntaxError`、`TypeError`等。通过具体示例展示了如何使用try-except块捕获和处理异常,以及如何结合else和finally子句增强代码的健壮性和可读性。此外,还介绍了如何使用raise语句主动抛出异常。通过合理的异常处理,可以提高程序的可靠性与调试效率,但也可能带来性能开销和代码复杂度的增加。
13 4
|
2天前
|
设计模式 测试技术 Python
探索Python中的装饰器:从入门到实践
在编程的世界里,代码的重用和模块化是提高效率的关键。Python提供了一种强大的工具——装饰器,它允许我们在不修改原有函数代码的情况下增加额外的功能。本文将引导你理解装饰器的概念,通过实例展示如何创建和使用装饰器,以及它们在实际项目中的价值。
8 1
|
3天前
|
存储 Shell 数据库
Python编程--Django入门:用户账户(二)
Python编程--Django入门:用户账户(二)
11 2
|
3天前
|
存储 数据库 Python
Python编程--Django入门:用户账户(一)
Python编程--Django入门:用户账户(一)
|
4天前
|
数据采集 数据可视化 数据挖掘
使用Python进行数据分析:从入门到实践
使用Python进行数据分析:从入门到实践
15 2