首页 > 编程语言 >Python基础语法

Python基础语法

时间:2023-11-25 23:11:53浏览次数:35  
标签:函数 Python 数据类型 基础 语法 字符串 哈希 print 返回值

输入输出

  1. print():基础控制台输出

    将( )中的内容输入到控制台(console)中

    • 直接输出字符串要使用引号包裹

       print("hello, world")
    • 使用“end”来控制输出结尾(默认以\n(换行)结尾)

       print("hello, world",end="")    #不换行结束
       print("hello, world",end="*") #以*作为结尾
       print("hello, world",end="\t") #以tab作为结尾
    • 一次输出多个内容,默认以空格连接。使用sep控制分隔符

       print("hell“,”o, w“,”orld") #使用“ ”分隔
       print("hell“,”o, w“,”orld",sep="") #取消分隔
       print("hell“,”o, w“,”orld",sep="*") #使用“*”分隔
    • 括号中直接填入变量名可输出变量的内容

       x = 10
       print(x) #输出10
    • 使用f·string可选项来组合输出变量和字符串

       x = 10
       print(f"x的值是{x}") #输出为:x的值是10
    • 使用三连引号一次性输出多行内容

       print("""
       这是第一行
       这是第二行
       这是第三行
       """)
    • 字符串可使用加法和乘法

      加法:效果等同于strcat

      乘法:将字符串输出n次

    • repr()函数:显示字符串在print中打出的形式

      屏幕截图 2023-11-25 213205

  2. input():基础控制台输入

    首先将( )中的内容输入到控制台(console)中,然后向console返回stdin的输入内容

    返回值为一个字符串(可使用强制字符串转换函数变成其他数据类型)

    强制类型转换函数如int():将()变量数据类型转变为整形

    使用实例:x = int(input(“请输入一个数字”))

    • 一次输入多个内容,默认以空格分隔。使用split控制分隔符

       a,b = input("输入两个内容,以逗号分隔").split(",")

       

错误类型

  • SyntaxError 语法错误(代码不会运行)

  • RuntimeError 崩溃(代码运行中)

  • LogicalError 逻辑错误(代码完成运行,但得不到想要的结果)

  • TyoeError 类型错误(输入函数的数据类型与预设不符

 

变量

  • 使用“=”对变量进行赋值,新赋的值会覆盖旧的值,且无需考虑数据类型

  • 多变量赋值:a = b = c = 2 ; a, b, c = 1, 2, 3

  • 变量的作用域:变量的作用是有范围的,超出作用域后变量不可见

    • 函数外部定义的变量具有全局作用域

    • 函数内部定义的变量只能在函数内部起作用,而与其他函数中定义的同名变量无关

    • 在函数内部修改全局变量的值时需要先在函数内部声明该全局变量:global [变量名]

函数

  • 由两部分构成——header:定义函数的名称与传入的参数名

    |_body:包含函数执行的操作

  • 定义方式: def functionName([参数]):

    语句1

    语句2

    body中语句均需要缩进,当不在缩进表示函数结束

  • return返回:结束函数并返回return后的内容

    • 函数中不一定需要包括return(此时函数返回值为None)

    • return可用来返回一个或多个内容

    • return可以返回变量值,也可返回表达式值(表达式需使用括号包裹)

  • 函数组合:当出现函数嵌套的情况时,最先执行的是最内侧的函数

  • Helper functions:只用来做一件小任务的函数

 

导入库(包括函数,常数值,其它工具)

  • import [库名]

    调用第三方库前需使用pip或conda下载(优先使用pip,conda库不全)

  • 调用格式:XX.YY(库名.函数名)

 

数据类型

1. 常见内置数据类型

  • int

  • float(python中的float对应c中的双精度浮点double)

    分类:为一个对象赋值,其范围是离散的(对应数据类型int)

    回归:预测一个数,其范围是连续的(对应数据类型float)

  • bool:布尔值

    python中逻辑判断表达式的返回值数据类型为bool

  • type:类型——属于一种”类“的对象

    type有同名函数type():其返回值为括号内变量的数据类型

    48CA6A277F5B508F2A136B87945E53B0

    AC78D4B181AD69B349D6710246C88B80

    2. 其他数据类型

    • str字符串 _

    • list列表 |

    • tuple元祖 }—-底层实现都是arry数组

    • set集合 |

    • dict字典 –

      也可以用map映射实现

    • complexNum复数

    • function函数

    • module模块

       

    3.常用内置常数

    • True布尔真

    • False布尔假

    • None空(或空值)

image-20231121150926089

 

字符串

1. 单个字符索引:将字符串作为字符数组处理

image-20231121183012376

  • 索引值可以为负数:此时从字符串最后一位开始记计数

image-20231121183659156

字符串具有不可变性,因此s[0] = "H"是不合法的,会引发 TypeError

2. 字符串切片:用来获取字符串的一部分(子串)

使用索引来定义起始和结束的位置:

 s = "hello"
 print(s[1:4])  # 输出 "ell",从索引 1 到 3(左闭右开)

冒号左右不填入数值则使用默认数值:s[0:-1]

第三个参数:step步长

 s = "hello"
 print(s[::2])  # 先取走h,再隔一个取l,最后取走0,输出“hlo”

应用:翻转字符串

 s = "hello"
 print(s[::-1])  # 输出“olleh

3. 字符串相关内置函数

  • enumerate():枚举函数

    获取一个可迭代对象的“索引-值”键值对

    原型:enumerate(iterable, start=0)

    • iterable:可迭代对象

    • start:计数起始值,默认为0

    • 返回值:键值对(两个元素)

    屏幕截图 2023-11-25 220255

  • zip():拉链函数

    将多个可迭代对象的元素打包成元祖。特点是可以同时遍历多个对象,适合并行迭代

    原型:zip(iterable1, iterable2, …)

    • iterable:可迭代对象

    • 返回值:一个zip迭代器(每次迭代返回一个元祖)

      image-20231125223543906

    注意:

    • 如果提供的可迭代对象长度不一致,zip 会以最短的那个为准停止迭代

  • ord():返回字符对应ASCLL码

  • chr():返回ASCLL码对应字符

    image-20231125223837627

  • eval():评估函数

    用于返回字符串中表达式的运行结果

     x = 1
     result = eval('x + 1')
     print(result) # 结果为2

 

4. split与join:互为可逆的一对操作(方法)

split:将字符串分割并返回列表

join:将列表内容合并进字符串中

 

运算符

1. 常见内置运算符

  • a**b:a的b次方

  • a / b:a对b浮点除,返回值数据类型为float

  • a // b:a对b整除,返回值数据类型为int(小数部分舍弃)

  • a % b:用b对a取余,返回值数据类型为int,涉及负数时运算结果符号与b一致(与c语言不同,且不符合直觉)

    math库提供了一种符合c语言标准,且处理浮点数时精度更高的取余函数:

    math.fmod(a,b):用b对a取余,返回值数据类型为float,涉及负数时运算结果符号与a一致

 

2. 类型影响语义

运算符的效果有时受运算数据的数据类型影响

eg:int + int……相加 ; str + str……strcat(str1,str2)

 

3. 运算符优先级

结合律:加减乘除中从左到右运算,次方运算中从右到左运算

eg:4 - 3 - 2 = (4 - 3) - 2 ; 4 ** 3 ** 2 = 4 ** (3 ** 2)

 

4.逻辑运算符——由布尔值参与运算

  • and与运算:有一个F就返回F

  • or或运算:有一个T就返回T

  • not非运算:T返回F,F返回T

短路运算:但逻辑运算符左边的返回值已经足够返回结果了,就不会运行右边的表达式

 

5. 基本数学函数

  • abs():取绝对值

  • max/min(a, b, c,……):返回最大/最小值

  • pow(a, b):次方运算 <==> a**b

  • round(a[, n]):四舍五入到指定小数位

    • a:要四舍五入的数字

    • n:可选,表示要保留的小数位数。默认为0,即四舍五入到最接近的整数

    • 当四舍五入的数字位于中间值时(如对 2.5 进行四舍五入),Python 3 的 round 函数会将其四舍五入到最接近的偶数(所谓的“银行家舍入法”)。这是为了减少因四舍五入导致的累积误差。

    • 由于浮点数误差,round存在精度丢失(如:round(2.354, 2)返回2.36)

      2F0A73A2195A70D007F0EEA5A1D16044

选择语句

1. if-elif-else

  • 相当于c中的if-elseIf-else

2. Match-case

  • 相当于c中的switch-case

  • 用case _ 来代替default(不是必须的)

  • 一个case可以设置多个匹配条件,每个条件用 | 隔开( | 相当于or)

  • match可以使用多种匹配模式:

 

循环语句

range():用来生成一个整数序列,返回的是一个可迭代的“range”对象

range 函数可以有一到三个参数

  1. 一个参数:range(stop):生成从 0 到 stop-1 的整数序列。 eg:range(3) 生成 0, 1, 2。

  2. 两个参数:range(start, stop):生成从 start 到 stop-1 的整数序列。 eg:range(1, 4) 生成 1, 2, 3。

  3. 三个参数:range(start, stop, step):生成从 start 开始,以 step 为步长,到 stop-1 结束的序列。 eg:range(1, 8, 2) 生成 1, 3, 5, 7。

ps:range(a, b)遵循左闭右开

in关键字:用于测试序列(如列表、元组、字符串等)中是否包含某个特定的元素,或者字典中是否包含特定的键,返回值为布尔值

 # 列表成员资格测试
 if 'apple' in ['banana', 'apple', 'orange']:
  print("Apple is in the list")
 ​
 # 字符串成员资格测试
 if 'a' in 'cat':
  print("The letter a is in the word cat")
 ​
 # 字典键测试
 my_dict = {'name': 'Alice', 'age': 25}
 if 'name' in my_dict:
  print("Name is one of the keys in the dictionary")

1. for循环语句

for用于遍历序列(如列表、元组、字符串等)或其他可迭代对象的每个元素

 # 基础语法
  for element in iterable:
  pass
  • element 是变量,它代表 iterable 中当前的元素。 iterable 是一个序列或任何其他可迭代对象。

  • 每次迭代中,element 会被赋值为 iterable 中的下一个元素,然后执行代码块。

 # 遍历列表
 for number in [1, 2, 3]:
     print(number)
 ​
 # 遍历字符串
 for letter in "hello":
     print(letter)
 ​
 # 使用 range() 生成数字序列
 for i in range(5):
     print(i)

2. while([条件])循环语句

  • 当“条件”表达式的返回值为True时执行while中的指令

    • “条件”表达式的返回值可以是任何数据类型,python会将其自动转化成bool值

    • 非零,非空对象都被视为True

  • 可以将else语句与while组合使用:当循环条件变为假时执行else块

  • 可以用break与continue进行循环控制

 

python的空值

“无形”空

  • 缩进:tab(等同于四个空格)

  • 转义:在字符串中出现

    • \:\n \t等

    • %:格式控制符

“有形”空

  • None NoneType数据类型的唯一值,是一种被定义的空(c中的Null是一个空指针宏,不能等同于python中的None)

    • 用于表示变量没有被赋予任何具体值。

    • 通常用于函数中,表示函数没有明确的返回值。

    • 在对象引用中,用于表示“空”或“不存在”的对象

    image-20231125224903929

  • pass:表示做一条“啥都不做”的指令,但不等于“不做”

 

基础文件操作

  • open():打开文件

    原型:open(file, mode)

    • file:文件名

    • mode:打开模式 -> 决定了文件对象的功能

    • 返回值:文件对象

      文件打开模式:

      r:以字符串形式只读

      rb:以二进制形式只读

      w:覆盖写入

      a:追加写入

  • close():关闭文件

 

hash与id函数

hash哈希函数

哈希值:将任意长度的输入转化成一个固定长度的输出,该输出即为哈希值

注意:

  • 对于同一输入,哈希算法总是返回同一个固定的哈希值

  • 从哈希值不能反推出原始输入

原型:hash(obj, /) 用于返回给定对象的哈希值

注意:

  • 大多数内置数据类型都是可哈希对象

  • 在同一程序运行期间,对象的哈希值不会发生改变

  • 不能够手动更改一个对象的哈希值(虽然这么做时解释器不会报错)

  • 不能返回一个可变元素的哈希值(如列表)>可变元素:在发生更改后内存地址不变的元素

  • python3中哈希的相关变量:

    • 哈希对象的内存地址——进程重启时有时复用原进程地址,有时重新分配

    • 哈希种子——总是在进程重启时重置

哈希碰撞:有小概率会出现两个不同的对象拥有相同的哈希值,此时称这两个哈希值发生了哈希碰撞。 因为哈希碰撞的存在,不能从哈希值反推出对象。 两个对象相同,那么他们的哈希值一定相同,但哈希值相同,对应对象不一定相同

id函数

用于返回一个对象的特征值(在CPython中这个特征值是对象的内存地址)

CPython:由c语言实现的python解释器。作为官方实现,CPython是最广泛使用的Python解释器

 

assert():断言函数(用于程序调试)

在括号中的表达式为假时,程序将报错:AssertError

为真时,该条命令等同于pass

标签:函数,Python,数据类型,基础,语法,字符串,哈希,print,返回值
From: https://www.cnblogs.com/Halit/p/17856313.html

相关文章

  • python task2
    python(二)数据类型和操作基本类型整数Integer(int)浮点数Float布尔值Boolean(bool)类型Type字符串String(str)列表List元组Tuple集合Set字典Dictionary(dict,或者映射map)复数ComplexNumber(complex)函数Function模块Module常用内置常数python内置了一......
  • Day05 语法
    1.注释单行注释//注释多行注释/*注释*/文档注释/**注释*/2.标识符命名规则(与js规则一样)标识符可以含有字母,数字,下划线_,(*注意此处相较于c语言多出一个符)不能以数字开头不能是java中的保留字和关键字java也采用了unicode编码方式,所以......
  • Python GUI 开发过程中踩过的坑总结
    1、在使用pycharm开发运行时,ide会默认添加python文件和资源文件到python路径中去,所以通常不会报错,但是默写情况则会出现报错,如模块加载不到其他模块的问题。在手动创建项目工程目录结构时,需要将指定的python文件存放目录设定为【sourcesroot】,然后在该目录下在创建目录时要创建......
  • 使用 NSIS 将 Python 程序制作成 Windows 环境下的安装程序(安装包)
    转载于:https://www.freesion.com/article/1583987771/#1_NSIS__6NSIS官网下载:https://nsis.sourceforge.io/Main_Page首先,需要使用PythonPyInstaller模块将Python程序制作成可直接运行的EXE程序。(可以不要-F参数)将我们所需的、打包好的windowdemo目录(文件夹)压索成.zip......
  • python
    python注释1.单行注释:#2.多行注释:用‘’‘或“”“包裹起来(头尾都是三个标)基础语法1.print​ 普通输出每次print后自动换行​ 若不想换行print(”。。。。。“,end="")​ 可一次输出多个内容print(”AB","A")输出ABA​ print(”AB","A",sep="*")sep改两个输......
  • python 中实现对列表中各元素的个数进行统计
     001、方法1>>>list1=["aa","aa","bb","aa","cc","cc"]##测试列表>>>list1.count("aa")##借助内置函数输出单个元素的次数3>>>s......
  • 聪明办法学Python task03 & task04
    聪明办法学Python学习笔记chapter2数据类型和操作DataTypesandoperator常用内置类型BuiltinTypes在本节中,我们将要见到这些基本类型:整数Integer(int)浮点数Float布尔值Boolean(bool)类型Type(是的,“类型”也是种类型!)严格的来说,Type是一种类的对象,Python是......
  • SQL 中的运算符与别名:使用示例和语法详解
    SQL中的IN运算符IN运算符允许您在WHERE子句中指定多个值,它是多个OR条件的简写。示例:获取您自己的SQLServer返回所有来自'Germany'、'France'或'UK'的客户:SELECT*FROMCustomersWHERECountryIN('Germany','France','UK');语法:SELECTcolumn_name(......
  • 2023-2024-1 20231410刘珈岐 《计算机基础与程序设计》第9周学习总结
    2023-2024-120231410刘珈岐《计算机基础与程序设计》第9周学习总结作业信息这个作业属于哪个课程(https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP)这个作业要求在哪里(https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08))这个作业的目标自学教材《......
  • 大数据分析/机器学习基础之matplotlib绘图篇
    目录一、前言我的运行环境二、什么是matplotlib?三、安装及导入四、matplotlib的使用一、前言本人因在学习基于python的机器学习相关教程时第一次接触到matplotlib相关方面的绘图知识,故写此笔记进行记录,如果能帮助到其他人欢迎点个赞......