python学习笔记一

程序是什么

人与计算机对话的语言;人通过程序下命令,由计算机完成命令。

人机交互方式

  • 输入文字

  • 操作图形界面

  • 输入语言

  • 指点触摸屏

  • 拨动游戏杆

  • 虚拟现实技术

程序设计语言的发展:从机械编程到高级语言

计算思维:如何用程序解决问题

使用程序思维来思考问题

主要特征:

Python语言程序是分行的,每行做一件事情,称为“语句”,从上到下顺次做;

语句与行与行之间必须左对齐;

有些语句(如if、else、while)的末尾是冒号“:”,这样,下面的若干行就都要缩进4个空格,而且这些缩进的语句也必须左对齐;

符号“#”后面的内容是程序里的备注或者注释,对语句没有影响。

#输入某年某月某日,判断这一天是这一年的第几天
import datetime;

dtstr = input('Enter the datatime :(20170228):')
dt = datetime.datetime.strptime(dtstr,"%Y%m%d")
another_dtstr = dtstr[:4] +'0101'
another_dt = datetime.datetime.strptime(another_dtstr,"%Y%m%d")
print(int((dt-another_dt).days) + 1)

运行结果
Enter the datatime :(20170228):20170228
59

进程已结束,退出代码0

注意对齐和缩进

注意字母大小写、空格

注意左右括号的配对

#输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
import string

s =input('input a string:')
letter = 0
space = 0
digit = 0
other = 0
for c in s :
    if c.isalpha():
        letter+=1
    elif c.isspace():
        space += 1
    elif c.isdigit():
        digit += 1
    else:
        other+= 1
print('There are %d letters,%d space,%d digits \ and %d other characters in your string.'\
      %(letter,space,digit,other))

input a string:dontlike0101
There are 8 letters,0 space,4 digits \ and 0 other characters in your string.

进程已结束,退出代码0

代码强制缩进

python的强制缩进规范完成了关键部分

需要良好的编程规范

  • 变量、函数、类命名

  • 注释和文档

  • 一些编程上的良好风格

数据对象及其组织

什么是数据

数据是信息的表现形式和载体

对现实世界实体和概念的抽象

大数据:海量、可证性等

多种多样的数据类型

描述事物大小、次序的数值类型

描述事物各方面特性的文本字符串类型

描述事物时间属性的日期时间类型等

复杂数据类型:图像、音频、视频等

简单类型用来表示值

整数int、浮点数float、复数complex、逻辑值bool、字符串str

容器类型用来组织这些值

列表list、元组tuple、集合set、字典dict

数据类型之间几乎都可以转换

对数据进行组织

对大量的数据进行处理的时候,需要建立各种各样的数据组织,以便提高计算效率

组织方式

  • 没有组织

  • 标签是组织数据

  • 队列、栈、树、图等

计算和控制流

计算与流程

对现实世界处理和过程的抽象

各种类型的数据对象,可以通过各种运算组织成复杂的表达式

运算语句

将表达式赋值给变量进行引用

赋值语句用来实现处理与暂存

  • 表达式计算

  • 函数调用

  • 赋值

控制流语句

对数据进行组织,用来组织语句描述过程

  • 顺序结构

  • 条件分支:if

  • 循环结构:for、while

定义语句

def、class

定义语句也用来组织语句,吧一系列运算语句集合起来给一个名字

描述了一个包含一系列处理过程的计算单元,主要为了源代码的各种复用

可以定义函数、类等“代码”对象

调用函数或者类,也可以得到数据对象,python里所有可调用的事物称为callable

  • 函数定义

  • 类定义

数据类型/基本类型:数值

整数类型

最大特点是不限制大小

无论多么复杂的算是都可以直接得到结果

运算符

功能

备注

m+n

加法

m-n

减法

m*n

乘法

m//n

整数除法

结果就是商的整数部分

m/n

除法

“真”除法,得到小数

m%n

求余数

divmod(m,n)

求整数除法和余数

会得到两个整数,一个是m//n,另一个是m%n

m**n

求乘方

整数m的n次方

abs(m)

求绝对值

大小比较

m==n

相等比较

m是否等于n

m>n

大于比较

m是否大于n

m>=n

大于或者等于比较

m是否大于或者等于n

m<n

小于比较

m是否小于n

m<=n

小于或者等于比较

m是否小于或者等于n

连续比较判断

数的进制

通常用的是十进制是0-9,十个不同符号

逢十进一

十进制

0

1

2

3

4

5

6

7

8

二进制

0

1

10

11

100

101

110

111

1000

八进制

0

1

2

3

4

5

6

7

10

十六进制

0

1

2

3

4

5

6

7

8

十进制

9

10

11

12

13

14

15

16

17

二进制

1001

1010

1011

1100

1101

1110

1111

10000

10001

八进制

11

12

13

14

15

16

17

20

21

十六进制

9

a

b

c

d

e

f

10

11

整数的各种进制表示

  • python语言中可以直接用二进制、八进制和十六进制来表示整数,只要加一个前缀用以标识几进制即可

进制

表示

例子

十进制decimal

无前缀数字

367

二进制binary

0b前缀

0b101101111

八进制octal

0o前缀

0o557

十六进制hexadecimal

0x前缀

0x16f

浮点数类型

浮点类型float

操作与整数类似

浮点数受到17位有效数字的限制

特点

  • 科学计数法

  • 有效位数

特性

进制转换导致精度误差

复数类型

复数生成

python内置复数数据类型

复数运算

支持所有常见计算

复数比较

复数之间只能比较是否相等

复数应用

求平面上两点之间的距离

更多的数学函数

math模块

数字常数

圆周率、自然对数的底e等

数学函数

三角函数、对数、最大公约数、最小公倍数等

cmath模块

专门面向复数计算

math模块中的数学函数只能用于计算整数和浮点数,对于复数就无能为力了

平面直角坐标和极坐标之间的转换

数据类型/基本类型:逻辑值

判断与真值

逻辑(bool)类型

  • 逻辑值仅包括真(true)/假(false)两个

  • 用来配合if/while等语句做条件判断

“与”and

  • “并且”

  • and连接的两个真值同时为真,计算结果才为真

与and

True

False

True

True

False

False

False

False

“或”or

  • “或者”

  • or连接的两个真值只要有一个为真,计算结果就为真

非not

  • “否定”

  • not连接的一个真值,非真为假,非假为真

and和or是双目运算,有两个逻辑类型真值进行运算

not是单目运算,作用与一个逻辑类型真值

优先级

not>and>or

各种类型对应的真值

整数、浮点数和复数类型

0是“假”,所有非0的数值都是“真”

字符串类型

空串(“”)是“假”,所有非空串都是“真”

所有序列类型(包括字符串)

空序列是“假”,所有非空的序列都是”真“

空值None

表示“无意义”或者“不知道”,也是“假”

文本的表示

字符串就是把一个个文字的字符“串起来”的数据

表示字符串数值

用双引号或者单引号都可以表示字符串,但必须成对

多行字符串用三个连续单引号表示

特殊字符用转义符号“\”表示

字符的编号

第一个字符的编号是0,第二个字符编号是1,...

最后一个字符的编号是-1,倒数第二个字符编号是-2...

字符串与名字的区别

字符串是数据本身

名字是数据的标签

名字和字符串是“名”和“值”之间的关系

  • 一个字符串数值可以关联多个名字

一个名字在用一时刻只能关联一个字符串数值

  • 字符串数值只能是字符串类型

常见的字符串操作

获取字符串的长度

len函数

切片(slice)操作

s[start:end:step]

“加法”和“乘法”

+:将两个字符串进行连接,得到新的字符串

*:将字符串重复若干次,生成新的字符串

判断字符串内容是否相同(==)

判断字符串是否包含某个字符串(in)

删除空格

  • str.strip:去掉字符串前后的所有空格,内部的空格不受影响

  • str.lstrip:去掉字符串前部(左部)的所有空格

  • str.rstrip:去掉字符串后部(右部)的所有空格

判断字母数字

  • str.isalpha:判断字符串是否全部由字母构成

  • str.isdigit:判断字符串是否全部由数字构成

  • str.isalnum:判断字符串是否仅包含字母和数字,而不含特殊字符

split:分割,join:合并

'You are my sunshine'.split(' ')

upper/lower/swapcase:大小写相关

ljust/center/rjust:排版左中右对齐

replace:替换子串

序列(sequence)

能够按照整数顺序排列的数据

序列的内部结构

  • 可以通过从0开始的连续整数来索引单个对象

  • 可以执行切片,获取序列的一部分

  • 可以通过len函数来获取序列中包含多少元素

  • 可以用加法“+”来重复多次,成为更长的序列

  • 可以用乘法“*”来重复多次,成长为更长的序列

  • 可以用“in”来判断某个元素是否在序列中存在

数据类型/变量与引用

给数据命名

命名语法:<名字>=<数据>

命名规则:

  • 字母和数字组合而成,下划线“_”算字母,字母区分大小写

  • 不带特殊字符(如空格、标点、运算符等)

  • 名字的第一个字符必须是字母,而不能是数字

(在python中,汉字算是字母)

名字(name)

名字像是一个标签,通过赋值“贴”在某个数据数值上

变量:与数值关联的名字也称为变量

变量可以随时指向任何一个数据对象

赋值:名字与数值关联的过程,称为给变量赋值

“==”相等判断

“=”赋值

赋值语句:

通过赋值号将变量和表达式左右相连的语句

灵活多变的赋值语句

  • 最基本的赋值语句形式

  • 合并赋值

  • 按顺序依次赋值

  • 简写赋值语句

总结:

数值基本运算:+、-、*、/、//、%、**、hex()、oct()、bin()

类型转换:1,0,’abc‘,None、1.2,False,’‘,str(),bool(),int(),float()

字符串基本操作:+,-,len(),[],in,ord(),chr()

含有中文的字符串

字符串的高级操作:切片、split拆分、修改大小写、排版、替换

容器类型:列表与元组

列表与元组的数据不限制类型

reverse:把列表中的数据元素头尾反转重新排序

sort:把列表中的元素按照大小顺序重新排列

reverse/sort:得到重新排列列表,不影响原来的列表

num = [1,2,7,4,3,9,0]
num.reverse()
num

[0,9,3,4,7,2,1,]

num.sort(reverse = True)
num

[9,7,4,3,2,1,0]

合并:加法运算+:连接两个列表/元组

乘法运算*:复制n次,生成新列表/元组

列表/元组大小

len():列表/元组中的元素的个数

索引:元组属于不可变类型,索引只能获取对应位置中的数据值,不可赋值

列表/元组查找:in

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北辰星Charih

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值