8.eval,json,函数,

执行字符串eval

eval() 把字符串中的列式执行,使用这种方式,可以将字符串转换成为其他类型的数据

a = "1 + 1"
print(eval(a))
b = '1 > a'
print(eval(b))

转换成为字符串json

[] 数组 {}表示对象

使用json的dumps方法,可以将字典、列表或者元组转换成为字符串

字典通过json转为str类型,叫做json字符串

import json    #dumps方法
person = {'name': '胡冠雨', 'age': 18}
per_str = json.dumps(person)
print(per_str)
new_person = json.loads(per_str)
print(new_person)
print(type(new_person))

使用json的loads方法,可以将格式正确的字符串转换成为字典、列表

x = '{"name": "zhangsan", "age": 18}'  #loads方法
person = json.loads(x)
print(person)  # {'name': 'zhangsan', 'age': 18}
print(type(person)) # <class 'dict'>

y = '[1, 9, 0, 4, 7]'
nums = json.loads(y)
print(nums) # [1, 9, 0, 4, 7]
print(type(nums)) # <class 'list'>

函数

把一些使用率比较高的,书写难度较大,结构内容比较固定的代码, 会使用容器存着

用的时候拿出容器,不用的时候放一边

这样的放着代码的容器,我们叫做函数

定义和调用

格式: def 函数名(): 下面接代码

def 函数名():
    代码

函数 和方法一样,都需要调用,并且函数在写完以后,不会输出任何东西

调用方法:: x.函数名()

函数的参数

形式参数:函数名后面的小括号里面的变量…就是一个在定义函数的时候定义的参数

实际参数:我们的调用函数式传入的真实的值…就是在使用数据时,传入的数据

位置参数:按照参数位置进行数据匹配

关键字参数:根据键值对前面的键进行匹配

  • 在定义函数的时候,小括号里写等待赋值的变量名 (形参)
  • 在调用函数的时候,小括号里写真正要进行运算的数据(实参)
def test(a, b):
    print(a, b)


test(1, 2)  # 位置参数    1, 2

test(b=1, a=2)  # 关键字参数    2 ,  1   
test(2, b=1)    #关键字参数要写在位置参数之后  2 , 1
# test(b=1,2)  # 关键字参数写在位置参数之前会导致出错

函数的返回值

当函数运行一个函数完毕之后,需要把程序的运行结果回调给调用者

调用者可以拿着结果进行其他操作

关键字为return,只要函数中代码执行到return,那么这个函数直接结束,不在继续运行.(有点类似于break,都是直接结束)

def add2num(a, b):
    return a + b  # return 后可以写计算表达式


a = add2num(1, 2)
print(a)

函数的嵌套使用

一个函数里面又调用了另外一个函数,这就是所谓的函数嵌套调用

如果函数A中,调用了另外一个函数B,那么先把函数B中的任务都执行完毕之后才会回到上次 函数A执行的位置

#嵌套使用,互相调用,最后会报错,因为栈溢出了
def showA():
    print("A")
    showB()

def showB():

    print("B")
    showA()


showB()

一些练习

# 拿着两个求出来的值进行大小比较
def get_sum(a, b):
    """    注释文本
    这是一个求两个数字的和的方法
    :param a: 位置参数  接受第一个传递过来的值 尽量是number类型
    :param b: 位置参数  接受第二个传递过来的值 尽量是number类型
    :return: 将两个参数的和返回
    """
    return a + b
x = get_sum(5, 6)
y = get_sub(20, 8)

print(x if x > y else y)

print(help(get_sum))
# 打印自定义行数的横线
def print_lines(line_num):
    i = 0
    while i < line_num:
        print("-" * 30)
        i += 1

print_lines(10)
# 创建一个求长方形面积和周长的函数
def get_rectangle(length, width):
    print("长方形的面积为: %s" % (length * width))
    print("长方形的周长为: %s" % ((length + width) * 2))


get_rectangle(8, 2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值