1.26

这篇博客介绍了Python中的字符串编码解码、函数使用,包括关键字参数的传递,并展示了如何避免默认参数陷阱。此外,还探讨了递归的概念,通过实现汉诺塔问题的解决方案来阐述递归的应用。最后,提供了C语言中交换两个数的指针方法作为对比。
摘要由CSDN通过智能技术生成

1.26

python

# 字符串的编码解码
s = "妙蛙种子"
byte = s.encode(encoding='GBK')  # 编码
print(byte.decode(encoding='GBK'))  # 解码
# 函数
def calc(a, b):
    c = a + b
    return c
x = calc(10, 20)  # y=calc(b=10,a=20)
print(x)  # print(y) # 结果相同 关键字参数 不按顺序传递

def add_end(L=[]):
    L.append('End')
    return L
print(add_end())
print(add_end())
#['End'] ['End', 'End']
#L是可变对象
def add_end(L1=None):
    if L1 is None:
        L1=[]
        L1.append('END')
        return L1#问题解决
#可变参数
def calc(*numbers):
    sum=(0)
    for n in numbers:
        sum=sum+n*n
        return sum
    #已有数据
    nums=[1,2,3]
    calc(*nums)#避免繁琐
def enroll(name,gender,age=6,city='Beijing'):
    print('name:',name)
    print('gender:',gender)
    print('age:',age)
    print('city:',city)

#递归
def fact(n):
    if n==1:
        return 1
    return n* fact(n-1)

def fact(n):
    return fact_iter(n,1)

def fact_iter(num,product):
    if num==1:
        return product
    return fact_iter(num-1,num*product)

def fact(n):
    if n==1:
        return  1
    return n*fact(n-1)
print('input:')
n=int(input())
print('Results:',fact(n))

#汉诺塔
def move(n, a, b, c):
    if n == 1:
        print('move', a, '-->', c)
    else:
        move(n-1, a, c, b) #按搬动顺序 可把中间字母当作箭头
        move(1, a, b, c)  #每一步调用move
        move(n-1, b, a, c)
Plate=int(input())        #自由输入
move(Plate, 'A', 'B', 'C') #move函数包含输出 直接调用

c

#include<stdio.h>
int main()
{
	void swap(int*p1,int*p2); //声明swap函数 
	int a,b;
	int*pointer_1,*pointer_2;//定义两个指针变量 
	printf("please enter a and b:");
	scanf("%d %d",&a,&b);
	pointer_1=&a;
	pointer_2=&b;
	if(a<b) swap(pointer_1,pointer_2);//这里都是指针变量 
	printf("%d %d",a,b);
	return 0;
 } 
 void swap(int*p1,int*p2)//定义swap 
 {
 	int temp;
 	temp=*p1;
 	*p1=*p2;
 	*p2=temp;
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值