Python学习(五)常见函数及控制结构

常用函数

1,type(变量名)返回该变量的类型

2,print()函数:

  pprint.pprint(t, width=50) #根据需要进行换行和缩进

  print(value, ..., sep=' ', end=' ', file=sys.stdout, flush=False)
    默认情况下,打印值到输出流,或sys.stdout来。
    可选关键字参数:
    file:一个类文件对象(流);默认为当前sys.stdout的。
    sep:值之间插入的字符串,默认的空格。
    end:最后一个值后追加字符串,默认换行符。
    flush:是否强制刷新流。

    #输出字符串时,[ ]的用法:1,获取某个字符,2,取出一段字符串,[n1,n2]包前不包后,类似range[n1,n2],n1<n2;[n1,n2,-1]倒序输出,n1>n2

复制代码
str1="abcdefg.mp4";
'''
从左向右输出
'''
print(str1[:]);#从左到右输出字符串
print("#取字符4");
print(str1[10]);   #取出字符串str1的第2个字母 ,[n],n为要取的字母的位置数
print(str1[-1]);#当[n],n为负数,则取从最后一个字符数第|n|个字符
print("#取字符abcdefg");
print(str1[0:7]);  #取出a,b,c,d,e,f,g共7个字母,[n1:n2],n1必须是0,n2为要取的最后一个字符的位置数+1,n2取不到。
print(str1[:7]);#截取字符串中某个字符之前的字符,[:n],n是要截取的字符串后第一个字符的位置数,不包括n
print(str1[0:-4]);#当[0:n2],n2为负数,则取从第一个到第从最后一个字符数第|n|个字符的所有字符(不包括n2)
print(str1[-11:-4]);
print("#取字符.mp4")
print(str1[7:11]); #截取字符串中某一段字符,[n1:n2],n1是要截取的第一个字符的位置数,n2是要截取的最后一个字符的位置数+1,n2取不到
print(str1[7:]);#截取字符串中某个字符之后的字符,[n:],n是要截取的第一个字符的位置数
print(str1[-4:]);
'''
从右向左输出
'''
print(str1[::-1]);#倒序输出所有字符
print(str1[-1:-5:-1]);#倒序输出4pm.
print(str1[10:6:-1]);#倒序输出4pm.
print(str1[-5:-12:-1]);#倒序输出gfedcba
复制代码

3,input()函数,键盘输入的信息,点击回车获取输入信息(变量为string类型)

input("提示信息")
    
    从标准输入读取一个字符串。其后的换行符被剥离。


    提示字符串,如果给定的,被打印到标准输出流
    读取输入之前换行符。
    
    如果用户点击EOF终止输入(* nix中:按Ctrl-d时,Windows键:Ctrl-Z +回车),抛出的EOFError错误。
    在* nix系统,Read一行(如果可用)。

4,id()函数

id(obj, /)
    返回一个对象的内存地址。
    
    这是保证是同时存在的对象中是唯一的。
    (CPython的使用对象的内存地址。)

   在交互式命令行模式中,小整数对象池n属于[-5,256]

   情况:

               

   原因:在交互式模式下,定义的几个数都在小整数范围内,则当几个数相等时,这几个数共用一个内存地址;都不在小整数范围内,则分别单独开辟空间(不管这些数是否相等)。

         

5,random.randint(n1,n2):产生从n1到n2的随机数(需要导包random)

  生成从n1到n2的m个随机整数

while True:
    source=random.randint(n1,n2)
    sour_arr.append(source)
    n+=1
    if n==m:
        break
x=[random.randint(n1,n2) for i in range(m)]

  生成500以内的所有素数:

sushu=[p for p in range(2, 500) if 0 not in [p%d for d in range(2,int(p**0.5)+1)]]

6,range函数:产生定义范围内的所有数

  • range(n):从0到n的所有数(不包含n)
  • range(n1,n2):从n1到n2的所有数(不包含n2)
  • range(n1,n2,间隔n):从n1到n2间隔n的所有数(不包含n2)

7,isinstance(n,type):判断变量n是否是类型type

  type(变量):查看类型

8,from fractions import Fraction
  x=Fraction(分子,分母)     创建分数

  x.numerator    x的分子
  x.denominator   x的分母

9,join()函数:以sep作为分隔符,将seq所有的元素合并成一个新的字符串

  语法:  'sep'.join(seq)

  参数说明
  sep:分隔符。可以为空
  seq:要连接的元素序列、字符串、元组、字典
  返回值:返回一个以分隔符sep连接各个元素后生成的字符串

9,内置函数:用C语言实现并且进行了大量优化,具有非常快的运行速度,推荐优先使用

   使用help(函数名)可查看某个函数用法:help(函数名)

  可导入sys模块后使用print(sys.builtin_module_names)查看Python所有内置模块名称

  可以使用help('modules')查看本机所有可用模块的名称

序号
函数
功能简要说明
1
abs(x)
返回数字x的绝对值或复数x的模
2
all(iterable)
如果对于可迭代对象中所有元素x都等价于True,也就是对于所有元素x都有bool(x)等于True则返回True。对于空的可迭代对象也返回True
3
any(iterable)
只要可迭代对象iterable中存在元素x使得bool(x)为True,则返回True。对于空的可
迭代对象,返回False
4
ascii(obj)
把对象转换为ASCII码表示形式,必要的时候使用转义字符来表示特定的字符
5
bin(x)
把整数x转换为二进制串表示形式
6
bool(x)
返回与x等价的布尔值True或False
7
bytes(x)
生成字节串,或把指定对象x转换为字节串表示形式
8
callable(obj)
测试对象obj是否可调用。类和函数是可调用的,包含__call__()方法的类的对象也
是可调用的
9
compile()
用于把Python代码编译成可被exec()或eval()函数执行的代码对象
10
complex(real, [imag])
返回复数
11
chr(x)
返回Unicode编码为x的字符
12
delattr(obj, name)
删除属性,等价于del obj.name
13
dir(obj)
返回指定对象或模块obj的成员列表,如果不带参数则返回当前作用域内所有标识符
14
divmod(x, y)
返回包含整商和余数的元组((x-x%y)/y, x%y)
15
enumerate(iterable[, start])
返回包含元素形式为(0, iterable[0]), (1, iterable[1]), (2, iterable[2]), ...的迭代器对象
16
eval(s[, globals[, locals]])
计算并返回字符串s中表达式的值
17
exec(x)
执行代码或代码对象x
18
exit()
退出当前解释器环境
19
filter(func, seq)
返回filter对象,其中包含序列seq中使得单参数函数func返回值为True的那些元素,如果函数func为None则返回包含seq中等价于True的元素的filter对象
20
float(x)
把整数或字符串x转换为浮点数并返回
21
frozenset([x]))
创建不可变的集合对象
22
getattr(obj, name[, default])
获取对象中指定属性的值,等价于obj.name,如果不存在指定属性则返回default的值,如果要访问的属性不存在并且没有指定default则抛出异常
23
globals()
返回包含当前作用域内全局变量及其值的字典
24
hasattr(obj, name)
测试对象obj是否具有名为name的成员
25
hash(x)
返回对象x的哈希值,如果x不可哈希则抛出异常
26
help(obj)
返回对象obj的帮助信息
27
hex(x)
把整数x转换为十六进制串
28
id(obj)
返回对象obj的标识(内存地址)
29
input([提示])
显示提示,接收键盘输入的内容,返回字符串
30
int(x[, d])
返回实数(float)、分数(Fraction)或高精度实数(Decimal)x的整数部分,或把d进制的字符串x转换为十进制并返回,d默认为十进制
31
isinstance(obj, class-or-type-or-tuple)
测试对象obj是否属于指定类型(如果有多个类型的话需要放到元组中)的实例
32
iter(...)
返回指定对象的可迭代对象
33
len(obj)
返回对象obj包含的元素个数,适用于列表、元组、集合、字典、字符串以及range对象和其他可迭代对象
34
list([x])、set([x])、tuple([x])、dict([x])
把对象x转换为列表、集合、元组或字典并返回,或生成空列表、空集合、空元组、空字典
35
locals()
返回包含当前作用域内局部变量及其值的字典
36
map(func, *iterables)
返回包含若干函数值的map对象,函数func的参数分别来自于iterables指定的每个迭代对象
37
max(x)、min(x)
返回可迭代对象x中的最大值、最小值,要求x中的所有元素之间可比较大小,允许指定排序规则和x为空时返回的默认值
38
next(iterator[, default])
返回可迭代对象x中的下一个元素,允许指定迭代结束之后继续迭代时返回的默认值
39
oct(x)
把整数x转换为八进制串
40
open(name[, mode])
以指定模式mode打开文件name并返回文件对象
41
ord(x)
返回1个字符x的Unicode编码
42
pow(x, y, z=None)
返回x的y次方,等价于x ** y或(x ** y) % z
43
print(value, ..., sep=' ',flush=False)
end=' ', file=sys.stdout,
基本输出函数
44
quit()
退出当前解释器环境
45
range([start,] end [,step] )
返回range对象,其中包含左闭右开区间[start,end)内以step为步长的整数
46
reduce(func, sequence[,initial])
将双参数的函数func以迭代的方式从左到右依次应用至序列seq中每个元素,最终返回单个值作为结果。在Python 2.x中该函数为内置函数,在Python 3.x中需要从functools中导入reduce函数再使用
47
print(value, ..., sep=' ', end=' ',file=sys.stdout, flush=False)
基本输出函数
48
quit()
退出当前解释器环境
49
range([start,] end [, step] )
返回range对象,其中包含左闭右开区间[start,end)内以step为步长的整数
50
reduce(func, sequence[, initial])
将双参数的函数func以迭代的方式从左到右依次应用至序列seq中每个元素,最终返回单个值作为结果。在Python 2.x中该函数为内置函数,在Python 3.x中需要从functools中导入reduce函数再使用
51
repr(obj)
返回对象obj的规范化字符串表示形式,对于大多数对象有eval(repr(obj))==obj
52
reversed(seq)
返回seq(可以是列表、元组、字符串、range以及其他可迭代对象)中所有元素逆序后的迭代器对象
53
round(x [, 小数位数])
对x进行四舍五入,若不指定小数位数,则返回整数
54
sorted(iterable, key=None,reverse=False)
返回排序后的列表,其中iterable表示要排序的序列或迭代对象,key用来指定排序规则或依据,reverse用来指定升序或降序。该函数不改变iterable内任何元素的顺序
55
str(obj)
把对象obj直接转换为字符串
56
sum(x, start=0)
返回序列x中所有元素之和,返回start+sum(x)
57
type(obj)
返回对象obj的类型
58
zip(seq1 [, seq2 [...]])
返回zip对象,其中元素为(seq1[i], seq2[i], ...)形式的元组,最终结果中包含的元素个数取决于所有参数序列或可迭代对象中最短的那个

10,转换

  ord()和chr()功能相反,

  ord()用来返回单个字符的Unicode码,

  chr()则用来返回Unicode编码对应的字符,

  str()则直接将其任意类型参数转换为字符串

11,统计函数

  sum()只支持数值型元素的序列或可迭代对象,

  max()和min()则要求序列或可迭代对象中的元素之间可比较大小

控制结构:

1,条件if.....else...:

复制代码
if 条件一:
    符合条件一的执行结果;    //前面的缩进是一个Tab键
elif 条件二:
    符合条件一的执行结果;
elif 条件三:
    符合条件三的执行结果;
else:
    都不符合的执行结果;
复制代码

2,循环for i in 队列或范围等:

for i in  范围或集合等:
    每次循环执行的语句

3,循环while:使用while可能出现的死循环:

                         循环语句中只输出信息,条件中的变量没有改变

                         循环条件为True

                        例子:打印九九乘法表:

复制代码
i=1;
while i<=9:
    ceng=1;
    while ceng<=i:
        print("%s*%s=%s	"%(i,ceng,i*ceng),end="",sep="");
        ceng+=1;
    i+=1;
    print();
复制代码
原文地址:https://www.cnblogs.com/lq13035130506/p/12570867.html