数据可视化,基础语法。

Day2. Python基础语法

基础语法

想学好数据分析,最好掌握Python语言。Python语言简洁,有大量的第三方库,功能强大,能解决数据分析的大部分问题。在数据科学领域,Python有许多非常著名的工具库:比如科学 计算工具Numpy和Pandas库,深度学习⼯具Keras和TensorFlow,以及机器学习工具Scikit-learn,使用率都非常高。总之,在数字化时代掌握⼀门编程语言,尤其是Python语言的使用是⾮常有必要的。相信使用Python的流行,不必多说,接下来我们一起学习基础语法。需要注意编程中除了文字部分可以使用中文,标点符号一定要使用英文输入法否则会报错。

输入与输出

name=input("What's your name?") 
sum= 100+100 
print('hello, %s' %name) 
print('sum= %d' %sum)

input是输入函数,input()括号中存放的是提示文,双引号里面存放字符串类型数据。在Jupyter Notebook 中运行后会出现一个输入框。将内容输入对话框中,内容会被赋值给变量name。

print是输出函数,括号里是输出的内容,第一个print函数,打印出字符串。%name代表变量name的数值,因为是字符串类型,所以在前面加上%s作为代替。第二个print函数中,%sum代表变量sum的数值,是数值型,在前面加上%d作为代替。

运行结果如下:

What's    your    name?DataScience
hello, DataScience
sum= 200

判断语句: if … else …

**if … else … **是经典的判断语句,需要注意的是在if 后有个冒号,同样在else后⾯也存在冒号。 另外需要注意的是,Python采用代码缩进和冒号的方式来区分代码之间的层次关系。所以代码缩进在Python中是一种语法,如果代码缩进不统一,比如有的是tab有的是空格,会怎样呢?会产生错误或者异常。相同层次的代码⼀定要采用相同层次的缩进。

score = int(input('请输入你的成绩'))
if score >= 90:
    print('优秀')
else:
    if score < 60:
        print('不及格')
    else:
        print('及格')

代码中实现输入分数,判断是否优秀和及格。score后面加上int()作用是将input函数中获得的字符串数值转换为整数integer.

运行结果:

请输入你的成绩: 58
不及格

循环语句:for … in

sum = 0 
for number in range(11):
    sum = sum + number 
print(sum)

运行结果

55

for循环是⼀种迭代循环机制,迭代即重复相同的逻辑操作。如果规定循环的次数,我们可以使用range函数,它在for循环中比较常用。range(11)代表从数字0到10,不包括末尾11,也相当于range(0,11),range里面还可以增加步长,比如range(1,11,2)代表的是数组[1,3,5,7,9]

循环语句: while

sum = 0 
number = 1
while number < 11:
    sum = sum + number
    number = number + 1
print(sum)

运行结果:

55

1到10的求和也可以⽤while循环来写,这里while控制了循环的次数。while循环是条件循环,在while循环中对于变量的计算方式更加灵活。因此while循环适合循环次数不确定的循环,⽽for循环的条件相对确定,适合固定次数的循环。

注释:#

注释在python中使用#,也可使用快捷键 ”Ctrl“ 和 ”/“。

如果是多行注释,使用三个单引号,或者三个双引号,比如:

#单行注释

''' 
这是多⾏注释,⽤三个单引号 
这是多⾏注释,⽤三个单引号
这是多⾏注释,⽤三个单引号 
'''

”””
这是多⾏注释,⽤三个双引号
这是多⾏注释,⽤三个双引号
这是多⾏注释,⽤三个双引号
”””

数据类型:列表、元组、字典、集合

Python3 中有六个标准的数据类型:

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

列表:[list]

lists=['a','b','c'] 
lists.append('d') 
print(lists)
print(len(lists)) 
lists.insert(0,'mm') 
lists.pop() 
print(lists)

运行结果:

['a', 'b', 'c', 'd']
4
['mm', 'a', 'b', 'c']

列表是Python中常用的数据结构,相当于数组,具有增删改查的功能,我们可以使用len()即英文length长度,函数获得lists中元素的个数;使⽤ append()在尾部添加元素,使用insert()在列表中插⼊元素,使用pop()删除尾部元素。

元组 (tuple)

tuples = ('tupleA','tupleB')
print(tuples[0])

运行结果:

tupleA

元组tuple和list⾮常类似,但是tuple⼀旦初始化就不能修改。因为不能修改所以没有append(), insert() 这样的⽅法,可以像访问数组⼀样进⾏访问,⽐如tuples[0],但不能赋值。

字典 {dictionary}

#定义⼀个dictionary 
score = {'小李':95,'小王':96} 
#添加⼀个元素 
score['小张']=98 
print(score)
#删除⼀个元素 
score.pop('小王') 
print(score)
#查看⼀个key对应的值 
print(score['小李']) 

运行结果:

{'小李': 95, '小王': 96, '小张': 98}
{'小李': 95, '小张': 98}
95

字典其实就是{key, value}键值对,多次对同⼀个key放入value,后面的值会把前面的值覆盖,同样字典也有增删改查。增加字典的元素相当于赋值,比如score[‘小张’] = 98,删除⼀个元素使⽤pop,字典不支持直接修改元素中的key,可将旧元素删除后添加一个元素。

集合:set

s = set(['a','b','c'])
# 创建集合也可使用花括号{} s = {'a','b','c'}
s.add('d')
s.remove('b')
print(s)
'c' in s

运行结果:

{'c', 'd', 'a'}
True

集合set和字典dictionary类似,不过它只是key的集合,不存储value。同样可以增删查,增加使⽤add,删除使⽤remove,查询看某个元素是否在这个集合里,使用in。

引⽤模块/包:import

导⼊⼀个模块 
import model_name 
#导⼊多个模块 
import module_name1,module_name2 
#导⼊包中指定模块
from package_name import moudule_name 
#导⼊包中所有模块    
from package_name import *

Python语言中import的使用很简单,直接使用import module_name语句导入即可。这里import的本质是什么呢?import的本质路径搜索。import引用可以是模块module,或者包package。 针对module,实际上是引⽤⼀个.py ⽂件。而针对package,可以采⽤from … import …的方式,这里实际上是从⼀个目录中引用模块,这时目录结构中必须带有⼀个_ init_.py⽂件。

函数:def

def addone(score):
    return score + 1 
print(addone(99))

运行结果:

100

def是函数装饰器,将函数代码块打包。函数代码块以def关键词开头,后接函数名和圆括号,在圆括号里是传进来的参数,然后通过return进行函数结果得反馈。

课程讲到这里,只是基础的部分,更多需要用到的内容,可以再补充学习,或者做题练习。学习最好的方式是做中学”learning by doing”,建议小伙伴们把以上代码自己动手敲一遍,并提问自己问题,以检验是否掌握以上知识点。

小作业

1、如果我想在Python中引⽤matplotlib库该如何引⽤?

  • 没有matplotib包的话

    pip install matplotlib
  • 已安装直接引入即可

    import matplotlib

2、求1+3+5+7+…+99的求和,⽤Python该如何写?

sum = 0
for number in range(1,100,2):
    sum = sum + number
print(sum)

评论