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

时间:2022-07-24
本文章向大家介绍Python极简入门:数据类型、条件语句、循环语句、异常处理,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

作者:晓明呀

https://blog.csdn.net/weixin_37777526/article/details/108427112

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

1. 注释

  1. 在 Python 中,# 表示注释,作用于整行。
  2. ''' ''' 或者 """ """ 表示区间注释,在三引号之间的所有内容被注释(多行注释)。

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

与资源使用相关的警告