函数和组合数据类型

函数

# 函数用来:实现一个功能.函数理解成一个工具,遇到了问题把这个工具拿来用
# 函数的好处:函数更方便,复用,可以在多个场景下用
1.无参数和返回值的函数
 import random
 def get_pi():
    count=0
    for i in range(1000):
         x,y=random.random(),random.random()
         dist=pow(x**2+y**2,0.5)
         if dist<1:
     print(4*count/1000)
get_pi()
2.带有参数的函数
import random
def get_pi(num):
    count=0
    for i in range(num):
        x,y=random.random(),random.random()
        dist=pow(x**2+y**2,0.5)
        if dist<1:
            count+=1
    print(4*count/num)
get_pi(100)
get_pi(1000)
get_pi(10000)
3.带有返回值的参数(即有return)
import random
def get_pi(num):
    count=0
    for i in range(num):
        x,y=random.random(),random.random()
        dist=pow(x**2+y**2,0.5)
        if dist<1:
            count+=1
    return 4*count/num
result1=get_pi(100)
print(result1)
result2=get_pi(1000)
print(result2)
result3=get_pi(10000)
print(result3)
字符串(“ ”)
#字符串的定义
# name1='nick'
# name2=str("nick")
# print("name2:",name2)
集合({ })
#集合:大括号内用逗号隔开多个元素,集合(哈希表)是无序的,去重
#集合的定义
#s1= {'nick', 'handsome', 'wuhao', 'dsb', 1231, 1.0, 1.0, 1.0, 'dsb', 'dsb'}
#print(s1)
结果为:
{1.0, 1231, 'handsome', 'dsb', 'wuhao', 'nick'}#注意:1.0只显示了一次,因为集合的去重性,而且每次运行的结果都不一样,因而集合是无序的
#集合的定义是使用set()
s2 = set('nick')
s3 = set(['1', 2, 3])
print(s2)
print(s3)
结果为:
{'n', 'k', 'i', 'c'}
{'1', 2, 3}
#集合之间的运算:交集&,并集|,补集^,差集-
# s1={"11","wh","king"}
# s2={"11","yj","los"}
# print(s1&s2)
# print(s1|s2)
# print(s1^s2)
# print(s1-s2)
结果为:
{'11'}
{'los', 'yj', 'king', '11', 'wh'}
{'los', 'yj', 'king', 'wh'}
{'king', 'wh'}
#集合的内置方法(注意集合是无序的)
# s1= {'nick', 'handsome', 'wuhao', 'dsb', 1231, 1.0, 1.0, 1.0,'dsb', 'dsb'}
# s1.add('123')#添加
# print(s1)
#
#下面为两种删除方法,删除时会将和要删除的数据相同的一起删除,如下面的删除1.0则会将集合里面的所有1.0全部删除
# s1.remove(1.0)#丢掉的是没有的会报错
# print(s1)
#
# s1.discard(3)#丢掉的是没不有的会报错
# print(s1)
# s1.discard("dsb")
# print(s1)

# s2=s1.copy()
# print(s2)

# s1.clear()
# print(s1)

结果为:
{1.0, 'wuhao', 1231, 'nick', '123', 'handsome', 'dsb'}
{'wuhao', 1231, 'nick', '123', 'handsome', 'dsb'}
{'wuhao', 1231, 'nick', '123', 'handsome', 'dsb'}
{'wuhao', 1231, 'nick', '123', 'handsome'}
{'nick', '123', 'handsome', 'wuhao', 1231}
set()
序列
#序列:包括字符串,列表,元组
#序列类型:带有索引的数据类型
1.字符串/列表/元组共有的方法
##字符串/列表/元组共有的方法
#name = 'wuhao dsb'
#        012345678
# print('长度为:'.len(name))
# print('w'in name)
# print('wo'not in name)
结果为:
长度为: 9
True
True
name = 'wuhao dsb'
for i in name:
    print(i,end=" ")
结果为:
w u h a o   d s b 
2.字符串
##字符串
#name = 'wuhao dsb'
#索引    012345678
# name3 = name[0]
# name2 = name[6:]
#print(name2)
#print(name3)
结果为:
dsb
w
3.列表
##列表(中括号内用,隔开多个元素,列表没有去重效果)
#列表的定义:lt=list(['nick','handsome',1,1,1,1,1,1])
# lt=list(['nick','handsome',1,1,1,1,1,1])
# print(lt)
结果为:['nick', 'handsome', 1, 1, 1, 1, 1, 1]注:列表不具有去重效果

#列表的内置方法
# lt=list(['nick','handsome',1,1,1,1,1,1])
# lt.append("king")#追加,即在列表的最后一个位置后面加
# print(lt)

# del lt[0]
# print(lt)

# lt.pop(0)
# print(lt)

# lt2=lt.copy()
# print(lt2)

# lt.clear()
# print(lt)

# m=[1,1,0,7,4,9,5]
# m.sort()
# print(m)

# m.reverse()
# print(m)
结果为:
['nick', 'handsome', 1, 1, 1, 1, 1, 1, 'king']
['handsome', 1, 1, 1, 1, 1, 1, 'king']
[1, 1, 1, 1, 1, 1, 'king']
[1, 1, 1, 1, 1, 1, 'king']
[]
[0, 1, 1, 4, 5, 7, 9]
[9, 7, 5, 4, 1, 1, 0]
4.元组
# 元组就是把列表的中括号换成小括号,然后他没有内置方法
# 只可取不可更改
# tu  =  (1,3,2,100,4,5)
# print(tu[0])
结果为:1
基本统计方法
nums=[]
while True:
    num1=input("请输入你需要输入的数字(输入q退出)")
    if num1=='q':
        break
    nums.append(int(num1))
#求中位数
def get_median(nums):
    nums.sort()
    nums_len=len(nums)
    if nums_len%2==0:
        return(nums[int(nums_len/2-1)]+nums[int(nums_len/2)])/2
    else:
       return nums[nums_len//2]
#求和
def get_sum(nums):
    count=0
    for i in nums:
        count+=i
    return count
#求平均值
def get_average(nums):
    count=get_sum(nums)
    average_count=count/len(nums)
    return average_count
#求方差
def get_variance(nums):
    average_count=get_average(nums)
    variance_count=0
    for i in nums:
        variance_count+=pow(i-average_count,2)
    return variance_count

print(get_median(nums))
print(get_sum(nums))
print(get_average(nums))
print(get_variance(nums))

字典

# 字典的形式:大括号内以逗号分隔键值对(key(描述意义):value)的形式存储数据
# dic1={"name":"king","age":18,"height":180,"hobby_list":['debugging','dance','sing']}
# dic2={}
# print(dic1)
# print(dic2)
#结果为:{'name': 'king', 'age': 18, 'height': 180, 'hobby_list': ['debugging', 'dance', 'sing']}
#        {}
# dic1={"name":"king","age":18,"height":180,"hobby_list":['debugging','dance','sing']}
1.取值
# print(dic1["name"])# 如果没有key,则会报错
# print(dic1["hobby_list"][1])
# print("*"*50)
# print(dic1.get("name"))
# print(dic1.get("name1"))# 如果没有key,则取None,可以自定义没有值能取到的值
# print(dic1.get("name1","nick"))
# print(dic1.get("hobby_list")[2])
结果为:
# king
# dance
# **************************************************
# king
# None
# nick
# sing
# dic1={"name":"king","age":18,"height":180,"hobby_list":['debugging','dance','sing']}
# for i in dic1:#其实这里是默认为dic1.keys()
#     print(i)
结果为:
# # name
# # age
# # height
# # hobby_list
# for i in dic1.values():
#     print(i)
结果为:
# # king
# # 18
# # 180
# # ['debugging', 'dance', 'sing']
# for i in dic1.items():
#     print(i)
结果为:
# # ('name', 'king')
# # ('age', 18)
# # ('height', 180)
# # ('hobby_list', ['debugging', 'dance', 'sing'])
2.删除值和设定值
dic1={"name":"king","age":18,"height":180,"hobby_list":['debugging','dance','sing']}
#删除值
dic1.pop("name")
print(dic1)
print('*'*50)
dic1.setdefault("name","rode")
print(dic1)
#结果为:
# {'age': 18, 'height': 180, 'hobby_list': ['debugging', 'dance', 'sing']}
# **************************************************
# {'age': 18, 'height': 180, 'hobby_list': ['debugging', 'dance', 'sing'], 'name': 'rode'}

jieba库

import jieba
# jieba库一般用于分词使用马尔可夫模型(两层)
res = jieba.lcut('中华人民共和国是一个伟大的国家')  # 第一个就是尽量长,主要掌握这一个
print(res)
res = jieba.lcut_for_search('中华人民共和国是一个伟大的国家')  # 第二个就是把第一个的长的单词继续切
print(res)
res = jieba.lcut('中华人民共和国是一个伟大的国家',cut_all=True) # 把所有的可能全部切出来
print(res)
结果为:
# ['中华人民共和国', '是', '一个', '伟大', '的', '国家']
# ['中华', '华人', '人民', '共和', '共和国', '中华人民共和国', '是', '一个', '伟大', '的', '国家']
# ['中华', '中华人民', '中华人民共和国', '华人', '人民', '人民共和国', '共和', '共和国', '国是', '一个', '伟大', '的', '国家']

转载于:https://www.cnblogs.com/suixi/p/11209563.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值