可以使用函数range()
来生成指定数字序列。
range(1,5)
表示1,2,3,4
可以把range()
作为函数list()
的参数来创建数字列表:
例如创造1-5的列表
numbers = list(range(1,6))
创建一个用户输入的数字列表:
numbers = list(map(int,input().split()))
python中可以使用**来表示平方
min()函数可求一个数字列表的最小值,max()求最大值,sum()求和
在Python中, 字典是一系列键-值对。
每个键都与一个值相关联,你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何Python对象用作字典中的值。
字典的每个键值 key=>value
对用冒号:
分割,每个键值对之间用逗号 ,
分割,整个字典包括在花括号{}
中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
例1:
>>> tinydict = {'a': 1, 'b': 2, 'b': '3'} >>> tinydict['b'] '3' >>> tinydict {'a': 1, 'b': '3'}
例2:
tinydict = {'Name': 'Runoob', 'Age': 7, 'Name': 'Manni'} print "tinydict['Name']: ", tinydict['Name']
创建字典和新增键-值对
alien_0 = {} alien_0['color'] = 'green' alien_0['points'] = 5 print(alien_0)
输出:
{'color': 'green', 'points': 5}
删除时可使用del()
函数进行删除。
函数基本格式:
def functionname( parameters ): "函数_文档字符串" function_suite return [expression]
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。 函数内容以冒号起始,并且缩进。 return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
函数举例:
def max(a, b): if a > b: return a else: return b
可更改(mutable)与不可更改(immutable)对象
在 python 中,strings
, tuples
, 和 numbers
是不可更改的对象,而 list
,dict
等则是可以修改的对象。
模块:
模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。
import 语句
想使用 Python 源文件,只需在另一个源文件里执行 import 语句,语法如下:
import module1[, module2[,... moduleN]
Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中,语法如下:
from modname import name1[, name2[, ... nameN]]
把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:
from modname import *
dir()
函数
内置的函数dir()
可以找到模块内定义的所有名称。以一个字符串列表的形式返回:
举例:
>>> import fibo, sys >>> dir(fibo) ['__name__', 'fib', 'fib2'] >>> dir(sys) ['__displayhook__', '__doc__', '__excepthook__', '__loader__', '__name__', '__package__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_debugmallocstats', '_getframe', '_home', '_mercurial', '_xoptions', 'abiflags', 'api_version', 'argv', 'base_exec_prefix', 'base_prefix', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_info', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getobjects', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'getswitchinterval', 'gettotalrefcount', 'gettrace', 'hash_info', 'hexversion', 'implementation', 'int_info', 'intern', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'setswitchinterval', 'settrace', 'stderr', 'stdin', 'stdout', 'thread_info', 'version', 'version_info', 'warnoptions']
字符输出:
str(): 函数返回一个用户易读的表达形式。
repr(): 产生一个解释器易读的表达形式。
>>> s = 'Hello, Runoob' >>> str(s) 'Hello, Runoob' >>> repr(s) "'Hello, Runoob'" >>> str(1/7) '0.14285714285714285' >>> x = 10 * 3.25 >>> y = 200 * 200 >>> s = 'x 的值为: ' + repr(x) + ', y 的值为:' + repr(y) + '...' >>> print(s) x 的值为: 32.5, y 的值为:40000... >>> # repr() 函数可以转义字符串中的特殊字符 ... hello = 'hello, runoob\n' >>> hellos = repr(hello) >>> print(hellos) 'hello, runoob\n' >>> # repr() 的参数可以是 Python 的任何对象 ... repr((x, y, ('Google', 'Runoob'))) "(32.5, 40000, ('Google', 'Runoob'))"
格式化输出:
>>> for x in range(1, 11): ... print(repr(x).rjust(2), repr(x*x).rjust(3), end=' ') ... # 注意前一行 'end' 的使用,目的是把输出末尾默认的回车改为空格 ... print(repr(x*x*x).rjust(4)) ... 1 1 1 2 4 8 3 9 27 4 16 64 5 25 125 6 36 216 7 49 343 8 64 512 9 81 729 10 100 1000 >>> for x in range(1, 11): ... print('{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x)) ... 1 1 1 2 4 8 3 9 27 4 16 64 5 25 125 6 36 216 7 49 343 8 64 512 9 81 729 10 100 1000
字符串对象的 rjust()
方法可以将字符串靠右, 并在左边填充空格。
同理ljust()
是字符串靠左
str.format() 的基本使用如下:
括号及其里面的字符 (称作格式化字段) 将会被 format() 中的参数替换。
在括号中的数字用于指向传入对象在 format() 中的位置,如下所示:
>>> print('{} 和 {}'.format('Google', 'Runoob')) Google 和 Runoob >>> print('{0} 和 {1}'.format('Google', 'Runoob')) Google 和 Runoob >>> print('{1} 和 {0}'.format('Google', 'Runoob')) Runoob 和 Google
{}
中使用!a
(使用 ascii()), !s
(使用 str()) 和 !r
(使用 repr()) 可以用于在格式化某个值之前对其进行转化.
%
操作符也可以实现字符串格式化。 它将左边的参数作为类似 sprintf()
式的格式化字符串, 而将右边的代入, 然后返回格式化后的字符串.
>>> import math >>> print('常量 PI 的值近似为:%5.3f。' % math.pi) 常量 PI 的值近似为:3.142。
相关概念:
类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
方法类中定义的函数。
类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。
方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
局部变量:定义在方法中的变量,只作用于当前实例的类。
实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。
继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
实例化:创建一个类的实例,类的具体对象。
对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
类定义格式:
class ClassName: <statement-1> . . . <statement-N>
类对象支持两种操作:属性引用和实例化。
例子:
class MyClass: """一个简单的类实例""" i = 12345 def f(self): return 'hello world' # 实例化类 x = MyClass() # 访问类的属性和方法 print("MyClass 类的属性 i 为:", x.i) print("MyClass 类的方法 f 输出为:", x.f())
输出为:
MyClass 类的属性 i 为: 12345 MyClass 类的方法 f 输出为: hello world
在类的内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self, 且为第一个参数,self 代表的是类的实例。
self代表类的实例,而非类