考研阳了考了几科最后弃考只能来肝春招了,目前刚开始学,两个月不知道能找到啥子工作自作自受属于是 ,
花了几个小时复习完两年前学的python然后整理了一下(python直接跟着官方文档学的)。
python确实是非常好用的语言,因为之前学过c直接上手入门也很快,官方文档给的资料也比较详细,还给了示例,这个语言主要是变量连类型定义都不需要,第一次用的时候给了我非常大的震撼,怎么会有这么好偷懒的语言啊,bushi,而且Python的用格式缩进判断语句的方式非常舒服,虽然学的很快但是后面使用的时候还是会经常查经常出现语法错误。
这个文档先写着,欢迎大家评论提意见和问题,欢迎补充整理,我随时更改 。
输入输出
python3中目前我知道的实现标准输入的方式有两种种,默认输入格式均为字符串,对于整数或者浮点数必须用int或float强制转换(python中int和float被设计成的函数,非常有意思,而且浮点数类型只有float,在计算的时候需要注意浮点数不精确的问题
)。
一:sys.stdin.readline()方法
sys.stdin.readline()
每次读取一行,读取时占用内存较小,适合大文件,返回一个字符串。应用sys
函数前需要在代码前输入“import sys”
命令。会读取末尾的'\n'
如果需要去掉加.strip()
,会同时去掉回车符和前后的空格(中间的会保留)。
>>> import sys
## 输入一个字符串
>>> str = sys.stdin.readline()
hello world
>>> print(len(str))
12
>>> str = sys.stdin.readline().strip()
>hello world
>>> print(len(str))
11
## 输入一个数
>>> n = int(sys.stdin.readline().strip())
123
>>> type(n)
int
二:raw_input()函数(在Python3.X中已经被剔除,可不做了解,但是还是整理了一下)
raw_input()
函数是python内置的从标准输入读取一行,返回一个去掉结尾'\n'
字符串,可置入提示语。
>>>str = raw_input("Please confirm your entry : ")
>Please confirm your entry : hello world
>>>print(str)
>hello world
>>>type(str)
>str
三:input()函数
input()
函数和raw_input()
函数几乎一样,尤其是在Python3.X
版本中只留下了两个Python
内嵌的函数只留下了input()
,在Python2.x
中input()函数是只接收“数字”,在Python3
中input()
输入默认为字符串处理,返回字符串类型。
>>>str = input("Please confirm your entry : ")
>Please confirm your entry : hello world
>>>print(str)
>hello world
>>>type(str)
>str
一行多个参数
因为平时使用input()
比较多,就用它举个等离子
>>> X, Y, Z = input().split()
>Inductively Coupled Plasma
>>>X
>Inductively
>>>type(X)
>str
>>>a, b, c = map(int, input("Please confirm your entry : ").split())
>985 211 0
>>>a
>985
>>>type(a)
>int
判断条件语句
因为在学python
之前还学了一个shell
脚本语言,感觉这两个语言的选择判断的语法还是比较相近的。
if 语句
>>>num = int(input("Please confirm your entry : "))
>Please confirm your entry : 54250
>>>if x < 0:
... x = 0
... print('Negative changed to zero')
... elif x == 0:
... print('Zero')
... elif x == 1:
... print('Single')
... else:
... print('More')
>More
elif
是 else if
的缩写,且判断的结尾用':'
来结尾,可以替代switch
、case
语句。
循环语句
for循环语句
Python
的 for
语句与 C
或 Pascal
中的不同。Python
的 for
语句不迭代算术递增数值(如 Pascal
),或是给予用户定义迭代步骤和暂停条件的能力(如 C
),而是迭代列表或字符串等任意序列,元素的迭代顺序与在序列中出现的顺序一致
>>>: for word in 'hello world':
...: print("当前字母: %s" % word)
...:
当前字母: h
当前字母: e
当前字母: l
当前字母: l
当前字母: o
当前字母:
当前字母: w
当前字母: o
当前字母: r
当前字母: l
当前字母: d
循环中的break和continue
break
、continue
和C
语言中一样,break
是跳出当前的循环,continue
是结束本次循环,执行下一次循环。
循环中的else语句
和C++
不同的地方出来了,Python
中循环里(for
循环和while
循环都有)也有else
语句,else
语句会在整个循环正常执行结束的情况下才执行(不是break
结束之类的)。
下面这段代码是,如果数n是质数就输出“n is a prime number”,否则输出拆分式:
>>> 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')
...
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3
range()函数(这个我觉得教程非常详细就直接复制在这里了)
内置函数 range()
常用于遍历数字序列,该函数可以生成算术级数。
>>> for i in range(5):
... print(i)
...
0
1
2
3
4
生成的序列不包含给定的终止数值;range(10)
生成 10 个值,这是一个长度为 10 的序列,其中的元素索引都是合法的。range 可以不从 0 开始,还可以按指定幅度递增(递增幅度称为 ‘步进’,支持负数):
>>> list(range(5, 10))
[5, 6, 7, 8, 9]
>>> list(range(0, 10, 3))
[0, 3, 6, 9]
>>> list(range(-10, -100, -30))
[-10, -40, -70]
range() 和 len() 组合在一起,可以按索引迭代序列:
>>> a = ['Mary', 'had', 'a', 'little', 'lamb']
>>> for i in range(len(a)):
... print(i, a[i])
...
0 Mary
1 had
2 a
3 little
4 lamb