Life is short , you need Python

Python安装

可以使用提前配置好的第三方库,这些包通常以及包含了深度学习框架中绝大多数的依赖库,常用的是Anaconda,注意其已经不支持Windows XP,安装的时候注意勾选一下环境变量。
我用的是Spyder(Python 3.6版本),后续有时间再说一下Jupyter notebook使用 。

基本语法

输入输出

1:输入input()
用户输入字符串,并存在一个变量中,按下回车后,可以输入任意字符,完成输入后,不会有任何提示,因为数字已经被存放在number变量中,后续需要可以查看。
注意:input()返回数据类型是 str

name = input('please enter your name: ')
print('hello,', name)

python程序语法 python3.6语法_列表


2:输出print()

基本数据类型
(1)整数 int

(2)浮点数 float

(3)布尔类型 bool
True和False两种,用and、 or、 not运算,经常用在条件判断中。

(4)字符串 str
字符串是以单引号或者双引号括起来的任意文本;
如果单引号’本身也是一个字符,就需要用双引号"括起来;
\本身也需要转义,\\就是表示\字符;
字符串前面加r表示严格按照输入的样子;

(5)NoneType 不是0,是特殊的空值

执行type()函数可以查看一个变量的类型;
除法/计算结果是浮点数,//是地板除结果是整数;
%取余数,a**c 是a的c次方;

s1="'Hello,world'"
print("s1 =",s1)
s2="'Hello,\\'Adam\\''"
print("s2 =",s2)
s3="r'Hello,\"Bart\"'"
print("s3 =",s3)
s4="r'''Hello,"
print("s4 =",s4)
s5="Lisa!'''"
print(s5)

python程序语法 python3.6语法_列表_02


格式化

用%实现输出格式化字符串

%d 整数; %f 浮点数; %s 字符串;%x 十六进制整数

例子:小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出’xx.x%’,只保留小数点后1位

s1=72
s2=85
r=(s2-s1)/s1*100
print("小明成绩提升的百分点是:\n")
print('%.1f%%'%r)

python程序语法 python3.6语法_字符串_03

容器

列表list

(1) 一种有序集合,可以随时添加和删除相关元素
(2) len()函数可以获得列表元素个数
(3) 索引[ ]访问列表元素,从0开始,最后一个元素索引是-1
append追加元素到末位;insert插入到指定位置;pop删除末位元素;pop(i)删除指定位置;把某个元素替换成别的元素,可以直接赋值给对应的索引位置; list里面的元素的数据类型也可以不同; list元素也可以是另一个list。

classmates = ['Michael', 'Bob', 'Tracy']
len(classmates)
classmates[0]
classmates[-1]
classmates.append('Adam')
classmates.insert(1, 'Jack')
classmates.pop()
classmates.pop(1)
classmates[1] = 'Sarah'
L = ['Apple', 123, True]
s = ['python', 'java', ['asp', 'php'], 'scheme']

元组Tuple

有序列表,一旦初始化就不能修改。没有append(),insert()这样的方法,其他获取元素的方法和list是一样。因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。

注意:只有1个元素的tuple定义时必须加一个逗号 t = (1,)

python程序语法 python3.6语法_条件判断_04

循环和分支

条件判断

if <条件判断1>:
    <执行1>
elif <条件判断2>:
    <执行2>
elif <条件判断3>:
    <执行3>
else:
    <执行4>

从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else
例子:小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数打印结果:
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖

height=float(input("请输入身高:"))
weight=float(input("请输入体重:"))
bmi=weight/(height**2)

if bmi<18.5:
    print("过轻")
elif bmi<25:
    print("正常")
elif bmi<28:
    print("过重")
elif bmi<32:
    print("肥胖")
else:
    print("严重肥胖")

循环

1.for循环
range(N-1)可以生成0-N的整数序列

sum = 0
for x in range(101):
    sum = sum + x
print(sum)

2.while循环
只要条件满足,就不断循环,条件不满足时退出循环。
例子:求100以内偶数和

sum = 0
n = 100
while n > 0:
    sum = sum + n
    n = n - 2
print(sum)

3.break
break的作用是提前结束循环,在循环过程中,也可以通过continue语句,跳过当前的这次循环,直接开始下一次循环。

n = 1
while n <= 100:
    if n > 10: # 当n = 11时,条件满足,执行break语句
        break # break语句会结束当前循环
    print(n)
    n = n + 1
print('END')


n = 0
while n < 10:
    n = n + 1
    if n % 2 == 0: # 如果n是偶数,执行continue语句
        continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
    print(n)

注意:不要滥用break和continue语句,会造成代码执行逻辑分叉过多,容易出错。

dict和set

字典 dict

使用键-值(key-value)存储,查找速度很快;
把数据放入dict的方法,除了初始化时指定外,还可以通过key放入;
一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值替换;
删除一个key,用pop(key)方法,对应的value也会从dict中删除;
dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,牢记dict的key必须是不可变对象(字符串,整数等)。

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
d['Michael']
d['Adam'] = 67
d.pop('Bob')

set

set和dict类似,也是一组key的集合,但不存储value。add(key)方法可以添加元素到set中,remove(key)方法可以删除元素。set可以看成数学意义上的无序和无重复元素的集合,set和dict的唯一区别仅在于没有存储对应的value。使用key-value存储结构的dict在Python中非常有用,选择不可变对象作为key很重要,最常用的key是字符串。