Python学习之数据类型、函数

Linux编程

点击右侧关注,免费入门到精通!

作者丨stone_zhu

https://www.jianshu.com/p/12272a51bfcd

计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。

整数、浮点数、字符串

如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容。

print('''line1

... line2

... line3''')

>>>

line1

line2

line3

Python 3版本中,字符串是以Unicode编码的。

源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

布尔类型

布尔值可以用and、or和not运算

空值

空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

List

list是一种有序的集合,可以随时添加和删除其中的元素。

tuple

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改。

dict

dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。

d = {'Michael':95,'Bob':75,'Tracy':85}

d['Michael']

>>>95

set

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

s = set([1, 1, 2, 2, 3, 3])

s

>>>

Python学习之函数

我们知道圆的面积计算公式为:S = πr2,当我们知道半径的值时,就可以根据公式计算出面积。假设我们需要计算3个不同大小的圆的面积:

r1=12.34

r2=9.08

r3=73.1

s1=3.14* r1 * r1

s2=3.14* r2 * r2

s3=3.14* r3 * r3

当代码出现有规律的重复的时候,你就需要当心了,每次写不仅很麻烦,而且,如果要把改成的时候,得全部替换。

有了函数,我们就不再每次写,而是写成更有意义的函数调用,而函数本身只需要写一次,就可以多次调用。

基本上所有的高级语言都支持函数,Python也不例外。Python不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用。

定义函数

使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。

defmy_abs(x):

ifx >=:

returnx

else:

return-x

可返回多个值(返回值是一个tuple!但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple)。

importmath

def move(x, y, step, angle=):

nx = x + step *math.cos(angle)

ny = y - step *math.sin(angle)

returnnx, ny

x, y = move(100,100,60,math.pi/6)

函数的参数

位置参数

defpower(x, n):

s =1

whilen >:

n = n -1

s = s * x

returns

函数有两个参数:和,这两个参数都是位置参数,调用函数时,传入的两个值按照位置顺序依次赋给参数和。

默认参数

defenroll(name, gender, age=6, city='Beijing'):

print('name:', name)

print('gender:', gender)

print('age:', age)

print('city:', city)

enroll('Bob','M',7)

enroll('Adam','M', city='Tianjin')

从上面的例子可以看出,默认参数可以简化函数的调用。设置默认参数时,有几点要注意:

一是必选参数在前,默认参数在后,否则Python的解释器会报错;二是当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。三是默认参数必须指向不变对象(str、None等)!

可变参数

defcalc(*numbers):

sum =

forninnumbers:

sum = sum + n * n

returnsum

calc(1,2)

nums = [1,2,3]

calc(*nums)

可以看出,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。

关键词参数

可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。

defperson(name, age, **kw):

print('name:', name,'age:', age,'other:', kw)

extra = {'city':'Beijing','job':'Engineer'}

person('Jack',24, **extra)

>>>name:Jackage:24other:{'city':'Beijing','job':'Engineer'}

命名关键字参数

defperson(name, age, *, city, job):

print(name, age, city, job)

person('Jack',24, city='Beijing', job='Engineer')

>>> Jack24Beijing Engineer

defperson(name, age, *args, city='Beijing', job):

print(name, age, args, city, job)

person('Jack',24, job='Engineer')

>>> Jack24Beijing Engineer

和关键字参数**kw不同,命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数。如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181015B1ROJ600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券