Python入门(小白友好)

news2025/2/24 9:15:52

知识图谱

在这里插入图片描述

搭建环境

安装Python:Download Python | Python.org

在这里插入图片描述

安装PyCharm:Download PyCharm: The Python IDE for data science and web development by JetBrains

在这里插入图片描述

注意:专业版本是收费的,新手小白使用社区版(community)即可

创建第一个项目:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一些PyCharm的设置(也适用于其他JetBrains的产品,例如:IDEA,Clion)

设置背景 (可以让你敲代码的时候心情更好哈哈哈哈)
在这里插入图片描述
在这里插入图片描述

设置字体大小

同样也是在设置里面:找到编辑器—字体,就可以设置字体大小了
在这里插入图片描述

第一个Python程序

print("hello")

在这里插入图片描述

右击鼠标,再点击运行即可;或者是 快捷键Ctrl+Shift+F10
在这里插入图片描述

变量和类型

首先Python是一种动态类型语言,动态类型语言就是在运行时才会去检查数据类型的语言,相对的静态类型语言是在编译时就会去检查数据类型,例如:C++/Java就是静态类型语言

简单来说就是:动态类型语言的变量会随着赋值对象类型的改变而发生改变

整数类型

int

a = 10
print(type(a))

输出为<class 'int'>

PS: 和C++/Java语言不同,在Python中的int类型数据范围是无穷的,理论上只要内存足够大就可以存储无限大的数字

浮点数类型

float

a = 3.14
print(type(a))

输出为<class 'float'>

在Python中是没有double类型的,但是Python中的float其实就相对于C++/Java中的double

布尔类型

bool

a = True
print(type(a))

输出为<class 'bool'>

布尔类型只有两种取值: TrueFalse

字符串类型

str

a = 'hello'
print(type(a))

输出为<class 'str'>

在Python中,由于没有字符类型,因此表示字符串时,使用单引号或双引号都是可以的

Python是动态类型语言

a=10
print(type(a))

a=3.14
print(type(a))

a=True
print(type(a))

a = 'hello'
print(type(a))

输出结果为:

<class 'int'>
<class 'float'>
<class 'bool'>
<class 'str'>

a的类型随着赋值对象的不同而发生改变

注释

单行注释

# 这是一行注释

多行注释(文档注释)

'''
这是一行注释
这是又一行注释
'''

输入输出

输入

关键字:input

a = input("请输入一个数字")

注意:input函数返回的数据类型是str,如果要得到数字,需要进行数据转换

a = input("请输入一个数字")
print(type(a))
a=int(a)
print(type(a))

输出为:

请输入一个数字1
<class 'str'>
<class 'int'>

输出

关键字:print

a = 10
b = True
c = "hello"
d = 3.14
print(a)
print(b)
print(c)
print(d)

输出:

10
True
hello
3.14

f-string格式化输出 (类似于C语言中的printf)

a = 10
print(f"a={a}")

在这里插入图片描述

运算符

算术运算符

+ - * / %不做赘述,与平常生活中的运算方式无异

** 乘方运算,同时也可以开方

print(2 ** 2)
print(9 ** 0.5)

输出为:

4
3.0

// 取整除法(地板除法)

在Python中的除法 / 结果是小数,而大多数语言的除法结果仍然是一个整数

print(5 / 2)
print(5 // 2)

输出为:

2.5
2

关系运算符

==判断相等

<=小于等于

>=大于等于

注意:对浮点数判断是否相等的时候不能够使用== 因为小数在计算机中总是不能够精确的存储

例如:

print(0.1 + 0.2 == 0.3)

输出为:

False

对于小数判断是否相等,应该使用以下代码

print(-0.000001 < (0.1 + 0.2) - 0.3 < 0.000001)

输出为:

True

逻辑运算符

and or not 分别对应C++中的&& || !

条件判断

在Python中只有一种条件判断:

if 条件:
	执行代码
elif:
	执行代码
else:
	执行代码

与C++/Java不同:Python没有用{}来表示代码块,而是采用缩进的方式

不当的缩进会导致代码bug

例题:判断一个数是不是偶数

a = 10
if a % 2 == 0:
    print("偶数")
else:
    print("奇数")

空语句:pass

在Python语法中,每一个条件判断都需要对应一个缩进,也就是执行代码块,当什么都不需要执行的时候,需要加上pass

循环语句

while 条件成立:
	执行代码

例题:计算1-100的和

i = 0
sum = 0
while i <= 100:
    sum += i
    i += 1
print(sum)

注意:i 作为循环变量需要自增,否则死循环; 同时Python并不支持++/–的操作,自增只能使用 i+=1

for 变量 in 可迭代对象
	执行代码

例题:计算1-100的和

sum = 0
for i in range(1, 101):
    sum += i
print(sum)

其中range所表示的是一个左闭右开的数据范围; 默认步长为 1

break跳出循环

continue跳过本次循环

函数

def 函数名(参数列表):
	执行代码

例题:计算从0-n的和

def getSum(n):
    sum = 0
    for i in range(0, n + 1):
        sum += i
    return sum

print(getSum(100))

输出为:

5050

参数默认值

类似于C++中的缺省参数

def getSum(a, b, c=10):
    return a + b + c

print(getSum(1, 2, 3))
print(getSum(1, 2))

其中对于第三个参数可以传也可以不传,其默认值为10

默认参数的使用规则:

  1. 默认参数可以有多个
  2. 默认参数必须在参数列表的最后面

关键字参数

def getSum(a, b):
    return a + b

print(getSum(b=1, a=10))

通过指定形参来传参,可以调换参数的顺序

函数返回多值

def getPoint():
    x = 10
    y = 20
    return x, y

可以返回多个值,这是C++/Java所没有的功能

其底层是将这些返回值放到一个元组中,返回类型为元组

如果我们只需要接收其中部分的返回值,可以使用_进行忽略

def getPoint():
    x = 10
    y = 20
    return x, y

_, b = getPoint()

三大常用的集合类

列表

创建

a = []
b = list()

以上两种方式都是创建一个空列表

a = [1, 2, 3, 4, 5]
b = [0.125, "hello", True, 0]

创建列表并且初始化

值得注意的是:

Python中的列表和元组类似于C++/Java 中的数组概念,但是和数组最大的区别在于—列表和元组的元素可以是不同类型的

增加元素

a.append(90)

使用append方法在列表末尾追加元素

a.insert(3,"sun")

使用insert方法在指定下标处添加指定内容,前一个参数是下标,后一个是添加内容

删除元素

a.pop()

使用pop方法删除列表末尾元素

a.pop(3)

使用pop(index) 删除指定下标的元素,上面是删除列表a中下标为3的元素

a.remove(4)

使用remove(elem)方法删除指定内容的元素,上面是删除列表a中值为4的元素

查找元素

in not in

a = [1, 2, 3, 4, 5]
print(1 in a)
print(0 in a)
print(1 not in a)
print(0 not in a)

返回值为布尔类型

输出为:

True
False
False
True

index查找下标

  • 存在—返回元素下标

  • 不存在—抛出异常,不会返回-1;因为-1在Python中是一个合法的下标,表示倒数第一个元素

    查找元素4(存在)

a = [1, 2, 3, 4, 5]
print(a.index(4))

查找元素0(不存在)
在这里插入图片描述

修改元素

a = [1, 2, 3, 4, 5]
a[0] = 100
a[3] = 300

直接使用下标访问即可,但是注意下标不能越界!!

遍历列表

a = [1, 2, 3, 4, 5]

# 第一种方式
for elem in a:
    print(elem)
# 第二种方式 通过下标访问
i = 0
for i in range(0, len(a)):
    print(a[i])
# 第三种 while下标访问
i = 0
while i < len(a):
    print(a[i])
    i += 1

切片操作✨

切片操作是在Python中比较重要的操作
它可以较快的获取到指定的元素

[起始位置:结束位置:步长]
  • 默认起始位置为0
  • 默认结束位置为len(列表)-1
  • 默认步长为1
a = [1, 2, 3, 4, 5]

截取2~4

print(a[1:4:])

截取下标为偶数的元素

print(a[0::2])

倒叙输出

print(a[::-1])

拼接列表

a = [1, 2, 3, 4, 5]
b = ["hello", True, 100]

将a b进行拼接

# 方式1
a += b

# 方式2
a.extend(b)

元组

创建

a = ()
b = tuple()

以上都是创建一个空元组

a = (1, 3.14, False, "hello")

创建元组并且初始化

元组vs列表

二者很相似,基本的操作可以参照上面的列表

但是列表是可变的,而元组是不可变的

也就是说:元组不能够进行修改删除这样的操作,只能够对元组进行读操作

元组的优势

  1. 可哈希:因为元组是不可变的,所以是可哈希的;在Python中经典的不可哈希的对象—列表以及字典
  2. 安全:由于元组是不可变的,所以不需要担心数据在处理过程中发生改变

字典

字典是一种存储"键值对"的集合类

key必须是Python中可哈希的对象类型,例如:列表和字典就不可以作为key

value的类型随意

创建

a = {}
b = dict()

以上都是创建两个空字典

a = {
    'id': 10,
    'name': 'Mike',
    'sex': 'man'
}

创建字典并且初始化

增加元素/修改元素

a['score'] = 100
a['id'] = 12
字典变量名[key]=value
  • 如果key存在字典中,则为修改key对应的value
  • 如果key不存在,则为增加元素

删除元素

a.pop('id')
字典变量名.pop(key)

pop方法删除key所对应的键值对

查找元素

print('id' in a)
print(a['id'])

使用in/not in进行查找,亦或者通过下标访问,如果不存在将抛出异常
在这里插入图片描述

遍历字典

for elem in a:
    print(elem, a[elem])

其中elem对应a中的key, a[elem]则是通过下标访问的形式得到的value

字典的常用方法

a.keys() # 获取到所有的key
a.values() #获取到所有的value
a.items() # 获取到所有的键值对(包括key和value)

在这里插入图片描述
如果我的文章对你有帮助的话,欢迎点赞收藏哦😘😘
同时如果文章中有错误的话,也欢迎各位大佬指出😁

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

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

相关文章

架构扩展性

架构扩展性&#xff1a;应用扩展 数据扩展 组织扩展 流程扩展 核心方法论–扩展立方体&#xff1a; x轴&#xff1a;无脑克隆 y轴&#xff1a;功能分割z轴&#xff1a;客户分割扩展立方体在应用扩展的应用&#xff1a; x轴&#xff1a;横向克隆 对于无状态的应用&#xff0c;多…

《移动App测试实战》之【专项测试】

&#x1f604;作者简介&#xff1a;小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c; 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。&#x1f60a; 座右铭&#xff1a;不想当开发的测试&#xff0c;不是一个好测…

开源的OCR工具基本使用:PaddleOCR/Tesseract/CnOCR

前言 因项目需要&#xff0c;调研了一下目前市面上一些开源的OCR工具&#xff0c;支持本地部署&#xff0c;非调用API&#xff0c;主要有PaddleOCR/CnOCR/chinese_lite OCR/EasyOCR/Tesseract/chineseocr/mmocr这几款产品。 本文主要尝试了EasyOCR/CnOCR/Tesseract/PaddleOCR这…

性能分析调优模型

性能测试除了为获取性能指标外&#xff0c;更多是为了发现性能瓶颈和性能问题&#xff0c;然后针对性能问题和性能瓶颈进行分析和调优。在当今互联网高速发展的时代&#xff0c;结合传统软件系统模型以及互联网网站特征&#xff0c;性能调优的模型可以归纳总结为如图1-5-1所示的…

ClickHouse--13--springboot+mybatis配置clickhouse

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 ClickHouse1.添加maven依赖2.配属数据源3.参数配置4.Druid连接池配置5.entity6.Mapper接口7.Mapper.xml8.controller接口9.创建一个clickhouse表10.测试 ClickHouse…

day04vue学习

day04 一、学习目标 1.组件的三大组成部分&#xff08;结构/样式/逻辑&#xff09; ​ scoped解决样式冲突/data是一个函数 2.组件通信 组件通信语法父传子子传父非父子通信&#xff08;扩展&#xff09; 3.综合案例&#xff1a;小黑记事本&#xff08;组件版&#xff09…

基于python的线上购物商城系统

技术&#xff1a;pythonmysqlvue 一、系统背景 如今的时代是信息化的时代&#xff0c;更种信息大爆炸。人们的基本工作生活中都离不开网络和计算机&#xff0c;现如今各类网站、管理系统、app都快速发展&#xff0c;为人们带来更便捷的生活体验。网站类的系统有宣传类网站、企…

Unity类银河恶魔城学习记录11-2 p104 Inventoty源代码

此章节相对较难理解&#xff0c;有时间单独出一章讲一下 Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili InventoryItem.cs…

一文了解Python中的运算

Python的运算符和其他语言类似 数学运算 >>>print 19 # 加法 >>>print 1.3-4 # 减法 >>>print 3*5 # 乘法 >>>print 4.5/1.5 # 除法 >>>print 3**2 # 乘方 >>>print 10%3 # 求…

equals与时间序列攻击

引言 随着信息技术的迅速发展&#xff0c;网络安全和隐私问题变得愈发重要。黑客和攻击者不断寻找新的攻击方法&#xff0c;其中之一是时间序列攻击&#xff08;Timing Attack&#xff09;。时间序列攻击是一种侧信道攻击&#xff0c;攻击者试图通过测量程序的执行时间来推断程…

施工方项目管理软件哪个好?找企智汇施工项目管理软件!

施工方项目管理软件市场上确实存在多个选择&#xff0c;每个软件都有其独特的特点和优势。而在这些选项中&#xff0c;企智汇施工项目管理系统以其卓越的性能和丰富的功能脱颖而出&#xff0c;成为众多施工方的必选软件。 企智汇施工项目管理系统在项目管理方面表现出色&#…

【C++】用红黑树模拟实现set、map

目录 前言及准备&#xff1a;一、红黑树接口1.1 begin1.2 end1.3 查找1.4 插入1.5 左单旋和右单旋 二、树形迭代器&#xff08;正向&#xff09;2.1 前置 三、模拟实现set四、模拟实现map 前言及准备&#xff1a; set、map的底层结构是红黑树&#xff0c;它们的函数通过调用红…

[已解决] vscode 跳转 python 代码失败

linux 环境下&#xff0c;"Ctrl 单击" 跳转函数定义失败&#xff0c;可以尝试下面的方法: setting -> 输入 go to definition -> 将下列两项配置改为 goto (不过当存在多个同名函数时&#xff0c;可能跳转会不符合预期)

Vulnhub靶机渗透:DC-7打靶记录

前言 自信自强&#xff0c;来自于不怕苦、不怕难的积淀。宝剑锋从磨砺出&#xff0c;梅花香自苦寒来&#xff1b;任何美好理想&#xff0c;都离不开筚路蓝缕、手胼足胝的艰苦奋斗&#xff01; 靶场介绍 DC-7是一个初中级的靶场&#xff0c;需要具备以下前置知识&#xff1a;…

联发科MT8797迅鲲1300T规格参数_MTK5G安卓核心板方案定制

联发科MT8797&#xff08;迅鲲1300T&#xff09;平台采用Arm Cortex-A78和Cortex-A55组成的八核架构CPU&#xff0c;以及Arm Mali-G77MC9九核GPU&#xff0c;集成了AI处理器MediaTek APU&#xff0c;支持5G Sub-6GHz全频段和5G双载波聚合,支持1.08亿像素拍照和多镜头组合,以及1…

每日五道java面试题之mybatis篇(五)

目录&#xff1a; 第一题. 实体类属性名和表中字段名不⼀样 &#xff0c;怎么办?第二题. Mybatis是否可以映射Enum枚举类&#xff1f;第三题. Mybatis能执⾏⼀对⼀、⼀对多的关联查询吗&#xff1f;第四题. Mybatis是否⽀持延迟加载&#xff1f;原理&#xff1f;第五题. 如何获…

SAP HCM 读取上月考勤结果

转移前一期间都是累计读取上一个月de 数据&#xff0c;例如现在是4月&#xff0c;系统就会读取123月的累计 如果想只读取上个月的数据&#xff0c;就要设置前一期期间余额 因为一月只有31天 现在看3月 因为二月只有29天 2004年

软件设计师18--IO管理软件

软件设计师18--IO管理软件 考点1&#xff1a;IO管理软件例题&#xff1a; 考点1&#xff1a;IO管理软件 例题&#xff1a; 1、I/O设备管理软件一般分为4个层次&#xff0c;如下图所示。图中①②③分别对应(D&#xff09;。 A、设备驱动程序、虚设备管理、与设备无关的系统软件…

Java13_反转字符串中的单词 III(方法二String转换成字符数组)

反转字符串中的单词 III 给定一个字符串 s &#xff0c;你需要反转字符串中每个单词的字符顺序&#xff0c;同时仍保留空格和单词的初始顺序。 示例 1&#xff1a; 输入&#xff1a;s "Lets take LeetCode contest" 输出&#xff1a;"steL ekat edoCteeL tset…

退休人员档案管理系统

退休人员档案管理系统是一种用于管理退休人员档案信息的软件系统。该系统可以实现退休人员档案的录入、查询、修改、删除和统计等功能&#xff0c;方便管理人员对退休人员档案信息进行有效管理。 玖拓智能退休人员档案管理系统可以通过录入退休人员的个人信息、退休时间、退休单…