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不同,命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数。如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了
领取专属 10元无门槛券
私享最新 技术干货