Python基础语法(上)——基本语法、顺序语句、判断语句、循环语句(有C++基础快速掌握Python语言)

news2025/1/18 6:50:27

文章目录

    • 0.python小技巧与易错点
    • 1.python 与 c 语法有哪些区别
    • 2.Python基本语法
      • 2.1python的变量类型
      • 2.2python中的运算符
      • 2.3python中的表达式
      • 2.4python中的输入输出
    • 3.python判断语句
      • 3.1基本用法:
      • 3.2关于else if 的用法
      • 3.3关于pass语句
      • 3.4python变量的作用域
      • 3.5python条件表达式
      • 3.6python三元运算
      • 3.7python中match case语句
    • 4.python循环语句
      • 4.1while循环
      • 4.2for循环
      • 4.3python中跳转语句
      • 4.4python循环中的else子句和pass语句
      • 4.5多层循环嵌套

0.python小技巧与易错点

  1. python中交换两个数,可以这样写:a, b = b, a
  2. 想要输出%时,要打两个%
  3. Python中的比较运算符支持链式操作,这一点跟C++和Java等语言不同。例如:if a >= b >= c: ...
  4. python中是不支持 i++ 这种操作的,但是可以使用 i+= 1 这种操作
  5. python中这两种写法是完全不同的,例如,我们再求斐波那契数列时,会这么写:x, y = y, x +y 这样写是没有错误的, 注意这里x 与y 是同时赋值的,即在第二个把x+y 赋给y 时,前面的y 还没有赋给x呢 如果我们这样写的话就是错误的了,把他们分开写,写在两行

1.python 与 c 语法有哪些区别

  1. python定义变量时是不需要定义变量类型的,可以直接定义,例如:weight = 10 且Python每个语句结束时是不需要使用分号来结束的,但是 必须要注意自己的格式,尽量写一行换一行 ,并且是支持逗号表达式的
  2. 取余c++采用向0取整,python是向下取整。 例如:-5 / 3 python中是 -2,而在c++中是-1
  3. 在强制类型转换中,写法不同;c++中是float f = "3.14; int x = (int)f 而python中是s = '3.14' x = float(s)
  4. 在判断语句或分支语句中,python是不需要加括号,而是直接写,再加上一个冒号:,并且代码块时不要用大括号括起来的,python会根据缩进来判断
  5. python变量的作用域,语句内部的变量,可以在语句外访问边执行边编译的

2.Python基本语法

2.1python的变量类型

在这里插入图片描述
注意1:Python中的单引号与双引号是没有本质区别的,字符与字符串两个引号都可以使用
注意2:python中的int支持高精度,可以定义非常大的数据,而c++中的int大概可以定义到21亿左右

2.2python中的运算符

运算符描述
+1.两个数相加,2.拼接两个字符串
第一个数减去第二个数
*两个数相乘
/第一个数除以第二个数,注意:除的结果是float类型
//整除,结果是int类型
%取模,注意:是向下取整
**乘方,例如:2 ** 3,表示的实际2的3次方
余下,例如: += -= *= /= //= **= %=

注意:除法和取余运算时,当除以0时会出现异常错误,往下的程序不会执行

2.3python中的表达式

例如:

x = 2 + 3
y = (x + 1.0) * 5
print(x, y) #输出结果是5和30.0,这里就牵扯到类型转换了,整数与浮点数的运算,会把小的类型强制转化成大的类型

python中也有像c++那样强制类型类型转换,用法是一样的,但是写法不一样,例如:

s = "3.14"
x = float(s)
y = int(x)
print(s, x, y) #结果是 3.14 3.14 3

#同样也可以把整数转换成自字符串
str = "The value is " + str(y)
print(str)

杂:type(x) 可以查看x的类型是什么

2.4python中的输入输出

使用input()函数,可以输入一行内容,返回的类型为str。一般配合split()、map()、int()、float()等函数使用。

例如:

x, y = map(int, input().split()) #第一个参数int是将读入的类型转换成int类型,而split函数是将读入的字符串根据空格来划分出来
print(x, y) #读入3 4,则输出3 4

使用print()函数可以输出多个变量,默认用空格隔开,且行末会默认添加回车。如果想自定义行末字符,可以添加end参数。

==注意:print是自带换行的,若不想换行,后面再加个end=‘’,若想加个空格则加个end=’ ',想加什么都可以,例如:

a, b, c = 1, 2, 'abc'
print(a, b, c, end = '!') #这里是没有换行的,所以下面输出的a直接跟在感叹号的后面
print(a)
print(b)
print(c)

在这里插入图片描述

print的格式化输出

①:部分题目会要求保留若干位小数,此时可以使用round()函数。例如:

x = 3.1415926
print("x = " + str(round(x, 1))) #保留一位小数
print("x = " + str(round(x, 3))) #保留三位小数

在这里插入图片描述

②另外可以使用格式化字符串,例如:

x = 3.1415926
y = 9
print("x = %.1f" % x) #保留一位小数
print("x = %.3f" % x) #保留三位小数
print("x = %.2f, y = %d" % (x, y))

在这里插入图片描述

3.python判断语句

3.1基本用法:

x = int(input())

if x > 5: #每个分支语句后加冒号,且不需要写括号
    print("%d is greater than 5" % x)
else:
    print("%d is smaller than or equal 5" % x)

注意1:一定要注意不要忘写冒号,且判断的语句不用写括号,写了虽然不错,但是不规范
注意2:else 可以省略,即只有if语句
注意3:判断语句代码块不需要使用代码块括起来,python是根据首行缩进来确定分支语句的。
注意4:即使分子语句只有一行,也建议不要写在一行,不然不规范

3.2关于else if 的用法

①在else 语句里在套用 if else语句,例如:

age = int(input())

if age < 18:
    print("未成年")
else:
    if age < 60:
        print("中年人")
    else:
        print("老年人")

②if else 连写,即 elif,例如:

x = int(input())

if x < 18:
    print("未成年")
elif x < 60:
    print("中年人")
else: #这个else是可以省略的
    print("老年人")

3.3关于pass语句

pass 语句不执行任何动作。语法上需要一个语句,但程序毋需执行任何动作时,可以使用该语句。例如:

x = int(input())

if x > 5:
    pass  # 先空出来等以后再实现
else:
    print(x)

3.4python变量的作用域

很特别。语句内部的变量,可以在语句外访问。 例如:

没有任何错误!

a, b = map(int, input().split())

if a > b:
    max_value = a
else:
    max_value = b

print(max_value)

3.5python条件表达式

与:and
或:or
非:not
注意:运算符优先级:not > and > or

例如:判断闰年条件:不能被100整除并且能被4整除或者能被100整除并且能被400整除(即能被400整除)

year = int(input())

if year % 4 == 0 and year % 100 != 0 or year % 400 == 0: #因为运算符优先级,所以我没有加括号
    print("是闰年")
else:
    print("是平年")

3.6python三元运算

类似于C++、Java中的问号表达式。例如:

a, b = map(int, input().split())

#求a,b中最大值
max_value = a if a > b else b

3.7python中match case语句

类似于C++中switch case语句,例如:

status = int(input())

match status:
    case 400:
        print("Bad request")
    case 404:
        print("Not found")
    case 418 | 420 | 422:
        print("I'm a teapot")
    case _:
        print("Something's wrong with the internet")

注意:
1.只有第一个匹配的模式会被执行。且跟C++、Java不同,匹配后只会执行当前模式,不会顺次执行后面的case。
2.可以用 | 表示匹配多个模式。
3.变量名 _ 被作为 通配符,(相当于c++中defalut语句) 并必定会匹配成功。
4.如果没有 case 匹配成功,则不会执行任何分支。

4.python循环语句

4.1while循环

例如:

i = 0;
while i < 10:
    print(i, end=' ')
    i += 1

注意:python中是不支持 i++ 这种操作的,但是可以使用 i+= 1 这种操作

练习1:求1~100中所有数的立方和。

i = 1
res = 0
while i <= 100:
    res += (i ** 3)
    i += 1
print(res)

练习2:求斐波那契数列的第n项。f(1) = 1, f(2) = 1, f(n) = f(n - 1) + f(n - 2)。

n = int(input())

a, b = 1, 1 #a,b分别表示第一项与第二项
i = 1
while i < n: #执行 n-1 次
    a, b = b, a + b #分别往后挪一位
    i += 1
print(a)

当我们要写个死循环的程序,即永真时,这么写即可:

while True:
	...

4.2for循环

for循环语句用来按顺序枚举range、字符串等数据类型中的元素。

用法1:遍历一个字符串

for i in "python":
    print(i, end=' ') #i也是字符串类型
print() #python中默认是最后要有个换行

在这里插入图片描述
用法2:遍历range

range()函数可以生成等差数列,可以接收1个、2个或者3个整数参数:

range用法:
1.接收1个整数参数时:range(x)会按顺序返回 0,1,2,3…x−1 这个数列。
2.接收2个整数参数时:range(x, y)会按顺序返回 x,x+1,x+2,…,y−1 这个数列。
3.接收3个整数参数时:range(x, y, z)分为两种情况:
①z > 0时,按顺序返回 x,x+z,x+2z,x+3z,… 这个数列中小于 y 的所有数。(正运算,单调上升)
②z < 0时,按顺序返回 x,x+z,x+2z,x+3z,… 这个数列中大于 y 的所有数。(逆运算,单调下降)

练习1:求 1∼1001∼100 中所有数的立方和。

s = 0
for i in range(1, 101):
    s += i ** 3
print(s)

练习2:求斐波那契数列的第n项。f(1) = 1, f(2) = 1, f(n) = f(n - 1) + f(n - 2)。

n = int(input())
a, b = 1, 1
for i in range(n - 1):
    a, b = b, a + b
print(a)

4.3python中跳转语句

与C++类似,同样有两种跳转语句,①break:提前结束循环,之后的循环都不会在执行。②continue:只会结束当前一轮循环continue后面的语句,下面的循环正常执行。

例题1:判断一个大于1的整数是否是质数。

x = int(input())
for i in range(2, x):
    if x % i == 0:
        print("Not a prime number")
        break #后面的循环不会执行
else: #python中else可以与循环搭配使用,即上面的循环都不满足条件是,会执行else语句
    print("Prime number")

例题2:求 1∼100 中所有偶数的和。

res = 0
for i in range(101):
    if i % 2 == 0:
        res += i
    else:
        continue #奇数项会跳过去
print(res)

4.4python循环中的else子句和pass语句

1.循环中的else语句:for或while循环可以包括else子句,会在循环结束后执行。不过如果循环是被break结束的,那么else子句就不会执行了。(continue不算)

2.循环中pass语句:类似于if语句,当for或者while循环里不想写任何代码时,可以写上pass语句,这个语句不执行任何动作。

4.5多层循环嵌套

while和for循环内的代码块中也可以包含循环语句。

例如:打印 1∼100 中的所有质数。

for i in range(1, 101):
    for j in range(2, i):
        if i % j == 0:
            break
    else:
        print(i, end=' ')

#法二:
for i in range(1, 101):
    is_prime = True
    for j in range(2, i):
        if i % j == 0:
            is_prime = False
            break
    if is_prime:
        print(i, end=' ')

在这里插入图片描述

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

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

相关文章

2024年1月9日

2024年1月9日09:26:57待在工作室玩千恋万花和登录PTA练习习题 2024年1月9日09:28:02判断素数肯定会成为考试的关键点之一 2024年1月9日15:13:49完成java的复习 2024年1月9日15:16:41判断反馈类型 2024年1月9日15:20:29行列式求系数通过沙路法展开得到 2024年1月9日15:21:1…

【leetcode】力扣算法之删除链表中倒数第n个节点【中等难度】

删除链表中倒数第n个节点 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 用例 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5] 输入&#xff1a;head [1], n 1 输出&#xff1a;[] 输入&#xff1a;head …

【OSG案例详细分析与讲解】之二:【着色文件转换为字符数组】

文章目录 一、【着色文件转换为字符数组】前言 二、【着色文件转换为字符数组】Shader转换 三、【着色文件转换为字符数组】转换函数 1.转换函数 2.字符替换函数 四、【着色文件转换为字符数组】示例 1.GLSL2Cpp.cpp文件&#xff1a; 2.Qt pro文件&#xff1a; 五、【着色文件转…

知识点整理[(GraphGeo) DATA AND PROBLEM DEFINITION]

3 DATA AND PROBLEM DEFINITION 3.1 Data Collection 问题一:IP定位数据集构成 回答: 包含数以百万计的IP地址,这些IP地址包括: (1)它们具有自己的知识(如自主系统(AS)和WHOIS数据); (2)网络测量

Python-抖音无法拒绝的表白代码【附源码】

一个无法被拒绝的表白代码 运行效果&#xff1a; 一&#xff1a;主程序&#xff1a; import sys import cfg import random import pygame from tkinter import Tk, messagebox Function:按钮类 Initial Args:--x, y: 按钮左上角坐标--width, height: 按钮宽高--text: 按钮显…

Vant2组件库van-list+Toast下拉加载滚动条回顶问题

目录 List 列表 Toast 轻提示 解决方案 1、不使用 Toast 的 加载提示 2、修改调整 pointer-event 属性值 3、判断是否为第一次加载再使用 背景 &#xff1a; 移动端项目 开发时&#xff0c;有数据长列表展示的场景需求&#xff0c;此时就用到了 Vant2 组件库里面的 <v…

【信息安全】深度分析邮件安全及钓鱼攻击防范

本博文共计3100余字&#xff0c;预计需阅读20分钟 【邮件安全建设】 一、前言 邮件系统作为企业办公网络架构中重要的组成部分&#xff0c;同时也是业务高频使用的办公应用&#xff0c;一旦出现安全问题&#xff0c;业务将会被严重干扰甚至中断&#xff0c;本篇博客通过攻守两…

react中实现拓扑图

react中实现拓扑图关系图 需求echarts代码react代码 需求 项目中的原型图需要使用react实现一个拓扑图&#xff08;关系图&#xff09; 通过查找&#xff0c;找到了可以使用的类似的原型&#xff1a;以下图片地址。 通过项目需要以及修改&#xff0c;形成了下边的样式 echar…

Java--业务场景:获取请求的ip属地信息

文章目录 前言步骤在pom文件中引入下列依赖IpUtil工具类在Controller层编写接口&#xff0c;获取请求的IP属地测试接口 IpInfo类中的方法 前言 很多时候&#xff0c;项目里需要展示用户的IP属地信息&#xff0c;所以这篇文章就记录一下如何在Java Spring boot项目里获取请求的…

Java--业务场景:在Spring项目启动时加载Java枚举类到Redis中(补充)

文章目录 前言步骤测试结果 前言 通过Java–业务场景&#xff1a;在Spring项目启动时加载Java枚举类到Redis中,我们成功将Java项目里的枚举类加载到Redis中了&#xff0c;接下来我们只需要写接口获取需要的枚举值数据就可以了&#xff0c;下面一起来编写这个接口吧。 步骤 在…

[算法与数据结构][c++][python]:C++与Python中的赋值、浅拷贝与深拷贝

C与Python中的赋值、浅拷贝与深拷贝 写在前面&#xff1a;Python和C中的赋值与深浅拷贝&#xff0c;由于其各自语言特性的问题&#xff0c;在概念和实现上稍微有点差异&#xff0c;本文将这C和Python中的拷贝与赋值放到一起&#xff0c;希望通过对比学习两语言实现上的异同点&a…

超市商品管理系统设计 C++实现

超市商品管理系统设计—C实现 文章目录 超市商品管理系统设计---C实现一、内容要求大纲图 二、源代码&#xff08;包含大量注释&#xff09;1、main.cpp文件2、supermarket.h文件3、supermarket.cpp文件4、administrator.h文件5、administrator.cpp文件6、user.h文件7、user.cp…

系列十二、数组

一、数组 1.1、概述 数组是指可以同时存放固定长度的同一类型的数据。 1.2、数组的声明 数组的声明有三种方式&#xff0c;具体如下&#xff1a; 1.2.1、方式一 /*** 声明数组的第一种方式* cityArray&#xff1a;数组名&#xff0c;注意:不包括[]*/ Test public void d…

MySQL的导入导出及备份

一.准备导入之前 二.navicat导入导出 ​编辑 三.MySQLdump命令导入导出 四.load data file命令的导入导出 五.远程备份 六. 思维导图 一.准备导入之前 需要注意&#xff1a; 在导出和导入之前&#xff0c;确保你有足够的权限。在进行导入操作之前&#xff0c;确保目标数据…

C2-3.3.2 机器学习/深度学习——数据增强

C2-3.3.2 数据增强 参考链接 1、为什么要使用数据增强&#xff1f; ※总结最经典的一句话&#xff1a;希望模型学习的更稳健 当数据量不足时候&#xff1a; 人工智能三要素之一为数据&#xff0c;但获取大量数据成本高&#xff0c;但数据又是提高模型精度和泛化效果的重要因…

代码随想录-刷题第五十二天

300. 最长递增子序列 题目链接&#xff1a;300. 最长递增子序列 思路&#xff1a;动态规划五步曲&#xff1a; dp[i]表示从0到i&#xff0c;以nums[i]结尾的最长递增子序列的长度。 递推公式&#xff1a;if(nums[i]>nums[j]) dp[i] max(dp[i], dp[j] 1) 位置i的最长升序…

Spring cloud聚合父工程project

文章目录 本次微服务版本一. 新建父工程project1.1设置字符集utf-81.2注解生效激活1.3. Java8编译版本 二. 父工程 pom.xml 本次微服务版本 一. 新建父工程project 1.1设置字符集utf-8 1.2注解生效激活 1.3. Java8编译版本 二. 父工程 pom.xml <?xml version"1.0&quo…

HTTP 3xx状态码:重定向的场景与区别

HTTP 状态码是服务器响应请求时传递给客户端的重要信息。3xx 系列的状态码主要与重定向有关&#xff0c;用于指示请求的资源已被移动到不同的位置&#xff0c;需要采取不同的操作来访问。 一、301 Moved Permanently 定义&#xff1a; 服务器表明请求的资源已永久移动到一个新…

Python多线程同步

同步条件(Event) 在Python中&#xff0c;多线程同步可以通过threading模块中的Event对象来实现。Event对象允许一个或多个线程等待某个事件的发生&#xff0c;当事件发生时&#xff0c;等待的线程将被唤醒。 event.isSet()&#xff1a;返回event的状态值 event.wait()&#x…

Vue-11、Vue计算属性

Vue计算属性是Vue实例的属性&#xff0c;用来根据已有的数据进行计算得到新的数据。计算属性的值会根据它的依赖缓存起来&#xff0c;在依赖没有发生改变时直接返回缓存的值&#xff0c;提高了性能。 计算属性的定义方式为在Vue实例中使用computed关键字&#xff0c;并将计算属…