Python基础入门:从变量到异常处理--阿里云天池

文章目录


系列文章目录

天池龙珠计划 Python训练营

第一章 Python基础入门:从变量到异常处理--阿里云天池


前言

阿里云天池是阿里云旗下大数据平台,围绕云生态挖掘输送优秀人才。平台从大赛做起,现在除了大赛之外,还拥有丰富的学习资源、在线编程、实验室、技术圈等版块。对于开发者而言,在这里不仅仅可以学习到技术、还可以了解到阿里许多复杂业务场景以及这些场景下提出的各种解决方案。通过学习还可以在天池礼品库挑选自己喜欢的礼品进行兑换。因此,小编在这里强烈向大家推荐,点击右边链接访问:https://tianchi.aliyun.com/?spm=5176.19700039.J_4642415020.2.68f13ff4zNHabx

介绍完天池,下面进入今天学习的主题:Python基础入门:从变量到异常处理

一、python简介及环境搭建

1.简介

Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计,作为一门叫做ABC语言的替代品,总的来说,它是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。正是由于其“优雅”和“数学类”语法的缘故,它的语义与许多常见的数学思想具有特定的对应关系,在Python语言中应用这些数学思想并不需要学习曲线,又由于其拥有庞大的外部库,尤其是与机器学习相关的库,如Matplotlib、Numpy、Pandas、SciPy、TensorFlow等,其在科学计算和机器学习领域具有广泛的应用。如果我们打算利用 Python 来执行机器学习,那么对 Python 有一些基本的了解就是至关重要的。

2.环境搭建

Python环境搭建在菜鸟教程上讲解的非常详细,没有装过的同学请访问链接按照步骤搭建。

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

1.注释

在Python中,注释有单行注释和多行注释,具体使用如下

# 这是一个单行注释
'''
这是多行注释,用三个单引号
这是多行注释,用三个单引号
这是多行注释,用三个单引号
'''
"""
这是多行注释,用三个双引号
这是多行注释,用三个双引号 
这是多行注释,用三个双引号
"""

2.运算符

在Python中,运算符有算术运算符、比较运算符、逻辑运算符、位运算符、三元运算符、其他运算符,具体包含哪些如下列表:

  • 算术运算符
操作符名称示例
+1 + 1
-2 - 1
*3 * 4
/3 / 4
//整除(地板除)3 // 4
%取余3 % 4
**2 ** 3
  • 比较运算符
操作符名称示例
>大于2 > 1
>=大于等于2 >= 4
<小于1 < 2
<=小于等于5 <= 2
==等于3 == 4
!=不等于3 != 5
  • 逻辑运算符
操作符名称示例
and(3 > 2) and (3 < 5)
or(1 > 3) or (9 < 2)
notnot (2 > 1)
  • 位运算符
操作符名称示例
~按位取反~4
&按位与4 & 5
``按位或
^按位异或4 ^ 5
<<左移4 << 2
>>右移4 >> 2
  • 三元运算符
x, y = 4, 5
if x < y:
    small = x
else:
    small = y

print(small)  # 4
  • 其他运算符
操作符名称示例
in存在'A' in ['A', 'B', 'C']
not in不存在'h' not in ['A', 'B', 'C']
is"hello" is "hello"
not is不是"hello" is not "hello"
  • 以上运算符如果在一起使用,遵循下面优先级:
运算符描述
**指数(最高优先级)
~+-按位翻转,一元加号和减号
* / % //乘,除,取模和取整除)
+ -加法减法
>> <<右移,左移运算符
&位‘AND’
^|位运算符
<=<>>=比较运算符
<>==!=等于运算符
=%=/=//=-=+==*=赋值运算符
is is not身份运算符
in not in成员运算符
not and or逻辑运算符

3.变量和赋值

  • 在使用变量之前,需要对其先赋值。
  • 变量名可以包括字母、数字、下划线、但变量名不能以数字开头。
  • Python 变量名是大小写敏感的,如:foo != Foo。
  • Python之父Guido推荐命名规范包括如下几点:

1.文件名、模块名和包名采用小写字母并且以下划线分隔单词的形式;如:regex_syntax,py_compile,_winreg

2.类名或异常名采用每个单词首字母大写的方式;如:BaseServer,ForkingMixIn,KeyboardInterrupt

3.全局或者类常量,全部使用大写字母,并且以下划线分隔单词;如:MAX_LOAD

4.其余变量命名包括方法名,函数名,普通变量名则是采用全部小写字母,并且以下划线分隔单词的形式命名;如:my_thread

5.以上的内容如果是内部的,则使用下划线开头命名。如:__init__,__new__ 参考:

4.数据类型与转换

在Python 里面万物皆对象(object),整型也不例外,只要是对象,就有相应的属性 (attributes) 和方法(methods)。在Python3 中有六个标准的数据类型,分别是:

  • Number(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Set(集合)
  • Dictionary(字典)

在六个标准数据类型中,又可分为不可变数据和可变数据,分别是:

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

获取类型信息

  • type() 不会认为子类是一种父类类型,不考虑继承关系。
  • isinstance() 会认为子类是一种父类类型,考虑继承关系。

类型转换

  • 转换为整型 int(x, base=10)
  • 转换为字符串 str(object='')
  • 转换为浮点型 float(x)

5.Print()函数

  • 将对象以字符串表示的方式格式化输出到流文件对象file里。其中所有非关键字参数都按str()方式进行转换为字符串输出;
  • 关键字参数sep是实现分隔符,比如多个参数输出时想要输出中间的分隔字符;
  • 关键字参数end是输出结束时的字符,默认是换行符\n
  • 关键字参数file是定义流输出的文件,可以是标准的系统输出sys.stdout,也可以重定义为别的文件;
  • 关键字参数flush是立即把内容输出到流文件,不作缓存。

三、条件语句

1、if 语句

if 10>9:
  print('10比9大')

10比9大            # 输出结果

2、if - else 语句

name = 'luren'
if name == 'python':         # 判断变量是否为 python 
    print 'welcome boss'     # 输出欢迎信息
else:
    print name               # 条件不成立时输出变量名称

luren            # 输出结果

3、if - elif - else 语句

num = 5     
if num == 3:            # 判断num的值
    print 'boss'        
elif num == 2:
    print 'user'
elif num == 1:
    print 'worker'
elif num < 0:           # 值小于零时输出
    print 'error'
else:
    print 'roadman'     # 条件均不成立时输出

roadman        # 输出结果

4、assert 关键词

assert这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。

四、循环语句

1、while 循环

count = 0
while (count < 1):
   print 'The count is:', count
   count = count + 1
 
print "Good bye!"

The count is: 0

Good bye! # 输出结果

2、while - else 循环

count = 0
while count < 1:
   print count, " is  less than 1"
   count = count + 1
else:
   print count, " is not less than 1"

0 is less than 5

1 is not less than 1 # 输出结果

3、for 循环

fruits = ['banana', 'apple',  'mango']
for fruit in fruits:        # 第二个实例
   print '当前水果 :', fruit

当前水果 : banana
当前水果 : apple
当前水果 : mango # 输出结果

4、for - else 循环、break 语句

nums = [10, 11]
for num in nums:  # 迭代数组
   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 是一个质数 # 输出结果

5、range() 函数

range([start,] stop[, step=1])

  • 这个BIF(Built-in functions)有三个参数,其中用中括号括起来的两个表示这两个参数是可选的。
  • step=1 表示第三个参数的默认值是1。
  • range 这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列,该序列包含start的值但不包含stop的值。

6、enumerate()函数

enumerate(sequence, [start=0])

  • sequence:一个序列、迭代器或其他支持迭代对象。
  • start:下标起始位置。
  • 返回 enumerate(枚举) 对象

8、continue 语句

for letter in 'Python':     # 第一个实例
   if letter != 'h':
      continue
   print '当前字母 :', letter

当前字母 : h # 输出结果

9、pass 语句

for letter in 'Python':
   if letter == 'h':
      pass
      print '这是 pass 块'
   print '当前字母 :', letter

当前字母 : P
当前字母 : y
当前字母 : t
这是 pass 块
当前字母 : h
当前字母 : o
当前字母 : n # 输出结果

10、推导式

  • 列表推导式
x = [i ** 2 for i in range(1, 10)]
print(x)

[1, 4, 9, 16, 25, 36, 49, 64, 81] # 输出结果

  • 元组推导式
a = (x for x in range(10))
print(tuple(a))

(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) # 输出结果

  • 字典推导式
b = {i: i % 2 == 0 for i in range(10) if i % 3 == 0}
print(b)

{0: True, 3: False, 6: True, 9: False} # 输出结果

  • 集合推导式
c = {i for i in [1, 2, 3, 4, 5, 5, 6, 4, 3, 2, 1]}
print(c)

{1, 2, 3, 4, 5, 6} # 输出结果

五、异常处理

异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

1、try - except 语句

try:
    f = open('test.txt')
    print(f.read())
    f.close()
except OSError:
    print('打开文件出错')

2、try - except - finally 语句

try:
    fh = open("testfile", "w")
    fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
    print "Error: 没有找到文件或读取文件失败"
finally:
    print "执行Finally"

3、try - except - else 语句

try:
    fh = open("testfile", "w")
    fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
    print "Error: 没有找到文件或读取文件失败"
else:
    print "内容写入文件成功"
    fh.close()

4、raise语句

def mye( level ):
    if level < 1:
        raise Exception,"Invalid level!"
        # 触发异常后,后面的代码就不会再执行
try:
    mye(0)            # 触发异常
except Exception,err:
    print 1,err
else:
    print 2

1 Invalid level! # 输出结果

总结

学如逆水行舟,不进则退;心似平原走马,易放难收。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

回忆灬似水流年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值