python:基础知识

news2024/11/28 4:45:52

环境:

  • window11
  • python 3.10.6
  • vscode
  • javascript、c/c++/java/c#基础(与这些语言对比)

注释

在这里插入图片描述

一、数据类型

基础六大数据类型,可以使用 type()查看,如下图:

在这里插入图片描述

1.1 数字(Number)

支持

  • 整数(int)
  • 浮点数(float)
  • 复数(complex),如:4+3j,以j结尾表示复数
  • 布尔(bool)True用1表示,False用0表示,反之,1表示True,其他表示False

1.2 字符串(String)

1.3 列表(List)

有序的可变列表

1.4 元组(Tuple)

有序的不可变序列,可有序记录一堆不可变的Python数据集合

1.5 集合(Set)

无序不重复结合
可无序记录一堆不重复的Python数据集合

1.6 字典(Dictionary)

无序Key-Value集合
可无序记录一堆Key-Value型的Python数据集合

1.7 数据类型转换

可以将任意类型转为字符串,如:数字/字符串/列表/元组/集合/字典 => 字符串,如下图:
在这里插入图片描述

但字符串并不能转到任意其他类型,因为字符串本质是一个字符列表,下面看转换的效果:
在这里插入图片描述

其他的转换,如:int <=>float吗,需要注意:float转int会有精度丢失(注意是精度丢失,不是四舍五入),看下图:
在这里插入图片描述

二、变量

python是脚本语言,弱类型,所以一个变量可以随便赋其他的值,甚至变更数据类型,这点和javascript类似。
另外,python中不用定义变量,直接使用即可,如下:
在这里插入图片描述

三、运算符

常见运算符 :+ 加法,- 减法,* 乘法,/ 除法,// 整除,% 取余,**指数

下面列出重点关注的几项:
在这里插入图片描述

四、字符串扩展

4.1 定义的三种方式:

  • 使用单引号' abc'
  • 使用双引号"abc"
  • 使用 """abc"""'''abc'''

特点总结:

  1. 单引号和双引号的作用类似,支持这两种方式就给了我们不写转移字符的可能 \,如:
    在这里插入图片描述
  2. 使用 """abc"""'''abc''',就可以让我们省去表示换行符合\的苦恼,看下面对比效果:
    在这里插入图片描述
    另外,我们需要注意,"""abc"""'''abc'''的开头和结尾不想有换行的话,要紧贴这写,否则会产生换行符,如下:
    在这里插入图片描述

4.2 字符串的拼接

使用 + 可进行拼接,但不同于其他语言,我们不能将字符串和其他类型(如:int)进行相加,如下:
在这里插入图片描述

javascript是允许的,这点得注意下:
在这里插入图片描述

4.3 字符串格式化

上面使用+对字符串拼接简单的还行,当相加内容很多的话就不易读了,而且还不支持其他数据类型(比如: int/float)自动转字符串,所以就有了下面两种字符串格式化方法:

  • %d, %f, %s:类似c语言
  • f"{exp}{exp2}"

下面是效果:
在这里插入图片描述

五、交互式输入

可以使用input(prompt)获取用户控制台的输入,回车后,用户输入的字符串就传到了程序中,如下:
在这里插入图片描述

六、for循环和range

python中的for循环没有 for(int x=0;x<10;x++)这种格式,只有: for x in li:这种,如下:
在这里插入图片描述
这种方式,是没办法这循环体中获取当前进度的,但我们可以借助range

range函数本身是生成一个范围,格式为:range(start,end,step) 注意:包含start,不包含end,看下面的示例:
在这里插入图片描述
那么,组合rangefor循环如下:
在这里插入图片描述

七、函数

7.1 简单函数

直接看下面的使用示例:
在这里插入图片描述
返回的None可以用于if判断中,表示False
returnreturn None 是一样的。

7.2 函数中的参数和返回值

另外,python中的函数还有一些特点,如:

  • 支持返回多个值
  • 支持默认参数、关键字参数、不定长参数(*和**)

直接看示例:
在这里插入图片描述

不定长参数示例:
在这里插入图片描述

7.3 函数做参数/匿名函数/lambda函数

在这里插入图片描述

八、容器之列表

8.1 概念和操作

python中的list类似javascript中的数组, c#中的list,常见操作如下:

  • 获取列表长度: len(li)
  • 获取指定索引元素: li[index]
  • 遍历: for x in li:
  • 获取值所在索引: li.index(ele)
  • 插入: li.insert(index,ele)
  • 追加: li.apped(ele)
  • 追加另一个容器: li.extend(li2)
  • 移除指定元素: li.remove(ele)
  • 根据下标移除: dele li[index]
  • 从末尾弹出: delEle=li.pop()
  • 清空列表: li.clear()
  • 统计列表中某个元素的数量: li.count(ele)
  • 列表排序: li.sort(key=lambda: x: x"age"], reverse=True)

看下面的示例:

8.2 通过下标访问列表

在这里插入图片描述

8.3 循环遍历列表

在这里插入图片描述

8.4 常见函数用法(增删改查、排序、统计)

# 插入到指定位置
print()
print("------li.insert()-------")
li = ["刘备", "关羽", "张飞"]
li.insert(0, '曹操')
print(f'["刘备", "关羽", "张飞"].insert(0,"曹操")=> {li}')

# 追加元素
print()
print("--------append()------")
li = ["刘备", "关羽", "张飞"]
li.append("孔明")
print(f'["刘备", "关羽", "张飞"].append("孔明")=> {li}')

# 追加另一个容器
print()
print("--------extend()------")
li = ["刘备", "关羽", "张飞"]
li.extend(["孙策", "孙权"])
print(f'["刘备", "关羽", "张飞"].append(["孙策", "孙权"])=> {li}')

# 移除指定元素
print()
print("--------remove(): 只移除第一个------")
li = ["刘备", "关羽", "张飞", "关羽"]
li.remove('关羽')
print(f'["刘备", "关羽", "张飞","关羽"].remove("关羽")=> {li}')

# 根据下标移除
print()
print("--------del list[index]: 根据下标移除------")
li = ["刘备", "关羽", "张飞"]
del li[1]
print(f'["刘备", "关羽", "张飞"] del li[1]=> {li}')

# 从末尾移除一个
print()
print("--------pop(): 从末尾弹出一个------")
li = ["刘备", "关羽", "张飞"]
ele = li.pop()
print(f'["刘备", "关羽", "张飞"].pop()=> {li}, ele={ele}')

# 清空列表
print()
print("--------clear(): 清空列表------")
li = ["刘备", "关羽", "张飞"]
li.clear()
print(f'["刘备", "关羽", "张飞"].clear()=> {li}')

# 获取列表长度
print()
print("--------len(li): 获取列表长度------")
li = ["刘备", "关羽", "张飞"]
count = len(li)
print(f'len(["刘备", "关羽", "张飞"])=> {count}')

# 统计列表元素数量
print()
print("--------count(ele): 统计列表某个元素数量------")
li = ["刘备", "关羽", "张飞", "关羽"]
count = li.count("关羽")
print(f'["刘备", "关羽", "张飞","关羽"].count("关羽")=> {count}')

# 列表排序
print()
print("--------sort(): 列表排序------")
li = ["a", "c", "b"]
li.sort()
print(f'["a","c","b"].sort()=> {li}')
li = ["a", "c", "b"]
li.sort(reverse=True)
print(f'["a","c","b"].sort(reverse=True)=> {li}')
li = [{"name": "小明", "age": 18},
      {"name": "小花", "age": 16},
      {"name": "小刚", "age": 20}]
li.sort(key=lambda x: x["age"], reverse=True)
print(f'[dict1,dict2,dict3].sort(key=lambda x: x["age"])=> {li}')

""" 输出如下:
PS D:\jackletter\pylearn> py .\15.py

------li.insert()-------
["刘备", "关羽", "张飞"].insert(0,"曹操")=> ['曹操', '刘备', '关羽', '张飞']

--------append()------
["刘备", "关羽", "张飞"].append("孔明")=> ['刘备', '关羽', '张飞', '孔明']

--------extend()------
["刘备", "关羽", "张飞"].append(["孙策", "孙权"])=> ['刘备', '关羽', '张飞', '孙策', '孙权']

--------remove(): 只移除第一个------
["刘备", "关羽", "张飞","关羽"].remove("关羽")=> ['刘备', '张飞', '关羽']

--------del list[index]: 根据下标移除------
["刘备", "关羽", "张飞"] del li[1]=> ['刘备', '张飞']

--------pop(): 从末尾弹出一个------
["刘备", "关羽", "张飞"].pop()=> ['刘备', '关羽'], ele=张飞

--------clear(): 清空列表------
["刘备", "关羽", "张飞"].clear()=> []

--------len(li): 获取列表长度------
len(["刘备", "关羽", "张飞"])=> 3

--------count(ele): 统计列表某个元素数量------
["刘备", "关羽", "张飞","关羽"].count("关羽")=> 2

--------sort(): 列表排序------
["a","c","b"].sort()=> ['a', 'b', 'c']
["a","c","b"].sort(reverse=True)=> ['c', 'b', 'a']
[dict1,dict2,dict3].sort(key=lambda x: x["age"])=> [{'name': '小刚', 'age': 20}, {'name': '小明', 'age': 18}, {'name': '小花', 'age': 16}]
PS D:\jackletter\pylearn>
"""

九、容器之元组

python中除了list还有tuple,元组是只读的,所以没有增删改等操作。
直接看下面:

9.1 元组的定义

在这里插入图片描述

9.2 元组的访问和遍历

因为元组是按顺序存储,所以支持按照索引访问,同时支持for循环,如下:
在这里插入图片描述

9.3 元组函数 index 和 count

这个和list的用法类似,如下:
在这里插入图片描述

十、容器之字符串

字符串可以看做是字符的只读容器,类似list

10.1 字符串的下标访问和遍历

在这里插入图片描述

10.1 常见函数

在这里插入图片描述

十一、容器(序列)的切片

列表(list)、元组(tuple)、字符串(str) 这三个都是序列,它们支持切片操作。
切片的语法为:seq[start:end:step],其中,start/end/step的默认值分别为:0/len(seq)/1

下面以列表为例,看下它的效果:在这里插入图片描述
对元组和字符串也是一样的,如下:
在这里插入图片描述

十二、容器之集合

集合相对于列表、元组、字符串的特点是:无序且唯一。
因为无序自然不能用下标访问,也不能用于切片。
唯一是集合自动去重的。

12.1 集合的定义

在这里插入图片描述

12.2 集合的遍历

在这里插入图片描述

12.3 集合的常见操作

  • 添加 se.add(ele)
  • 移除/弹出 se.remove(ele) / ele = se.pop()
  • 清空 se.clear()

如下图:
在这里插入图片描述

还有集合运算

  • 求交集 se & se2
  • 求并集 se | se2
  • 求差集 se - se2
  • 求补集 se ^ se2

如下图:
在这里插入图片描述

还有集合运算后将结果覆盖第一个集合的,如:
se.intersection_update(se2)
se.difference_update(se2)

不再实验

十三、容器之字典

python中的字典和javascript的对象一个意思,直接看下面的示例:

字典的定义:
在这里插入图片描述

注意:我们如果 dic[key] 如果不存在的话会报错,但我们可以使用 dic.get(key),当然我们也可以使用__contains__去判断,如下:
在这里插入图片描述

字典的遍历:
在这里插入图片描述
字典改数据:
在这里插入图片描述

十四、文件操作

文件模式:
r 只读
w:存在则覆盖,不存在则新建
a:存在则追加,不存在则新建追加

简单的写入和读写示例:
在这里插入图片描述
我们也可以指定读取的字符数(注意:不是字节数)或读取一行,如下(还是用上面创建的txt):
在这里插入图片描述
我们也可以使用for循环读取,另外,我们可以使用with关键字以防止忘记写close()
在这里插入图片描述

十五、异常

直接看下面的示例:

print("------捕获异常---")
try:
    i = 5/0
except Exception as ex:
    print(type(ex), ex)

print()
print("------捕获异常---")
try:
    dic = {"age": 18}
    i = dic["name"]
except Exception as ex:
    print(type(ex), ex)

print()
print("------捕获异常---")
try:
    i = 5/0
except:
    print("异常了")

print()
print("-------捕获多种异常--------")
try:
    i = 5/0
except (KeyError, ZeroDivisionError) as ex:
    print(type(ex), ex)

print()
print("------finally-------")
try:
    i = 5/0
except:
    print("异常了")
finally:
    print("finally执行了")

print()
print("--------自己引发异常-------")
try:
    raise Exception("测试手动抛异常")
except Exception as ex:
    print(ex)

输出如下:

在这里插入图片描述

十六、模块和包

概念:在python中简单理解,一个文件就是一个模块
导入模块的语法:
[from 模块名] import [ 模块 | 类 | 变量 | 函数 | * ] [as 别名]

常用形式:

  • import 模块名
  • from 模块名 import 类、变量、方法等
  • from 模块名 import *
  • import 模块名 as 别名
  • from 模块名 import 功能名 as 别名

看一个简单的示例(导入系统提供的):
在这里插入图片描述

16.1 自定义模块

我们可以自定义模块,然后导入,如下:

# 路径: /cc/c_28.py

# 默认定义的都可以被导出, 可以使用 __all__指定仅导出哪些,但仅限定在 import *
__all__ = ["funcSub"]

def funcSub(x, y):
    return x-y
    
print()
print("-------------")
print(f"__file__:{__file__}")
print(f"__name__:{__name__}")
if (__name__ == "__main__"):
    print(f"直接运行脚本: {__file__}")
else:
    print(f"导入了脚本: {__file__}")
# 路径: /pp/test.py
import sys
import os
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))

from cc.c_28 import funcSub

print()
print("-----------")
print(f"funcSub(1, 2)=>{funcSub(1, 2)}")

运行如下:
在这里插入图片描述

上面有几点需要注意下:

  • __name__ 可以用来判断当前模块是被导入的还是直接运行的
  • __all__ 可以用来限制导入时(import *) 只能导入指定的模块(注意,只有在 import * 时有效)
  • 可以使用 sys.path.append(xx) 将指定的路径加入到模块搜索中去

16.2 包和自定义包

在python中包其实就是一个文件夹,里面可以放许多的模块(代码文件),通过包进行归类,方便管理。
但python包和普通文件夹又有区别:包下面有一个 __init__.py 文件来标识这是一个包,通常会在这个文件中使用`all``来限制导出的内容。
如:
在这里插入图片描述

十七、pip和国内源

参考:《python配置国内镜像源操作步骤》

类似 java中的mavenjavascript中的npmpython中也有pip管理包的程序。
我们可以通过它方便的引用三方包,如下:

我们可以先通过命令查看配置:
在这里插入图片描述
来解释下:

  • pip config list 显示所有的配置,当前已设置了国内源,如果没有的话可以参考:
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    pip config set install.trusted-host='pypi.tuna.tsinghua.edu.cn'

    其他常用的源还有:
    1、华南理工大学镜像源
    http://pypi.hustunique.com/simple/%29
    2、清华大学
    https://pypi.tuna.tsinghua.edu.cn/simple
    3、豆瓣
    http://pypi.douban.com/simple/
    4、清华大学开源镜像站
    https://mirrors.tuna.tsinghua.edu.cn/
    5、网易开源
    http://mirrors.163.com/
    6、华为
    https://mirrors.huaweicloud.com/
    7、阿里巴巴
    https://opsx.alibaba.com/mirror/

  • pip list 显示当前安装的三方包
    可以看到,当前我安装了一个 numpy,另外两个是自带的,安装命令为:
    pip install aliyun-python-sdk-core==2.13.36 (也可以不指定版本)
    如下:
    在这里插入图片描述

十八、虚拟环境

18.1 概念

pythonjavac#这种语言不一样:

  • javac#都是静态语言,安装的都是别人编译好的包,它们可以将一个包的各个版本缓存起来,然后加入到项目的引用即可;
  • python是解释性语言,安装的都是源码,没有将包的某个版本加入到项目引用这种说法,所以管理起来就麻烦很多;

javascript也是解释性语言,它也有同样的问题,不过npm是将本项目引用的包都放在node_moudules文件夹下面。缺点就是每个新项目都得重新下,即使我们用的是xxxx包的同一个版本。

python为了解决这个问题,提出了虚拟环境的概念,就是将python拷贝一份作为新的环境,这样我们在新的环境里安装包不会影响其他环境里的,做到了隔离。比如:

  • 我们在环境A里导入了xxxx包的1.0版本,在环境B里导入了xxxx包的2.0版本。它们互不影响;
  • 项目A和项目B使用环境A,因为它们都会导入相同版本的包,项目C和项目D使用环境B,因为它们也会使用相同环境的包;

18.2 创建和使用虚拟环境

我们先选择一个目录,如 D:\jackletter\my-venv,然后执行如下:py -m venv my-venv

在这里插入图片描述
执行完成后,看看里面的东西:
在这里插入图片描述
我们需要激活这个环境,如下:
.\Scripts\Activate.ps1
在这里插入图片描述
其实激活就是将my-venv的路径配置到path里面,如下:
在这里插入图片描述
在虚拟环境里,我们安装的包都在 my-venv\Lib\site-packages下,如下:
在这里插入图片描述

退出虚拟环境的命令是:.\Scripts\deactivate.bat,不过在powershell中不好用。。。但在cmd里是可以的。。。

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

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

相关文章

联邦学习--记录

简介 联邦学习&#xff08;Federated Learning&#xff09;是一种新兴的人工智能基础技术&#xff0c;其设计目标是在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下&#xff0c;在多参与方或多计算结点之间开展高效率的机器学习。其中&#…

【机器学习大杀器】Stacking堆叠模型-English

1. Introduction The stacking model is very common in Kaglle competitions. Why? 【机器学习大杀器】Stacking堆叠模型&#xff08;English&#xff09; 1. Introduction 2. Model 3: Stacking model 2.1 description of the algorithms: 2.2 interpretation of the es…

浅谈Vue中 ref、reactive、toRef、toRefs、$refs 的用法

&#x1f4ad;&#x1f4ad; ✨&#xff1a; 浅谈ref、reactive、toRef、toRefs、$refs   &#x1f49f;&#xff1a;东非不开森的主页   &#x1f49c;: 技术需沉淀&#xff0c;不要浮躁&#x1f49c;&#x1f49c;   &#x1f338;: 如有错误或不足之处&#xff0c;希望可…

Redhat(3)-Bash-Shell-正则表达式

1.bash脚本 2.bash变量、别名、算术扩展 3.控制语句 4.正则表达式 1.bash脚本 #!/bin/bash#this is basic bash script<< BLOCK This is the basic bash script BLOKC: This is the basic bash script echo "hello world!" 双引号、单引号只有在变量时才有区…

健身房信息管理系统/健身房管理系统

21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存储达到…

VCS 工具学习笔记(1)

目录 引言 平台说明 关于VCS 能力 Verilog 仿真事件队列 准备 VCS工作介绍 工作步骤 支持 工作机理 编译命令格式 编译选项 示例 仿真命令格式 仿真选项 示例 库调用 -y 总结 实践 设计文件 仿真文件 编译 仿真 关于增量编译 日志文件记录 编译仿真接续进…

链接脚本和可执行文件

几个重要的概念 摘取自知乎内容&#xff1a; 链接器与链接脚本 - 知乎 linker 链接器 链接器(linker) 是一个程序&#xff0c;这个程序主要的作用就是将目标文件(包括用到的标准库函数目标文件)的代码段、数据段以及符号表等内容搜集起来并按照 ELF或者EXE 等格式组合成一个…

【C++学习】string的使用

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《C学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; string的使用&#x1f640;模板&#x1f639;函数模板&#x1f639;类模板&#x1f640;string模板简…

【菜鸡读论文】Former-DFER: Dynamic Facial Expression Recognition Transformer

Former-DFER: Dynamic Facial Expression Recognition Transformer 哈喽&#xff0c;大家好呀&#xff01;本菜鸡又来读论文啦&#xff01;先来个酷炫小叮当作为我们的开场&#xff01; 粉红爱心泡泡有没有击中你的少女心&#xff01;看到这么可爱的小叮当陪我们一起读论文&am…

有了PySnooper,不用print、不用debug轻松查找问题所在!

PySnooper是一个非常方便的调试器&#xff0c;它是通过python注解的方式来对函数的执行过程进行监督的。 应用起来比较简单&#xff0c;不用一步一步的去走debug来查找问题所在&#xff0c;并且将运行过程中函数的变量值打印出来结果一目了然&#xff0c;相当于替代了print函数…

Boundary Loss 原理与代码解析

paper&#xff1a;Boundary loss for highly unbalanced segmentation Introduction 在医学图像分割中任务中通常存在严重的类别不平衡问题&#xff0c;目标前景区域的大小常常比背景区域小几个数量级&#xff0c;比如下图中前景区域比背景区域小500倍以上。 分割通常采用的交…

SpringBoot实践(三十三):Maven使用及POM详解

文章目录maven是什么maven怎么装settings.xml本地仓库地址&#xff1a;localRepository远程镜像&#xff1a;mirrorsJDK 版本&#xff1a;profile私服配置POM.xml中的常用标签projectmodelVersiongroupIdartifactIdversionpropertiesdependenciesbuild和pluginsresourcesdepend…

【学生管理系统】用户登录三种验证方式—图片验证、短信验证、邮件验证

目录 一、页面需求展示 二、验证方式—按钮组件 三、手机短信验证 四、邮件验证 五、图片验证邮件验证 &#x1f49f; 创作不易&#xff0c;不妨点赞&#x1f49a;评论❤️收藏&#x1f499;一下 一、页面需求展示 二、验证方式—按钮组件 2.1前端 <el-form-item labe…

【Linux】第十章 进程间通信(管道+system V共享内存)

&#x1f3c6;个人主页&#xff1a;企鹅不叫的博客 ​ &#x1f308;专栏 C语言初阶和进阶C项目Leetcode刷题初阶数据结构与算法C初阶和进阶《深入理解计算机操作系统》《高质量C/C编程》Linux ⭐️ 博主码云gitee链接&#xff1a;代码仓库地址 ⚡若有帮助可以【关注点赞收藏】…

工作流的例子

工作流的例子目录概述需求&#xff1a;设计思路实现思路分析1.配置bean2.examples3.no bean4.activiti-api-basic-process-example5.taskspringweb参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c…

C++ 多态类型

多态 C在面向对象中&#xff0c;多态就是不同对象收到相同消息&#xff0c;执行不同的操作。在程序设计中&#xff0c;多态性是名字相同的函数&#xff0c;这些函数执行不同或相似的操作&#xff0c;这样就可以用同一个函数名调用不同内容的函数。简而言之“一个接口&#xff…

2022 国赛postgresql

安装postgresql配置postgresql [root@linux3 ~]# postgresql-setup --initdb //初始化数据库Initializing database in ‘/var/lib/pgsql/data’Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log[root@linux3 ~]# systemctl enable postgresql.service Created …

澳洲最热门职业,护士排第一,医生竟然不如程序员?

2022澳洲最新的职业紧缺名单出炉了&#xff0c;令人惊讶的是护士竟然排行第一名&#xff0c;可见澳洲的医疗人力资源紧缺的问题。 既然人力资源紧缺&#xff0c;那么首当其冲的医生作为高学历且同属医疗行业的代表理应收到重视&#xff0c;然而令人意外的是&#xff0c;通过榜单…

Linux一篇入门(以Ubuntu为例)

一、Linux与Windows区别 Linux&#xff1a;无盘符&#xff0c;只有一个根目录&#xff08;/&#xff09; Windows&#xff1a;有盘符 二、目录相关常见命令 Linux命令格式&#xff1a; cmd -option parameter cdm命令&#xff0c;就是一个操作 parameter一般是要做的对象…

韩国程序员面试考什么?

大家好&#xff0c;我是老三&#xff0c;在G站闲逛的时候&#xff0c;从每日热门上&#xff0c;看到一个韩国的技术面试项目&#xff0c;感觉有点好奇&#xff0c;忍不住点进去看看。 韩国的面试都考什么&#xff1f;有没有国内的卷呢&#xff1f; 可以看到&#xff0c;有8.…