推荐系统-Python语言及数据科学库基础(二)

本文深入探讨Python中的函数,包括不同类型的函数、参数、默认参数、关键字参数、Lambda函数等。接着介绍了Python的控制语句、文件读写、异常控制和面向对象编程。进一步讲解了Python GUI程序设计,以及通过阶段小练习实践红包程序。随后,文章通过蒙特卡罗方法展示了Python在求解近似值的应用,并详细讨论了Numpy库,包括矩阵创建、属性、特殊矩阵创建、数据类型转换等线性代数运算。
摘要由CSDN通过智能技术生成

机器学习语言必备-Python语言入门(二)

1.函数详解

  • 函数分为4中类型

    • 根据参数和返回值进行判断
      • 没有返回值没有参数
      • 有参数没有返回值
      • 没有返回值有参数
      • 有参数有返回值的
  • 全局变量和局部变量

    • global
#函数有几种类型:
#1.函数的返回值
#2.函数的参数

#无返回值无参数
def repeatString():
    print("helloWorld\t"*5)
repeatString()
repeatString()
#有返回值没有参数
def repeatString():
    return "Hello"
output=repeatString()
print(output)
#没有返回值有参数
def addThreeNumwer(a,b):
    print(a+b)
addThreeNumwer(1,2)
#有返回值有参数
def addThreeNumber1(a,b):
    return a+b
print(addThreeNumber1(1,2))

#全局变量和局部的变量
X=60
def showValue(X):
    print("Current X values is :",X)
    X=100
    print("Change X values is:",X)
showValue(X)
print("Final X value is:",X)

Y=60
def showValueY():
    global Y # 将Y设置为全局变量
    print("current values result is:",Y)
    Y=100
    print("change  values result is:",Y)
showValueY()
print("Final Y result is:",Y)

2.函数详解-参数

  • 参数
    • 默认参数
      • 默认参数需要注意他的顺序
    • 关键字参数
      • 关键字参数可以调换顺序,但是需要明确指明具体参数名字
    • VarArgs参数
      • * 表示的是tuple或列表
      • ** 表示的是dict
    • zip重述
# 默认参数
# 非默认参数必须在最后
def showNumber(x,y=1,z=1):
    print(x+y+z)
showNumber(1,1,1)
# 关键字参数
def addThreeNumber(a,b,c=1):
    print(a+b+c)
addThreeNumber(1,2,3)
addThreeNumber(a=1,b=2,c=3)
addThreeNumber(c=3,a=1,b=2)
addThreeNumber(a=1,b=2)
# VarArgs参数
#* 表示可迭代的对象---元祖或列表
#**表示的是字典--key:value
def printFunction(fparameters,*tuple1,**dict1):
    print(fparameters)
    print(tuple1)
    print(dict1)
printFunction(1,2,3,4,5,"okok",age="12",name="zhangsan")
# 输出结果如下
# 1
# (2,3,4,5,"okok")
# {'age':12,'name':'zhangsan'}
vec=[[1,2,3],[4,5,6],[7,8,9]]
print(list(map(list,zip(*vec))))
print(list(map(list,zip([1,2,3],[4,5,6],[7,8,9]))))


#4.传递参数时的序列解包
def demo3(a,b,c):
    print(a+b+c)
seq=[1,2,3]
demo3(*seq)

tup=(1,2,3)
demo3(*tup)

3. 函数详解-Lambda函数

  • lambda函数—匿名函数
  • 语法:lambda 变量:表达式
  • 平方:lambda x:x*x,可以在其中跟上默认参数,如果直接想输出的话直接使用括号进行输出即可
  • lambda函数需要结合map函数使用,直接将lambda函数应用于可迭代对象或序列上
  • 了解sort函数和lambda结合的形式
# 语法:lambda 变量:表达式
# x*x
#lambda 匿名函数
g=lambda x:x*x
print(g(9))
#三个数字的之和
g1=lambda x,y,z=0:x+y+z
print(g1(1,1,1))
#直接输出结果
print((lambda x,y,z=0:x+y+z)(1,2,3))
#lambda函数直接用于map、reduce、filter函数
addNumber=list(map(lambda x,y,z:x+y+z,range(5),range(5),range(5)))
print(addNumber)


data=list(range(20))
print(data)
import random
random.shuffle(data)
print("shuffle data:",data)
print((lambda x:x)(data)) #[19, 16, 9, 17, 14, 12, 10, 3, 4, 8, 0, 2, 7, 13, 11, 1, 15, 6, 18, 5]
data.sort(key=lambda x:x)
print(data)
print("="*100)
print((lambda x:len(str(x)))(data)) #[19, 16, 9, 17, 14, 12, 10, 3, 4, 8, 0, 2, 7, 13, 11, 1, 15, 6, 18, 5]
data.sort(key=lambda x:len(str(x))) #使用lambda表达式指定排序规则
print(data)
data.sort(key=lambda x:len(str(x)),reverse=True)
print(data)
# [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

4.Python控制语句详解

  • if_elif_else条件控制
    • 条件判断
#猜数字游戏
number=100
guessNumber=int(input("Please input your number:"))
if guessNumber == number:
    print("Wow,you guess number is right!")
elif guessNumber > number:
    print("Your guess number is larger than before!")
else:
    print("Your guess number is smaller than before")
  • while循环
    • 在不确定次数的时候使用while循环
#猜数字游戏
number=100
while  True:
    guessNumber=int(input("Please input your number:"))
    if guessNumber == number:
        print("Wow,you guess number is right!")
        break
    elif guessNumber > number:
        print("Your guess number is larger than before!")
        continue
    else:
        print("Your guess number is smaller than before")
        continue
  • for循环
    • 常用于迭代可迭代的对象,如列表、元祖等
# 在Python2中使用Python3的语法可以这样导包
from __future__ import print_function
for i in range(10):
    print(i,end="") # 没有空格

print()
for i in [1,2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值