0.基础性知识介绍
- python3中 数字的类型仅有整型(int) 与浮点型(float) 与c/c++不同的是py3中 int() float()是函数
- py3中用input进行读入 input的读入是整行的
- py3中不论是
''
还是""
都与c++中的""
一样 表示字符串 - py3的计算中 a/b结果是浮点数 a//b是向下取整的整形(c++是向0取整) a**b是a的b次幂
- py3中有list(列表) set(集合) map(字典) 三种数据结构
- 这三种数据结构功能强大 每一单位里面都啥都能装 比如一个列表中可以同时存在 二维列表 字典 集合 数字,字符串什么的更不再话下
- 因此列表可以理解为一个究极加强的数组
- 数组与列表,集合支持下标访问 与
c/c++
不同的py3还支持负数下标 ,负数下标从-1开始 以a=[1,2,3]为例 从起点到结尾负数下标分别为-3,-2,-1 与c/c++相同的是,py3也不能下标越界 - 列表与字符串支持切片 什么是切片 形如a[:] 冒号前后一个数字 代表起始下标和末尾下标+1 如果没有 前面就默认为0 后面就默认为结尾 因此 a==a[:]
- 那么a[:9] 就是从起点到下标8这一段 a[2:] 就是代表下标2到结尾这一段
- 特别地 a[::-1]可以实现反转的功能 而用函数实现则是 a.reverse()
- 下面介绍几个列表的函数
1.输入与输出
1 读入一个数
x=int(input())
x=float(input())
2 读入两个数
x,y=map(int,input().split(' '))#读入俩整数
x,y=map(float,input().split(' '))#读入俩浮点数
#读入一个整数与一个浮点数
d=list(input().split(' '))
x=int(d[0])
y=float(d[1])
3 读入三个以上的数
a,b,c,d=list(map(int,input().split(' ')))
4 读入一个数组
d=list(map(int,input().split(' ')))
5 读入一个二维数组
n,m=map(int,input().split())
a=[[0 for i in range(m)] for i in range(n)]
#a=[0 for i in range(n)] #同样可以
for i in range(n) :
a[i]=list(map(int,input().split()))#因为是整行读入
print(a[1][2])
6 读入一个字符串
s=input()
7 输出
2.if while for
1 if
- py3的if 不使用&& || 而是用
and
和or
- py3使用elif 来代替c++的 else if
2 while
- 与c++基本一致 但不能在条件那进行读入
3 for
- 基本格式
for i in range(n)
相当于于c的for (int i=0;i<n;i++)
- 内置函数 range() 常用于遍历数字序列,该函数可以生成算术级数:
- range(a,b) 从a到b-1 range(a,b,c)以c的公差从a到b-1
for i in a
相当于 c++的for (auto i:a)
- py3的for有一个else子句
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, 'equals', x, '*', n//x)
break
else:
# loop fell through without finding a factor
print(n, 'is a prime number')
观察上面的代码块就可以发现 for有一个else子句 如果没有被break掉 就会进入这个else
循环的技巧