首页 > 编程语言 >第二课堂笔记:python入门

第二课堂笔记:python入门

时间:2024-07-17 18:41:33浏览次数:13  
标签:myfunc return 入门 python else 参数 字符串 第二课堂 def

数据类型和操作

python的常见数据类型

标准数据类型

不可变数据

  • Number(数字)
  • String(字符串)
  • Tuple(元组)

可变数据

  • List(列表)
  • Set(集合)
  • Dictionary(字典)

其他

  • Type(类型)
Number
  1. int(整数)

    离散的数据类型

  2. float(浮点数)

    • 浮点数误差:

      ​ 精确计算浮点数

      import decimal
      a = decimal.Decimal('0.1')
      b = decimal.Decimal('0.2')
      print(a + b) # 0.3(字符对象,不能直接与浮点数比较)
      
    • 科学计数法(E记法)

      4e-05(4乘10的负五次方)即0.00004

  3. bool(布尔数)

    • 可当作整型对待,True相当于1,False相当于0

    • False:

      • 定义为False的对象(None, False)

      • 值为0的数字类型:0,0.0,0j,Decimal(0),Fraction(0, 1)(分子0,分母1的有理数)

      • 空的序列和集合:'', (), [], {}, set(), range(0)

  4. complex(复数)

    x = 1+2j
    x.real # 获取实部数值(浮点数
    x.imag # 获取虚部数值(浮点数
    

python的运算

运算符

  • 算术:+, -, *, @, /, //(地板除,向下取整), **, %, - , +
  • 关系:<, <=, >=, >, ==, !=
  • 赋值:+=, -=, *=, /=, //=, **=, %=
  • 逻辑:and, or, not

其他运算操作

  • abs(x) # 绝对值
  • complex(re, im) # 返回一个复数
  • c.conjugate() # 返回c的共轭复数
  • divmod(x, y) # 返回(x // y, x % y)
  • pow(x, y) #计算x的y次方,同x ** y

变量和函数

变量(variables)

变量命名规则

  • 必须以字母或下划线(_)开头

  • 命名可由字母、数字和下划线组成

  • 大小写敏感

  • 尽量避免使用保留字命名

    • 查询保留字

      import keyword
       
      keyList = keyword.kwlist
      print(keyList)
       
      >>> ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 
          'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally',
           'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal',
           'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
      

函数(Functions)

创建和调用

def myfunc(): # 创建
	pass # 空语句,常用作占位符
	
myfunc() # 调用

参数

def myfunc(x): # 创建
	print(x)
	
myfunc(12) # 调用

>>>12

位置参数

def myfunc(x, y, z): # 创建
	return "".join(z, y, x)
	
myfunc(1, 2, 3) # 调用

>>>3, 2, 1

关键字参数

  • 调用函数时明确传入变量给到哪个参数
  • 位置参数必须在关键字参数之前
def myfunc(x, y, z): # 创建
	return "".join(z, y, x)
	
myfunc(x = 1, y = 2, z = 3) # 调用

>>>3, 2, 1

默认参数

  • 定义函数时预设参数的值,如果调用函数时没有给该参数传递值,则该参数默认采用预设的值

  • 默认参数必须在最后

    def myfunc(x, y, z = 3): # 创建
    	return "".join(z, y, x)
    	
    myfunc(x = 1, y = 2) # 调用
    
    >>>3, 2, 1
    

收集参数

将参数打包为元组
def myfuc(*args):
	print(args)
	
myfunc(1, 2, 3, 4, 5)

>>>(1, 2, 3, 4, 5) # 元组
def myfuc():
	return 1, 2, 3

myfunc()

>>>(1, 2, 3) # return多个值时函数自动将它们打包为元组
  • 如果在收集参数后面需要其他参数,需要用关键字参数指定其他参数

    def myfuc(*args, a, b):
    	print(args, a, b)
    	
    myfunc(1, 2, 3, a = 4, b = 5)
    
    >>>(1, 2, 3, 4, 5)
    
将参数打包为字典
def myfuc(**kwargs):
	print(kwargs)
	
myfunc(a = 1, b = 2, c = 3)

>>>{'a':1, 'b':2, 'c':3}

此时必须使用关键字参数

解包参数

解包元组
args = (1, 2, 3, 4)
def myfunc(a, b, c, d)
	print(a, b, c, d)
	
myfunc(*args)

>>>1 2 3 4
解包字典
kwargs = {'a':1, 'b':2, 'c':3, 'd':4}
def myfunc(a, b, c, d)
	print(a, b, c, d)
	
myfunc(**args)

>>>1 2 3 4

Tips

  • 使用help()查看函数文档时,常在函数原型中看到"/"

    abs(x, /)
    sum(iterable, /, start=0)
    

    "/"左边的参数必须传递位置参数,右侧随意

    自定义函数也可以使用这个语法

    def abc(a, /, b, c)
    
  • 接上,"*"右边只能是关键字参数

返回值

return 2x

执行完return语句后,函数立即返回,不执行return后面的语句

如果没有return,函数会自行返回None

作用域问题

global:在函数内引用全局变量的值,即不生成同名局部变量

nonlocal:在函数内引用全局变量的值,并有修改该变量的值的权限

global x
nonlocal x

当函数嵌套使用时,内层函数仍无法直接修改外层函数的变量,但可以引用外层变量的值

条件

if

判断条件成立,则运行其包含的语句或代码块

if-else

判断条件成立,则运行其包含的代码块,不成立则执行另外的语句或代码块

if-elif

多个条件,一个不成立就判断另一个

if-elif-else

在上一类的基础上,如果所有条件都不成立,则执行另外的代码

条件表达式

条件成立时执行的语句 if condition else 条件不成立时执行的语句

if-else

a = 3
b = 5
small = a if a < b else b

if-elif-else

score = 66
level = ('D' if 0 < score < 60 else
         'C' if score < 70 else
         'B' if score < 80 else
         'A' if score < 100 else
         "请输入0-100之间的数")

while循环

while condition is True:
	statement(s)
	if condition:
		break
	else: continue
else:

break 语句

跳出循环体

continue语句

跳出循环体并回到循环体的判断位置

else语句

当循环正常结束时,进行else语句

for循环

for variable in 可迭代对象:
	statement(s)

可迭代对象

可依次取出元素的对象

  • 序列(字符串,列表,range()

range()

  • range(n):从0开始的n个数字
  • range(m, n):前闭后开的区间(开始的数字,结束的数字)
  • range(m, n, l): l为步长,即每两个数之间相差的数
  • 步长可以为负数,如range(10, 5, -2)

字符串

编写方式

  • 单引号

  • 双引号

    如果字符串内需要使用单/双引号,可用另一种引号包裹字符串

    也可使用转义字符

  • 三引号

原始字符串

在字符串前加"r",使字符串内的转义字符不再有效

跨行字符串

  • 在每一行的末尾加上一个"\"
  • 用’‘’ ‘’‘或”“” “”“包裹字符串

方法

大小写切换

  • (x.)capitalize(): 基于原字符串生成一个新字符串,其首字母为大写,其余为小写
  • (x.)casefold(): 全小写(不止英文
  • (x.)title(): 将每个单词的首字母变成大写,其余变小写
  • (x.)swapcase(): 大小写反转
  • (x.)upper(): 全大写
  • (x.)lower(): 全小写(仅限英文

左中右对齐

  • center(width, fillchar=' '):若宽度不足则以空格(默认,可更改)补充,使字符串居中
  • ljust(width, fillchar=' '):若宽度不足则以空格(默认,可更改)补充,使字符串居左
  • rjust(width, fillchar=' '):若宽度不足则以空格(默认,可更改)补充,使字符串居右
  • zfill(width):以0填充左侧

查找

  • count(sub[, start[, end]]): 查找子字符串在字符串内出现的次数,可选参数限制查找范围
  • find(sub[, start[, end]]): 定位子字符串在字符串中的下标索引值,从左往右,如果找不到,返回-1
  • rfind(sub[, start[, end]]): 定位子字符串在字符串中的下标索引值,从右往左,如果找不到,返回-1
  • index:与find相似,但找不到会报错
  • rindex:与rfind相似,但找不到会报错

替换

  • expandtabs([tabsize=8]):用空格代替制表符并返回新的字符串,参数指定一个tab等于多少空格

  • replace(old, new, count=-1):old替换为new,count指定次数

  • translate(table):根据转换规则的表格替换字符串内字符,返回新字符串

    x = "I love A"
    x.translante(str.maketrans("ABCDEFG", "1234567", love(指定的忽略内容)))
    
    >>>"I 1"
    

判断

  • startswith(prefix[, start[, end]])
  • endswith(suffix[, start[, end]])
  • isupper()
  • islower()
  • istitle()
  • isalpha()
  • isascii()
  • isspace()
  • isprintable()
  • isdecimal()
  • isdigit()
  • isnumeric()
  • isalnum()
  • isdentifier()

截取

  • strip(chars=None)
  • lstrip(chars=None)
  • rstrip(chars=None)
  • removeprefix(prefix)
  • removesuffix(suffix)

索引和切片

与列表相同

格式化字符串

"1 + 2 = {}, 2*2 = {}".format(1+2, 2*2)

>>>'1 + 2 = 3, 2*2 = 4'


"1 + 2 = {1}, 2*2 = {0}".format(2*2, 1+2)

>>>'1 + 2 = 3, 2*2 = 4'

位置参数

"{0}{0}{1}{1}".format("y", "n")

>>>'yynn'

关键字参数

"life is {a}, you need {b}".format.(a = "short", b = "Python")

>>>'life is short, you need Python'

标签:myfunc,return,入门,python,else,参数,字符串,第二课堂,def
From: https://www.cnblogs.com/Melnis/p/18308090

相关文章

  • [oeasy]python0025_ 顺序执行过程_流水_流程_执行次序
    顺序执行过程_流水_流程_执行次序......
  • python 中深浅拷贝
    #等号赋值#l0=[1,3,5]#l2=[1,3,5]#l0.append(7)#print(l0,l2)#print(l0==l2,l0isl2,id(l0),id(l2))#等号赋值:直接赋予内存地址两个变量最终还是同一个内存地址#修改一个另一个同步更改#l0=[1,3,5]#l2=l0#l0.append(7)#pri......
  • Clarke-Wright节约算法详解与Python代码示例
    Clarke-Wright节约算法详解与Python代码示例一、算法详解Clarke-Wright节约算法(简称C-W算法),也称为节约里程法或节约算法,是由Clarke和Wright于1964年提出的一种启发式算法。该算法主要用于解决车辆路径问题(VehicleRoutingProblem,VRP),特别是在运输车辆数目不确定的情况下......
  • 小一保姆级 Python 文件操作与管理详解
    Python文件操作与管理在Python编程中,文件操作是日常任务中不可或缺的一部分。本文将介绍Python中三个重要的文件相关模块和功能:open函数、json与pickle库、以及os模块的使用。1. open 函数的使用Python中的open函数是用来打开文件的核心函数。它提供了多种......
  • 【Python】从基础到进阶(四):深入了解Python中的控制流
    ......
  • 【Python】CSS与选择器
        ......
  • python gradio 页面控件
    1、textbox的使用importgradioasgrimportrequestsdefmobile(mobilephone):url='https://api.oioweb.cn/api/common/teladress?mobile='+str(mobilephone)headers={}payload={}response=requests.request("GET",url,......
  • 从零开始学Python第一天:基础知识
    前言在这个信息爆炸的时代,编程技能已经成为我们生活和工作中不可或缺的一部分。而Python,作为一门简洁易读、功能强大的编程语言,正逐渐受到越来越多人的青睐。作为初学者,你可能会对编程充满好奇与期待,同时也有一些担忧和困惑。但是请相信,只要你愿意付出努力和时间,Python的......
  • 为什么都提倡学Python?这10大特性你一定要清楚!
    前言在了解Python的特性之前,我们首先要了解Python编程语言是什么。Python编程语言是世界上发展最快的编程语言。这一高级通用编程语言提供了广泛的实际应用,并且是一种非常流行的认证。Python可以让程序员更加高效地工作和集成系统。Python的语法优先考虑了可读性,同......
  • python tkinter 界面设计(1)
    pythonGUI设计tkinter模块tkinter是一个开发源码的图形接口开发工具,目前已经已经一直到python内建的模块。下面从窗体开始慢慢开始整理,图1,查看tkinter版本,8.5以后得版本功能比较健全。图2,创建窗体。 图3-图5,是对窗体的属性设置。  有需要了解更多内容的小伙伴,可......