首页 > 编程语言 >python基础

python基础

时间:2023-01-16 17:33:54浏览次数:41  
标签:语句 函数 python 可以 基础 Python 循环 参数

python基础

数据类型和变量

Python支持多种数据类型,在计算机内部,可以把任何数据都看成一个“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来。

对变量赋值x = y是把变量x指向真正的对象,该对象是变量y所指向的。随后对变量y的赋值不影响变量x的指向。

注意:Python的整数没有大小限制,而某些语言的整数根据其存储长度是有大小限制的,例如Java对32位整数的范围限制在-2147483648-2147483647

Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。

字符串和编码

Python 3的字符串使用Unicode,直接支持多语言。

strbytes互相转换时,需要指定编码。最常用的编码是UTF-8。Python当然也支持其他编码方式,比如把Unicode编码成GB2312

>>> '中文'.encode('gb2312')
b'\xd6\xd0\xce\xc4'

但这种方式纯属自找麻烦,如果没有特殊业务要求,请牢记仅使用UTF-8编码。

格式化字符串的时候,可以用Python的交互式环境测试,方便快捷。

使用list和tuple

list和tuple是Python内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。

条件判断

条件判断可以让计算机自己做选择,Python的if...elif...else很灵活。

条件判断从上向下匹配,当满足条件时执行对应的块内语句,后续的elif和else都不再执行。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# 注意:
# input()返回的是字符串
# 必须通过int()将字符串转换为整数
# 才能用于数值比较:
age = int(input('Input your age: '))

if age >= 18:
    print('adult')
elif age >= 6:
    print('teenager')
else:
    print('kid')

循环

循环是让计算机做重复任务的有效的方法。

break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用。

要特别注意,不要滥用breakcontinue语句。breakcontinue会造成代码执行逻辑分叉过多,容易出错。大多数循环并不需要用到breakcontinue语句,许多情况下都可以通过改写循环条件或者修改循环逻辑,去掉breakcontinue语句。

有些时候,如果代码写得有问题,会让程序陷入“死循环”,也就是永远循环下去。这时可以用Ctrl+C退出程序,或者强制结束Python进程。

使用dict和set

使用key-value存储结构的dict在Python中非常有用,选择不可变对象作为key很重要,最常用的key是字符串。

函数

调用函数

调用Python的函数,需要根据函数定义,传入正确的参数。如果函数调用出错,一定要学会看错误信息,所以英文很重要!

定义函数

定义函数时,需要确定函数名和参数个数;

如果有必要,可以先对参数的数据类型做检查;

函数体内部可以用return随时返回函数结果;

函数执行完毕也没有return语句时,自动return None

函数可以同时返回多个值,但其实就是一个tuple。

函数的参数

Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。

默认参数一定要用不可变对象,如果是可变对象,程序运行时会有逻辑错误!

要注意定义可变参数和关键字参数的语法:

*args是可变参数,args接收的是一个tuple;

**kw是关键字参数,kw接收的是一个dict。

以及调用函数时如何传入可变参数和关键字参数的语法:

可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过*args传入:func(*(1, 2, 3))

关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过**kw传入:func(**{'a': 1, 'b': 2})

使用*args**kw是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。

命名的关键字参数是为了限制调用者可以传入的参数名,同时可以提供默认值。

定义命名的关键字参数在没有可变参数的情况下不要忘了写分隔符*,否则定义的将是位置参数。

递归函数

使用递归函数的优点是逻辑简单清晰,缺点是过深的调用会导致栈溢出。

针对尾递归优化的语言可以通过尾递归防止栈溢出。尾递归事实上和循环是等价的,没有循环语句的编程语言只能通过尾递归实现循环。

Python标准的解释器没有针对尾递归做优化,任何递归函数都存在栈溢出的问题。

高级特性

切片

>>> 'ABCDEFG'[:3]
'ABC'
>>> 'ABCDEFG'[::2]
'ACEG'

迭代

任何可迭代对象都可以作用于for循环,包括我们自定义的数据类型,只要符合迭代条件,就可以使用for循环。

列表生成式

例子
>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]

标签:语句,函数,python,可以,基础,Python,循环,参数
From: https://www.cnblogs.com/ryujinx/p/17055960.html

相关文章

  • Java面向对象程序设计基础知识
    Java面向对象程序设计Java基础语法类(class):类是一个模块,描述一类对象的行为和状态对象:类的一个实例,有状态和行为,例如:一条狗是一个对象,它的状态有:颜色、名字、品种;行......
  • python2.7错误:Microsoft Visual C++ 9.0 is required解决办法
     distutils.errors.DistutilsPlatformError:MicrosoftVisualC++9.0isrequired.Getitfromhttp://aka.ms/vcpython27`点开连接404,不提供下载,可取github上下载htt......
  • 神经网络基础部件-损失函数详解
    本文总结分类和回归任务的常用损失函数,比如重点解析了交叉熵损失函数的由来,并给出详细计算公式和、案例分析、代码,同时也描述了MAE和MSE损失函数,给出了详细的计算公式......
  • Linux安装Python3
    Linux安装Python3安装依赖包首先安装gcc编译器,gcc有些系统版本已经默认安装,通过gcc--version查看,没安装的先安装gcc:yum-yinstallgcc安装其它依赖包yumins......
  • Appium+Python UI自动化框架
    importdatetimefromappium.webdriver.common.touch_actionimportTouchActionfromappiumimportwebdriverfromselenium.webdriver.common.byimportByfromtimeimp......
  • python random模块
    random()函数random()函数可以随机生成一个[0,1)的浮点数。例如importrandomprint(random.random())0.7258069853437111randint(a,b)函数randint(a,b)函数可以......
  • buuctf 文件中的秘密1 乌镇峰会种图 1 基础破解1
    解压缩后,得到一张路飞的图片,根据提示,文件中,我们可以看它的属性,点击详细信息即可看到,备注:flag{870c5a72806115cb5439345d8b014396}还是一张图,看详细信息,没啥用,索性就用老工......
  • python 引用
    >>>a=256>>>id(a)139840231892864>>>b=256>>>id(b)139840231892864>>>id(a)==id(b)True>>>a=257>>>id(a)139840094039632>>>b=257>>>id(b)1398400......
  • 矩阵相乘以及矩阵基础知识
    总忘,记一下【向量的定义】向量可以形象化为一个有长度的箭头,或是一个有序的数组,它定义在一组基坐标系中,满足可加性以及缩放性【坐标系及基向量】每当我们用数字......
  • Servlet2 - 基础关系
    Servlet的继承关系继承关系javax.servlet.Servlet接口javax.servlet.GenericServlet抽象类javax.servlet.http.HttpServlet抽象类相关方法--重点查看se......