【NCRE Python】

news2024/9/22 23:25:55

基本输入输出函数

input 函数

input 函数用于从标准输入(如键盘)接收用户输入的字符串。当 input 函数被调用时,程序会暂停执行,等待用户输入文本并按回车键。用户输入的文本会作为字符串返回给程序。input 函数还可以接收一个字符串作为参数,这个字符串会在等待输入时显示,作为提示信息(prompt)。

示例:

name = input("请输入你的名字: ")
print(f"你好, {name}!")

上面的代码会显示提示信息“请输入你的名字: ”,等待用户输入他们的名字,并在用户按下回车键后打印欢迎信息。

eval 函数

eval 函数用于执行一个字符串表达式,并返回表达式的值。这个函数可以动态地运行代码,但也带来了安全风险,因为执行的代码可以是任何东西,包括有害代码。因此,除非绝对必要且来源可靠,否则不建议使用 eval

示例:

x = eval("5 + 7")
print(x)

这段代码会计算字符串 "5 + 7" 表达的表达式,并打印结果 12

print 函数

print 函数用于在屏幕上输出信息。它可以接受多个参数,并且可以通过关键字参数来定制分隔符(sep)、结束符(end)。

示例:

print("Hello,", "world!", sep=" ", end="\n")
print("这是", "第二行。", sep=" ", end="\n")

这段代码首先打印 “Hello, world!”,然后打印 “这是 第二行。”。默认情况下,print 使用空格作为分隔符和换行符作为结束符,但这里我们显式地指定了它们,虽然它们是默认值。

综合示例

# 用户输入
user_input = input("请输入一个算术表达式: ")

# 计算并打印结果
result = eval(user_input)
print("计算结果为:", result)

format格式化

在这里插入图片描述

  1. <冒号:>:这是分隔符,用来标示格式化表达式的开始。在冒号之前,可以有字段名或索引,它指示了要格式化的值;冒号后面是格式指定符,它告诉Python如何格式化值。

  2. <填充>:这是一个可选的部分,用来指定一个字符,该字符将用于填充格式化的字符串。如果省略,通常空格字符会被用作填充。

  3. <对齐>:有三种对齐方式:< (左对齐)、> (右对齐) 和 ^ (居中对齐)。根据这个字符,格式化的文本将在指定宽度内按照相应方式对齐。

  4. <宽度>:这是一个整数值,用来指定最小字段宽度。如果要格式化的文本比这个宽度短,将使用<填充>指定的字符填充到这个宽度。

  5. <,>:这是一个可选的千位分隔符,用来为数字添加千位分隔,增加数字的可读性。

  6. <精度>:用于浮点数和字符串,指定小数点后的位数或者字符串的最大长度。对于浮点数,它是小数点后的数字数量;对于字符串,它是要包含的最大字符数。

  7. <类型>:指定了要格式化的值的类型。常见的类型包括b (二进制)、c (字符)、d (十进制整数)、o (八进制)、x (十六进制小写)、X (十六进制大写)、e (科学计数法小写)、E (科学计数法大写)、f (固定点数小数)、% (百分比格式)。

# 数字格式化:千位分隔符,保留两位小数,右对齐,总宽度为10
formatted_number = "{:>,.2f}".format(1234567.89)

# 字符串格式化:最大宽度为8,左对齐
formatted_string = "{:<8.8}".format("Hello World")

print(formatted_number)  # 输出: '1,234,567.89'
print(formatted_string)  # 输出: 'Hello Wo'

在数字格式化中,> 表示右对齐,, 是千位分隔符,.2f 是保留两位小数的固定点数格式。
在字符串格式化中,< 表示左对齐,8.8 表示最大字段宽度为8,最多使用8个字符。

字符串常用操作方法

  1. str.lower()

    • 描述:将字符串中的所有大写字母转换为小写字母。
    • 例子:
      text = "Python Programming"
      lower_text = text.lower()
      print(lower_text)  # 输出: python programming
      
  2. str.upper()

    • 描述:将字符串中的所有小写字母转换为大写字母。
    • 例子:
      text = "Python Programming"
      upper_text = text.upper()
      print(upper_text)  # 输出: PYTHON PROGRAMMING
      
  3. str.split(sep=None)

    • 描述:按照sep指定的分隔符拆分字符串,如果没有指定sep,默认分隔符是空白字符(包括空格、换行'\n'、制表符'\t'等)。
    • 例子:
      text = "apple, banana, cherry"
      split_text = text.split(", ")
      print(split_text)  # 输出: ['apple', 'banana', 'cherry']
      
  4. str.count(sub)

    • 描述:返回子串sub在字符串中出现的次数。
    • 例子:
      text = "hello world"
      count_l = text.count('l')
      print(count_l)  # 输出: 3
      
  5. str.replace(old, new)

    • 描述:将字符串中的old子串替换为new
    • 例子:
      text = "hello world"
      replaced_text = text.replace("world", "Python")
      print(replaced_text)  # 输出: hello Python
      
  6. str.center(width, fillchar)

    • 描述:将字符串居中对齐,并使用fillchar填充至宽度width
    • 例子:
      text = "hello"
      centered_text = text.center(20, '*')
      print(centered_text)  # 输出: *******hello********
      
  7. str.strip(chars)

    • 描述:从字符串的开始和结束处删除chars指定的字符集合。如果没有指定chars,默认删除空白字符。
    • 例子:
      text = "   hello world    "
      stripped_text = text.strip()
      print(stripped_text)  # 输出: hello world
      
  8. str.join(iter)

    • 描述:将iter中的每个元素连接起来,每个元素之间用字符串str作为分隔。
    • 例子:
      words = ["Python", "Programming", "Is", "Fun"]
      joined_text = " ".join(words)
      print(joined_text)  # 输出: Python Programming Is Fun
      

列表常用操作方法

  1. ls.append(x)

    • 描述:在列表的末尾添加一个元素 x
    • 例子:
      ls = [1, 2, 3]
      ls.append(4)
      print(ls)  # 输出: [1, 2, 3, 4]
      
  2. ls.insert(i, x)

    • 描述:在列表的 i 位置插入元素 x
    • 例子:
      ls = [1, 2, 4]
      ls.insert(2, 3)  # 在索引为2的位置插入数字3
      print(ls)  # 输出: [1, 2, 3, 4]
      
  3. ls.clear()

    • 描述:清除列表中的所有元素。
    • 例子:
      ls = [1, 2, 3]
      ls.clear()
      print(ls)  # 输出: []
      
  4. ls.pop(i)

    • 描述:移除列表中的 i 位置元素并返回这个元素。如果没有指定索引,pop 方法将会移除并返回列表中的最后一个元素。
    • 例子:
      ls = [1, 2, 3, 4]
      pop_element = ls.pop(2)  # 移除索引为2的元素
      print(pop_element)  # 输出: 3
      print(ls)           # 输出: [1, 2, 4]
      
  5. ls.remove(x)

    • 描述:移除列表中第一次出现的一个元素 x。如果该元素不存在,则抛出一个异常。
    • 例子:
      ls = [1, 2, 3, 2, 4]
      ls.remove(2)  # 移除列表中第一个出现的元素2
      print(ls)     # 输出: [1, 3, 2, 4]
      
  6. ls.reverse()

    • 描述:逆转列表中的元素顺序。
    • 例子:
      ls = [1, 2, 3, 4]
      ls.reverse()
      print(ls)  # 输出: [4, 3, 2, 1]
      
  7. ls.copy()

    • 描述:生成一个新列表,复制 ls 中的所有元素。
    • 例子:
      ls = [1, 2, 3]
      ls_copy = ls.copy()
      print(ls_copy)  # 输出: [1, 2, 3]
      

字典常用操作方法

  1. d.keys()

    • 描述:返回一个包含字典所有键的视图对象。
    • 例子:
      d = {'a': 1, 'b': 2, 'c': 3}
      keys = d.keys()
      print(keys)  # 输出: dict_keys(['a', 'b', 'c'])
      
  2. d.values()

    • 描述:返回一个包含字典所有值的视图对象。
    • 例子:
      d = {'a': 1, 'b': 2, 'c': 3}
      values = d.values()
      print(values)  # 输出: dict_values([1, 2, 3])
      
  3. d.items()

    • 描述:返回一个包含所有(键,值)对的视图对象。
    • 例子:
      d = {'a': 1, 'b': 2, 'c': 3}
      items = d.items()
      print(items)  # 输出: dict_items([('a', 1), ('b', 2), ('c', 3)])
      
  4. d.get(key, default)

    • 描述:返回字典中键 key 对应的值,如果键不在字典中,则返回 default
    • 例子:
      d = {'a': 1, 'b': 2, 'c': 3}
      value = d.get('b', '不存在')
      print(value)  # 输出: 2
      value = d.get('z', '不存在')
      print(value)  # 输出: 不存在
      
  5. d.pop(key, default)

    • 描述:移除字典中键 key 对应的项,并返回其值。如果键不在字典中,则返回 default
    • 例子:
      d = {'a': 1, 'b': 2, 'c': 3}
      value = d.pop('b', '不存在')
      print(value)  # 输出: 2
      print(d)      # 输出: {'a': 1, 'c': 3}
      
  6. d.popitem()

    • 描述:移除字典中的一个项,通常是最后加入的(key, value)对并返回它,用于实现堆栈和队列。
    • 例子:
      d = {'a': 1, 'b': 2, 'c': 3}
      item = d.popitem()
      print(item)  # 输出: ('c', 3)
      print(d)     # 输出: {'a': 1, 'b': 2}
      
  7. d.clear()

    • 描述:清除字典中的所有项。
    • 例子:
      d = {'a': 1, 'b': 2, 'c': 3}
      d.clear()
      print(d)  # 输出: {}
      

open函数操作模式

  1. 'r' 模式

    • 描述:以只读方式打开文件,如果文件不存在,则抛出FileNotFoundError异常。
    • 例子:
      with open('example.txt', 'r') as file:
          content = file.read()
      
  2. 'w' 模式

    • 描述:以写入方式打开文件,如果文件不存在则创建新文件,如果文件已存在则覆盖原有内容。
    • 例子:
      with open('example.txt', 'w') as file:
          file.write('New content')
      
  3. 'x' 模式

    • 描述:如果文件不存在,则创建新文件并以写入模式打开。如果文件已存在,则抛出FileExistsError异常。
    • 例子:
      try:
          with open('example.txt', 'x') as file:
              file.write('New content')
      except FileExistsError:
          print('File already exists.')
      
  4. 'a' 模式

    • 描述:以追加方式打开文件,如果文件不存在则创建新文件,如果文件存在则在文件末尾追加内容。
    • 例子:
      with open('example.txt', 'a') as file:
          file.write('\nAdditional content')
      
  5. 'b' 模式

    • 描述:以二进制方式打开文件,通常与其他模式一起使用(如'rb''wb')。
    • 例子:
      with open('example.bin', 'wb') as file:
          file.write(b'\x00\x01\x02')
      
  6. 't' 模式

    • 描述:以文本方式打开文件,这是默认的模式,通常不需要显式指定。
    • 例子:
      with open('example.txt', 'rt') as file:  # 't'可以省略
          content = file.read()
      
  7. '+' 模式

    • 描述:与'r''w''x''a'中的一个配合使用,表示同时需要读和写的功能。
    • 例子:
      with open('example.txt', 'r+') as file:
          file.write('Updated content')
          file.seek(0)
          content = file.read()
      

功能和异同点:

  • 'r', 'w', 'x', 和 'a' 模式主要用于控制文件的读写行为。它们的主要区别在于文件存在或不存在时的行为和文件内容的处理:

    • 'r' 模式要求文件必须存在,否则会报错。
    • 'w' 模式不要求文件存在,如果存在则覆盖,如果不存在则创建。
    • 'x' 模式要求文件必须不存在,用于确保不覆盖已有的文件。
    • 'a' 模式用于追加,不覆盖原有内容,无论文件存在与否。
  • 'b' 模式是一个附加模式,用于指定文件以二进制方式处理,与上述模式组合使用,如'rb''wb'等。

  • 't' 模式也是一个附加模式,用于指定文件以文本方式处理,是默认选项,通常省略。

  • '+' 模式扩展了其他模式的功能,使得文件可以同时用于读写。它不单独使用,而是与其他模式结合使用,如'r+''w+'等。

读文件及文件指针

  1. f.read(size=-1)

    • 描述:读取并返回文件中的数据。如果指定了size参数,则最多读取size个字节的数据;如果没有指定size或指定为-1,则读取并返回文件中的所有数据。
    • 例子:
      with open('example.txt', 'r') as f:
          content = f.read()
      print(content)
      
  2. f.readline(size=-1)

    • 描述:读取文件中的一行数据。如果指定了size参数,则读取该行中的size个字节的数据;如果没有指定size或指定为-1,则读取整行数据。
    • 例子:
      with open('example.txt', 'r') as f:
          line = f.readline()
      print(line)
      
  3. f.readlines(hint=-1)

    • 描述:读取文件中所有行,并作为每一行的列表返回。如果指定了hint参数,则读取近似hint字节的行数。
    • 例子:
      with open('example.txt', 'r') as f:
          lines = f.readlines()
      print(lines)
      
  4. f.seek(offset)

    • 描述:在文件中移动文件指针到offset指定的位置。offset的值:0表示文件开头;2表示文件结尾。
    • 例子:
      with open('example.txt', 'r') as f:
          f.seek(0)  # 移动到文件开头
          first_line = f.readline()
          f.seek(5)  # 移动到文件第5个字节
          from_fifth_byte = f.read()
      print(first_line)
      print(from_fifth_byte)
      

写文件

  1. f.write(s)

    • 描述:向文件中写入一个字符串 s
    • 例子:
      with open('example.txt', 'w') as f:
          f.write('Hello, World!')
      

    在这个例子中,我们打开(或创建)了一个名为 example.txt 的文件,并以写入模式 'w' 打开。然后,我们使用 write 方法写入字符串 'Hello, World!' 到文件中。

  2. f.writelines(lines)

    • 描述:将一个字符串列表 lines 写入到文件中,不会自动添加行间隔符,如换行符。
    • 例子:
      lines = ['Hello, World!', 'Welcome to Python.']
      with open('example.txt', 'w') as f:
          f.writelines(line + '\n' for line in lines)
      

    在这个例子中,我们首先创建了一个字符串列表 lines,包含两行文字。然后,我们打开(或创建)了一个名为 example.txt 的文件,并以写入模式 'w' 打开。使用 writelines 方法,我们迭代 lines 列表,并为每个字符串添加一个换行符 \n,然后写入到文件中。这样做是因为 writelines 不会自动添加换行符,所以我们需要手动添加它们。

这两种写入方法提供了文件输出的灵活性:write 方法适合写入单个字符串,而 writelines 适用于写入多个字符串。注意,使用 writewritelines 方法时,如果文件已经存在,则其内容将被覆盖,除非文件是以追加模式 'a' 打开的。

random库

  1. seed(a=None):

    import random
    random.seed(1)  # 设置随机数生成器的种子为1
    
  2. random():

    random_value = random.random()  # 生成一个[0.0, 1.0)之间的随机浮点数
    
  3. randint(a, b):

    random_integer = random.randint(1, 10)  # 生成一个[1, 10]之间的随机整数
    
  4. getrandbits(k):

    random_bits = random.getrandbits(8)  # 生成一个随机的8位二进制数
    
  5. randrange(start, stop[, step]):

    random_range = random.randrange(0, 10, 2)  # 生成一个[0, 10)之间以2为步长的随机数
    
  6. uniform(a, b):

    random_uniform = random.uniform(1.5, 4.5)  # 生成一个[1.5, 4.5]之间的随机浮点数
    
  7. choice(seq):

    random_choice = random.choice(['apple', 'banana', 'cherry'])  # 从列表中随机选择一个元素
    
  8. shuffle(seq):

    items = [1, 2, 3, 4, 5]
    random.shuffle(items)  # 打乱列表中的元素顺序
    
  9. sample(pop, k):

    random_sample = random.sample(range(100), 5)  # 从0到99的数字中随机抽取5个不重复的数字
    

jieba库

  1. jieba.lcut(s)

    import jieba
    words = jieba.lcut("结巴分词,返回一个列表形式的分词结果")
    
  2. jieba.lcut(s, cut_all=True)

    words_full_mode = jieba.lcut("全模式分词,返回一个列表形式的分词结果", cut_all=True)
    
  3. jieba.lcut_for_search(s)

    words_search_mode = jieba.lcut_for_search("搜索引擎模式分词,返回一个列表形式的分词结果")
    
  4. jieba.add_word(w)

    jieba.add_word("添加词语进分词库")
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1488571.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【笔记版】docker常用指令---systemctl类、docker状态

systemctl [options] docker 启动&#xff1a;system start docker查看状态&#xff1a;systemctl status docker停止&#xff1a;systemctl stop docker有警告&#xff1a;service关闭了&#xff0c;但是docker.socket仍响应解决方法&#xff1a;systemctl stop docker.socket…

OSError: [WinError 1455] 页面文件太小,无法完成操作。

[问题描述]&#xff1a;OSError: [WinError 1455] 页面文件太小&#xff0c;无法完成操作。 原因1&#xff1a;线程数太大 方法&#xff1a;改小线程&#xff08;workers&#xff09;数。 原因2&#xff1a;虚拟内存太小或为0&#xff0c;调大虚拟内存。 方法&#xff1a;右键…

SL3036 DC100V降压5V 2A 低功耗 性价比低 替代MP9486A

SL3036 DC100V降压5V 2A是一款常用的电源管理芯片&#xff0c;它能够将较高的输入电压降至较低的输出电压&#xff0c;为电子设备提供稳定可靠的电源供应。其低功耗、高性价比的特点使得它在许多领域得到了广泛的应用。然而&#xff0c;对于一些对成本敏感的应用来说&#xff0…

Linux——MySQL主从复制与读写分离

实验环境 虚拟机 3台 centos7.9 网卡NAT模式 数量 1 组件包mysql-5.6.36.tar.gz cmake-2.8.6.tar.gz 设备 IP 备注 Centos01 192.168.223.123 Amoeba Centos02 192.168.223.124 Master Centos03 192.168.223.125 Slave MySQL安装 主从同时操作 安装所需要的…

SG11加密,屠龙少年最终变成了恶龙

加密只是一种手段&#xff0c;不应该成为收割工具&#xff0c;最近收到2个客户询盘&#xff0c;结果都是因为代码被加密无法提供服务&#xff0c;无奈放弃。 sg11加密的初衷是为了防止客户不遵守契约衍生出来的方案&#xff0c;没想到屠龙少年最终变成了恶龙。第一个客户因为服…

【知识整理】Git 使用实践问题整理

问题1、fatal: refusing to merge unrelated histories 一、Git 的报错 fatal: refusing to merge unrelated histories 新建了一个仓库之后&#xff0c;把本地仓库进行关联提交、拉取的时候&#xff0c;出现了如下错误&#xff1a; fatal: master does not appear to be a g…

MYSQL---日志

1.日志的概述 日志是MySQL数据库的重要组成部分。日志文件中记录着MySQL数据库运行期间发生的变化&#xff1b;也就是说用来记录MySQL数据库的客户端连接状况、SQL语句的执行情况和错误信息等。当数据库遭到意外的损坏时&#xff0c;可以通过日志查看文件出错的原因&#xff0…

QUIC来了!

什么是QUIC QUIC&#xff0c;快速UDP网络连接(Quick UDP Internet Connection)的简称&#xff0c;即RFC文档描述它为一个面向连接的安全通用传输协议。其基于UDP协议实现了可靠传输及拥塞控制&#xff0c;简单来说&#xff0c;QUIC TCP TLS。 为什么有了QUIC HTTP2.0为了为了…

京津冀国际光伏展

京津冀国际光伏展是一个国际性的光伏展览会&#xff0c;旨在推动京津冀地区光伏产业的发展&#xff0c;促进国内外光伏技术的交流与合作。展览会通常包括展览展示、技术交流、高层论坛等环节&#xff0c;吸引了来自全球各地的光伏企业、科研机构、行业专业人士等参观和参与。 京…

抖店入驻费用是多少?新手入驻都有哪些要求?2024费用明细!

我是电商珠珠 我做电商做了将近五年&#xff0c;做抖店做了三年多&#xff0c;期间还带着学员一起做店。 今天&#xff0c;就来给大家详细的讲一下在抖音开店&#xff0c;需要多少费用&#xff0c;最低需要投入多少。 1、营业执照200元左右 就拿个体店举例&#xff0c;在入…

软件测试的基本流程是什么?软件测试流程详细介绍

软件测试和软件开发一样&#xff0c;是一个比较复杂的工作过程&#xff0c;如果无章法可循&#xff0c;随意进行测试势必会造成测试工作的混乱。为了使测试工作标准化、规范化&#xff0c;并且快速、高效、高质量地完成测试工作&#xff0c;需要制订完整且具体的测试流程。 01…

融云IM五折限量优惠,史无前例底价助力应用出海

各位疯狂心动的开发者们&#xff0c;不是你没有原则&#xff0c;实在是融云给的太多啦&#xff01; 即日起&#xff0c;新项目上线使用融云 Global IM UIKit&#xff08;&#x1f449;了解更多&#xff09;&#xff0c;可申请融云 IM 国内 5 折、海外 6 折优惠&#xff0c;尽享…

Ambari动态给YARN分配计算节点

1.前言 YARN可用的计算节点数量并不总是等于 Hadoop集群节点数量&#xff0c;可以根据业务需求分配 YARN计算节点数量。 这里首先介绍一些前置知识&#xff1a; YARN中 ResourceManager 和 NodeManager是两个核心组件&#xff0c;其中 ResourceManager负责集群资源的统一管理…

算法学习01:排序二分

算法学习01&#xff1a;排序&&二分 前言 提示&#xff1a;以下是本篇文章正文内容&#xff1a; 一、排序 1.快速排序 2.归并排序&#xff1a; 二、二分 1.整数 2.浮点数 总结 提示&#xff1a;这里对文章进行总结&#xff1a; 记忆模版&#xff01;&#xff01;&am…

贪心算法(区间问题)

452. 用最少数量的箭引爆气球 题目(求无重复区间) 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points &#xff0c;其中points[i] [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。 一支弓箭可以沿着…

一文2500字从0到1使用JMeter进行接口测试教程!

安装 使用JMeter的前提需要安装JDK&#xff0c;需要JDK1.7以上版本目前在用的是JMeter5.2版本&#xff0c;大家可自行下载解压使用 运行 进入解压路径如E: \apache-jmeter-5.2\bin&#xff0c;双击jmeter.bat启动运行 启动后默认为英文版本&#xff0c;可通过Options – Cho…

关于拖拽功能

文章目录 写在前面自己手动实现拖拽的demo技术细节&#xff1a;Js中拖拽(拉)事件&#xff08;drag 和 drop&#xff09;浏览器兼容性拖拽Api的介绍拖拽流程1.dragstart事件2.dragenter事件3.dragover事件4.drop事件(必须要dragover事件触发)5.dragend事件MDN关于拖拽的解析 相关…

独立游戏《星尘异变》UE5 C++程序开发日志2——创建并编写一个C++类

在本篇日志中&#xff0c;我们将要用一个C类来实现一个游戏内的物品&#xff0c;同时介绍UCLASS、USTRUCT、UPROPERTY的使用 一、创建一个C类 我们在UE5的"内容侧滑菜单"中&#xff0c;在右侧空白中右键选择"新建C类"&#xff0c;然后可以选择一个想要的…

GEE代码条带问题——sentinel-1接缝处理的问题

问题 我有兴趣确定 NDVI 损失最大的年份。我创建了一个函数来收集所有陆地卫星图像并应用预处理。当我导出结果以识别 NDVI 损失最大年份时&#xff0c;生成的数据产品与陆地卫星场景足迹有可怕的接缝线。造成这种情况的原因是什么以及如何调整代码&#xff1f; sentinel1数据…

大模型基础应用框架(ReACT\SFT\RAG)创新及零售业务落地

如何将大语言模型的强大能力融入实际业务、产生业务价值&#xff0c;是现在很多公司关注的焦点。在零售场&#xff0c;大模型应用也面临很多挑战。本文分享了京东零售技数中心推出融合Agent、SFT与RAG的大模型基础应用框架&#xff0c;帮助业务完成大模型微调、部署和应用&…