首页 > 编程语言 >python基础学习五

python基础学习五

时间:2024-11-28 20:34:10浏览次数:7  
标签:fun1 python list1 res1 基础 yield 学习 模块 print

  • 数学类函数

    • abs()求绝对值

      n = -12
      print(abs(n))
      
    • sum() 求和 字符串类型的元素不行

    list1 = [11,22,33,44,55]
    res1 = sum(list1)
    print(res1)
    
    • divmod() 传入两个数值,前一个除以后一个,得到两个值:一个商,一个是余数
    s, y = divmod(16, 5)
    print(s)
    print(y)
    
    • round() 四舍五入
    n = 12.765
    print(round(n,2)) # 12.77
    
    • pow 求幂次方

      print(pow(2,3))
      
  • 聚合类函数

    • max() 求最大值
    list1 = [123,53,225,1123,52,5,3,14]
    res1 = max(list1)
    print(res1)
    
    • mix()最小值

      list1 = [123,53,225,1123,52,5,3,14]
      res1 = min(list1)
      print(res1)
      
    • all 判断一个列表中是否出现一个False

    # 只要存在一个元素转bool类型结果是False,all()的结果就是False
    list1 = [12,45,124,'','hello',12.34]
    print(all(list1))
    
    • any 判断一个列表中是否出现一个True
    # 只要存在一个元素转bool类型结果是True,all()的结果就是True
    list1 = [12,45,124,'','hello',12.34]
    print(any(list1))
    
  • 和进制相关的函数

    • 二进制
    • bin() 将十进制的值转二进制
    print(bin(136)) # 0b10001000
    
    • int() 将某一种进制转10进制

      print(int('0b10001000',2))
      
    • 八进制

      oct() 将十进制转八进制

      print(oct(136)) # 0o210
      
    • 十进制

      整数默认都是十进制

    • 十六进制

      hex() 将十进制转16进制

    print(hex())
    
    • 字符类函数

    • ord() 将一个字符转成ASCII码数值

      '0' - 48

      'A' - 65

      'a' - 97

print(ord('0'))
print(ord('A'))
print(ord('a'))
  • chr() 将数值转成对应的ASCII码字符

    print(chr(97))
    
  • 类型转换相关函数

    • int()

    • str()

    • bool()

    • list()

    • dict()

    • tuple()

    • set()

    • bytes()

      # s1 = '中国'
      # b1 = s1.encode('UTF-8')
      # print(b1, type(b1))
      b2 = bytes('中国','UTF-8')
      print(b2)
      
  • 获取输出类函数

    • input()

    • print()

    • len()

    • open()

    • 获取索引和元素

      list1 = [1,2,3,4]
      for i,j in enumerate(list1):
      print(i,j)
      
    • id() 获取对象的地址值

    • callable() 判断一个变量是否是一个函数

    list1 = [1,2,3,4]
    def fun1():
    	pass
    print(callable(fun1))
    
    • sorted() 排序

      list1 = [34,12,5,12,344,53]
      print(f"list1:{list1}")
      list2 = sorted(list1)
      print(f"list1:{list2}") # list1:[5, 12, 12, 34, 53, 344]
      
    • 自定义排序

      list1 = ['小虎:1007', '黄沪生:1009', '查镕贤:1001', '黄涛:1004', '方直:1002']
      def fun1(e):
      return int(e.split(':')[1])
      list2 = sorted(list1, key=fun1)
      print(f"list1:{list2}")
      
    • zip() 将两个序列中的元素一一对应

      list1 = [1001, 1002, 1003, 1004, 1005]
      list2 = ['小虎', '黄沪生', '查镕贤', '黄涛', '方直']
      for i,j in zip(list1,list2):
      print(f"学号:{i}, 姓名:{j}")
      
函数生成式

python中提供了一个关键字可以让我们在函数中使用 yield

def fun1():
    yield 1
    yield 2
    yield 3
    yield 4
    yield 5
res1 = fun1()
print("hello world")
print(res1.__next__())
# 若干行代码后
print(res1.__next__())

有yield关键字的函数,结果是可以使用for循环的

# def fun1():
#     print("hello 1")
#     yield 1
#     print("hello 2")
#     yield 2
#     print("hello 3")
#     yield 3
#     print("hello 4")
#     yield 4
#     print("hello 5")
#     yield 5
# res1 = fun1()
# for i in res1:
#     print(i)
#     print("-----------")
def fun1():
    for i in range(1,11):
    yield i
res1 = fun1()
for i2 in res1:
    print(i2)
    print("-----------")
模块

简单理解为就是一个.py后缀的一个文件

  • 内置模块
  • 第三方模块
  • 自定义模块

模块导入的方式

  • import 直接将一个模块导入进来
import day06.utils.login_tools as t # 导入login_tools模块并起了一个别名叫做t
  • from xxx import xxx 从一个模块中,导入具体的工具

    from lxml import etree
    
    from day06.utils.login_tools import rand_yzm # 从模块login_tools中导入某一个函数
    from day06.utils.login_tools import rand_yzm,send_email # 一次从模块中导入多个
    from day06.utils.login_tools import * # 导入模块中所有的内容
    from day06.utils.login_tools import rand_yzm as t1 # 导入模块中的函数并重新命名
    
    • 注意: 切记,自己定义的模块名不要和内置或第三方的模块名重名!!!!!
内置函数random模块学习
  1. 理论上,python模块中,任意一个地方都可以进行导入

  2. 但是规范上,我们开发潜规则上,将导入的部分放在python模块文件最开始的位置编写

  • randint() 随机生成一个范围内的整数

    n = random.randint(1000,2000)
    print(n)
    
  • uniform() 随机生成一个范围内的小数

n = round(random.uniform(0, 1),2)#用round四舍五入
print(n)
  • choice() 随机抽取列表中的一个元素
list1=['上','伤']
res1 = random.choice(list1)
print(res1)
print(list1
  • sample() 随机抽取列表中若干个元素

    list1 = ['张三','李四','王五','赵六','王麻子','小李子']
    # res1 = random.choice(list1)
    # print(res1)
    # print(list1)
    n = random.sample(list1,2)
    print(n, type(n))
    

    练习:使用random模块以及之前学习的知识,编写一个抽奖程序。

    list1 = ['小虎', '张成阳', '黄涛', '方直', '杨浩东', '黄沪生', '查镕贤']
    jiang_xiang = [
    ('一等奖', 1, 'mate70 pro'),
    ('二等奖', 1, '小米手环'),
    ('三等奖', 2, '按摩仪'),
    ('四等奖', 2, '京东购物卡')
    ]
    def chou_jiang(l1):
        for i, num, goods in jiang_xiang:
            print(f"正在抽取{i}".center(50, '-'))
            name_list = random.sample(l1,num)
        # 将中奖名单从原名单中删除
            for n in name_list:
                if n in l1:
                    list1.remove(n)
                    info = f"恭喜{','.join(name_list)} 中得{goods}!!!!"
                    yield info
    res1 = chou_jiang(list1)
    input("开始抽一等奖....按下回车开始!")
    print(res1.__next__())
    input("开始抽二等奖....按下回车开始!")
    print(res1.__next__())
    input("开始抽三等奖....按下回车开始!")
    print(res1.__next__())
    input("开始抽四等奖....按下回车开始!")
    print(res1.__next__())
    

标签:fun1,python,list1,res1,基础,yield,学习,模块,print
From: https://www.cnblogs.com/lanzhi666/p/18575108

相关文章

  • 想做黑客?先来学习 SQL 注入,一文带你学会!黑客技术零基础入门到精通教程建议收藏!
    SQL注入(SQLInjection)是一种常见的网络攻击手段,攻击者通过在Web应用程序的输入字段中插入恶意SQL代码,欺骗后台数据库执行非授权的SQL语句。SQL注入可以用于获取、篡改或删除数据库中的数据,甚至可以用于执行系统命令,导致数据泄露、数据破坏或服务器被控制等严重后果......
  • PythonDay5Advance
    PythonDay5Advance函数和模块main函数要有,用户自己选择要做的功能,根据选择调用不同的函数用户注册的信息需要使用一个文件存储,登录需要判断用户是否存在,密码是否正确注册的时候,需要发送邮件内置函数数学类函数abs()求绝对值n=-12print(abs(n))sum()求和......
  • 网络安全中什么是CC攻击?CC攻击怎么防御?黑客技术零基础入门到精通,收藏这一篇就够了!
    前言这是晓晓给粉丝盆友们整理的网络安全渗透测试入门阶段dos与ddos渗透与防御基础教程喜欢的朋友们,记得给晓晓点赞支持和收藏一下,关注我,学习黑客技术。随着互联网的发展和技术的进步,网络安全问题日益严峻,网络攻击手段层出不穷,其中CC攻击就是一种比较常见的网络攻击手段......
  • Python讲解(第八篇)
    这篇主要讲解字符串的格式化方式2快速字符串格式化方式目前我们透过学习了%符号占位已经很方便了,还能进行精度控制。可是为了追求效率,能否有更加效率的方式解决问题呢?那当然有,我们可以使用语法f"内容{变量}"的格式来快速格式化在Python中,f{} 是格式化字符串(也称为f......
  • 面向对象编程(基础部分)
    java设计者,引入OOP,根本原因是,现有技术不能完美解决新的需求0eg:张老太养了两只猫猫:一只名字叫小白,今年3岁,白色。还有一只叫小花,今年100岁,花色。请编写一个程序,当用户输入小猫的名字时,就显示该猫的名字,年龄,颜色。如果用户输入的小猫名错误,则显示张老太没有这只猫猫。1.......
  • 基础mybaties
    packagecom.itheima.mapper;importcom.itheima.pojo.Brand;importorg.apache.ibatis.annotations.Select;importjava.util.List;publicinterfaceBrandMapper{//查询所有ListselectAll();@Select("select*frombrandwhereid=#{id}")BrandselectB......
  • Python机器学习笔记(二、监督学习算法基础)
    一、分类与回归监督机器学习问题主要有两种,分别叫作分类(classification)与回归(regression)。区分分类任务和回归任务有一个简单方法,就是问一个问题:输出是否具有某种连续性。如果在可能的结果之间具有连续性,那么它就是一个回归问题;不存在连续性,则一般是分类问题。二、泛化、......
  • C# 与 Python 代码互相调用的实践
    一、引言在当今的软件开发领域,不同的编程语言都有其独特的优势和适用场景。C#是一种功能强大、面向对象的编程语言,主要应用于Windows平台开发、企业级应用开发以及游戏开发(借助Unity引擎等)等领域;而Python则以其简洁的语法、丰富的库以及在数据科学、机器学习、自动化脚......
  • 强化学习中不同类型的智能体的分类
    强化学习中的智能体基于目标的不同分为以下几类:Policy-Based(基于策略的智能体)这种智能体的目标是直接近似策略(policy),即在给定状态下选择动作的概率分布。它们通常通过优化策略来最大化累积奖励。示例:策略梯度方法(PolicyGradientMethods)。Value-Based(基于价值函数的智......
  • CTF学习(21)MISC(九连环)
    1.查看属性(无果)--->使用010editor打开后发现存在zip文件2.使用foremost分离文件后获得名为00000038.zip的zip文件--->爆破四位无果后查看是否存在伪加密(第一次知道伪加密还能对zip文件内的zip文件进行修改...)3.解压后获得good-已合并.jpg文件和qwe.zip文件--->在kali中使......