Task 1 Python基础入门:从变量到异常处理学习记录


前言

阿里云天池大数据python训练营第一天

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

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缩进错误导致的异常TabErrorTab和空格混用
SystemError一般的解释器系统异常TypeError不同类型间的无效操作
ValueError传入无效的参数UnicodeErrorUnicode相关的异常
UnicodeDecodeErrorUnicode解码时的异常UnicodeEncodeErrorUnicode编码错误导致的异常
UnicodeTranslateErrorUnicode转换错误导致的异常

2.Python标准警告总结

标识符内容标识符内容
Warning警告的基类DeprecationWarning关于被弃用的特征的警告
FutureWarning关于构造将来语义会有改变的警告UserWarning用户代码生成的警告
PendingDeprecationWarning关于特性将会被废弃的警告RuntimeWarning可疑的运行时行为(runtime behavior)的警告
SyntaxWarning可疑语法的警告ImportWarning用于在导入模块过程中触发的警告
UnicodeWarning与Unicode相关的警告BytesWarning与字节或字节码相关的警告
ResourceWarning与资源使用相关的警告

总结

以上就是我今天学习的内容,对一些部分进行了删减,感谢阿里云天池给的这次机会,如有错误请指出,万分感谢。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值