Python学习笔记7——常用函数

把握今天,才能拥有明天!

eval()函数

  • 把一个字符串当成一个表达式来执行, 返回表达式执行后的结果
  • 语法:

          eval(string_code, globals=None, locals=None)

exec()函数

  • 跟eval功能类似, 但是,不返回结果
  • 语法:

  exec(string_code, globals=None, locals=None)
x = 100
y = 200
# 执行x+y
# z = x + y
z1 = x + y
z2 = eval("x+y")

print(z1)
print(z2)
300
300
# exec示例
x = 100
y = 200
# 执行x+y
# z = x + y
z1 = x + y
# 1, 注意字符串中引号的写法
# 2. 比对exec执行结果和代码执行结果
z2 = exec("print('x+y:', x+y)")

print(z1)
print(z2)
x+y: 300
300
None

递归函数

  • 含税直接或者间接调用自身
  • 优点:简洁,理解容易
  • 缺点:对递归深度有限制,消耗资源大
  • python对递归深度有限制,超过限制报错
  • 在写递归程序的时候,一定注意结束条件
# n表示求第n个数子的斐波那契数列的值
def fib(n):
    if n == 1:
        return 1
    
    if n == 2:
        return 1
    
    
    return fib(n-1) + fib(n-2)

print(fib(3))
print(fib(10))

2

55

内置数据结构(变量类型)

  • list
  • set
  • dict
  • tuple ## list(列表)
  • 一组由顺序的数据的组合
  • 创建列表
    • 空列表
l = [2,3,1,4,6,4,6]
print(type(l))
print(l)
<class 'list'>
[2, 3, 1, 4, 6, 4, 6]

列表常用操作

  • 访问
    • 使用下标操作(索引)
    • 列表的位置是从0开始
  • 分片操作
    • 对列表进行任意一段的截取
    • l[:]
# 下标访问列表
l = [3,2,1,4,6,3,2]

print(l[3])

4

# 分片操作
# 注意截取的范围,包含左边的下标值,不包含右边的下标值
print(l[1:4])

# 下标值可以为空,如果不写,左边下标值默认为0, 右边下标值为最大数加一,即表示截取到最后一个数据
print(l[:])
print(l[:4])
print(l[2:])
[2, 1, 4]
[3, 2, 1, 4, 6, 3, 2]
[3, 2, 1, 4]
[1, 4, 6, 3, 2]
print(l)
# 分片可以控制增长幅度,默认增长幅度为1
print(l[1:6:1])

# 打印从下标1开始的数字,每次隔一个
print(l[1:6:2])

# 下标可以超出范围,超出后不在考虑多余下标内容
print(l[2:10])

# 下标值,增长幅度可以为负数
# 为负数,表明顺序是从右往左
# 规定: 数组最后一个数字的下标是-1
[3, 2, 1, 4, 6, 3, 2]
[2, 1, 4, 6, 3]
[2, 4, 3]
[1, 4, 6, 3, 2]
[3, 2, 1]
# 分片之负数下标
print(l)
# 下面显示的是为空,因为默认分片总是从左向右截取
# 即正常情况,分片左边的值一定小于右边的值
print(l[-2:-4])
print(l[-4:-2])
# 如果分片一定左边值比右边大,则步长参数需要使用负数
# 此案例为一个list直接正反颠倒提供了一种思路
print(l[-2:-4:-1])
[3, 2, 1, 4, 6, 3, 2]
[]
[4, 6]
[3, 6]

  分片操作是生成一个新的list

  • 内置函数id,负责显示一个变量或者数据的唯一确定编号
# id函数举例
a = 100
b = 200
print(id(a))
print(id(b))

c = a
print(id(c))

# 如果a跟c只想一份数据,则更改a的值同样也会更改c的值
# 但是,显示结果并非如此,为什么?
a = 101
print(a)
print(c)

#TempConvert.py
TempStr = input("请输入带有符号的温度值: ")
if TempStr[-1] in ['F', 'f']:
    C = (eval(TempStr[0:-1]) - 32)/1.8
    print("转换后的温度是{:.2f}C".format(C))
elif TempStr[-1] in ['C', 'c']:
    F = 1.8*eval(TempStr[0:-1]) + 32
    print("转换后的温度是{:.2f}F".format(F))
else:
    print("输入格式错误")

猜你喜欢

转载自blog.csdn.net/qq_37507976/article/details/82832298
今日推荐