Python导论、数据类型、运算、I/O

Python导论

Python是一门脚本语言,其扩展名为.py。脚本语言是被逐句解释执行的,此过程依赖于解释器。Python的解释器有CPython、Pypy等。

程序构成

Python程序由模块、语句、表达式、对象组成。

  • 模块:每个.py源代码文件即为模块,系统自带的模块为系统模块,用户编写的模块为用户模块。模块由若干语句构成。

  • 语句:分为简单语句和复合语句。注意Python语句严格强调缩进,否则会导致语法错误。

    • 简单语句:一般地,每条简单语句独占一行。若一行内有多条语句,则其之间使用;分隔。包括表达式、赋值、pass(空语句)、delreturnbreakcontinueimportglobal等。
    • 导入模块(import)语句:import [module]from [module] import [name]。前者导入后使用模块名.成员名调用,后者导入后使用成员名调用。
    • 复合语句:有多行代码组成的语句,包括ifwhilefordeftrywithclass等。由头部语句与构造体语句块组成,其中:表示复合语句中语句块的开始。构造体语句块相对于头部语句块有缩进。
    • 注释:分为注释语句与注释块,解释时跳过此语句/块。#开头的语句为注释语句,被'''包围的块为注释块。
  • 对象:Python中万物皆对象,对象通过标识、类型、值进行标识。

    • 标识:唯一地标识对象,id([name])返回对象标识,CPython中表示对象的内存地址。
    • 类型:对象的数据类型,type([name])返回对象的数据类型。
    • 值:对象的实际值,print([name])返回对象的实际值。

    ==判断两个对象的值是否相同,is判断两个对象的标识是否相同(是否指向同一个对象)。

数据类型

类型描述
数字
不可变对象
整数(int),任意精度
浮点数(float),有限精度小数
布尔 (bool):False(0)为假,True(非0)为真
复数 (complex):如4+3j(以j/J结尾表示复数)
字符串(str,' '/" ")
不可变对象
由任意数量的字符组成
元组(tuple,( ))
不可变对象
不可变的序列,可随机访问
序列中元素可为任意数据类型
列表(list,[ ])
可变对象
可变的序列,可随机访问
序列中元素可为任意数据类型
相当于C++的数组/vector
集合(set,{ })
可变对象
不重复的无序序列,不能随机访问
序列中元素必须为不可变对象,且可被哈希
相当于C++的unordered_set
字典(dict,{key:value})
可变对象
不重复的键值对(Key->Value)序列,必须只访问存在的键
若存在多个重复键,则只保留最后一个
键必须为不可变对象,且可被哈希
相当于C++的map
(但C++map重复insert时,多个重复键为保留第一个)

赋值

Python是动态语言,变量无需显式声明,通过赋值可自动确定数据类型。

  • 赋值语句:标识符=对象=为赋值运算符,用于将标识符指向某个对象(引用该对象)。
  • Python支持链式赋值语句:标识符1=标识符2=对象,对象从右到左依次传递。
  • 使用del删除标识符:del 标识符
  • 序列解包赋值:Python可将序列解包为对应相同个数的变量,如a,b=b,a。若想解包部分值,可使用特殊变量_(相当于其他语言中的ignore:_,b=1,2)。

运算

算术运算

  • 四则运算:+,-,*,/(小数),//(整除)

  • 取模:%(注意Python是取模不是取余)

  • 位运算:~&^|<<>>

  • 乘方:**/math.pow/pow

  • 自然底数:math.exp

  • 对数:math.log(不指定底数则为ln⁡\lnln)/math.log10(lg⁡\lglg)/math.log2

  • 三角及反三角函数:math.sin/math.cos/math.tan/math.asin/math.acos/math.atan

逻辑运算

  • 非:not
  • 与:and
  • 或:or

关系运算

  • ==,!=,>,>=,<,<=,is,is not
  • innot in:表示左值是否在右值中(右值为容器)

I/O

输入(input函数)

  • 构造:input(["提示"])([]内表示可选参数)

  • 作用:从stdin获取输入,返回所输入的字符串(str),可将字符串转为需要的数据类型,如a=int(input())

  • 若要输入带有提示,则向input传递提示字符串参数。

  • 输入的字符串可使用字符串的分割方法(str.split()),进而传递给多个标识符。
    a,b=map(int,input().split([sep=None]))(map表示批量作用,split默认以空格分割)

输出(print函数)

  • 构造:print(obj[,sep=' ',end='\n',file=stdout])
  • obj:所要输出的对象
  • sep:若输出多个对象,指定对象间的分隔符(默认为空格)
  • end:输出行尾结束符(默认为\n)
  • file:指定输出到的文件(默认为stdout)

格式化输出

格式化输出有f-string、str.format()、%格式化三种方法,在此仅介绍f-string方法。

print(f"{对象名:格式说明}")
示例说明
{value:10}宽度10,默认右对齐,空格填充
{value:<10}宽度10,左对齐
{value:^10}宽度10,居中对齐
{value:0>10}宽度10,右对齐,0填充
{value:.2f}浮点数,小数点后保留2位
{value:,.2f}加千分位符,保留2位
{value:.0%}百分比格式,四舍五入到整数百分比
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值