常用的第三方库:
opencv
dlib
it chat
1)区别比较:
shell脚本:
#!/bin/bash
echo hello
sh shell.sh
python脚本:
#!/usr/bin/python ##或者#!/bin/python或者#!/usr/bin/env python
print "hello"
python hello.py
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
•#!/usr/bin/python 这种写法表示直接引用系统的默认的
Python 版本;
•#!/usr/bin/env python 这种写法表示,引用环境变量里面自定义的 Python 版本, 具有较强的可移植性;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
现在我们打印一个中文的“你好python”
#!/usr/bin/python
#coding:utf-8 ##指定编码格式的方法#coding:utf-8 #coding=utf-8 #encoding:utf-8 #encoding=utf-8
print "你好python"
一个中文占用3个字节 utf-8为可变长编码方式,英文只用一个字节,中文用三个字节
2)python的解释器
cpython ##默认 交互式
ipython ##cpython的增强
jpython
pypy
安装ipython等软件包
下载好后配置好yum源
yum install /home/kiosk/Desktop/ipython/*.rpm
3)I/O输入输出
input("")
output()
***)
In [2]: input("请输入数字")
请输入数字1
Out[2]: 1
***)
将数值保存在里面
In [4]: a = input("please input number:")
please input number:2
In [5]: print a ##或者直接输入a
2 ##结果为2
*)
input() 和raw_input()的区别:##raw_input可以输出字符input只能输数字
In [6]: a = raw_input("number:")
number:f
In [7]: a
Out[7]: 'f'
*)
输入三个学生成绩并计算平均值:
#!/usr/bin/env python
#encoding=utf-8
from __future__ import division
a=input("input score C:")
b=input("input score B:")
c=input("input score A:")
avg= (a+b+c)/3
print avg
在版本2中除法只保留整数部分,如果需要计算出小数可以用以下两个方法:
@@@@@@@@@
【1】from __future__ import division
【2】5/2.0 除数写成浮点型
4)安装pycharm
mv /home/kiosk/Desktop/pycharm/pycharm-community-2017.1.4.tar.gz /opt/
tar xf pycharm-community-2017.1.4.tar.gz
cd pycharm-community-2017.1.4/bin/
./pycharm.sh
第一次安装不需要导入任何设置,安装完成后新建一个项目,右键项目创建file就可以开始编写python程序了
ctrl+alt+s进入设置中找到File and Code Templates
在python script中加入:
#!/usr/bin/env python
#encoding=utf-8
"""
Name:${NAME}.py
Author:song
Date:${DATE}
connect:525065007@qq.com
esac:
"""
然后保存
ctrl+alt+insert新建一个python file输出文件名,就可以看到文件格式已经导入
@@@@@@@其他设置@@@@@@@
ctrl+alt+s font中可以调整字体和大小
Scheme 可以改变界面样式
python2和3的不同:
(1)除法:
python2中默认保留整数部分 可以在python2中添加from future import division
(2)print:
python2中可以直接使用,在python3中是一个函数所以使用格式为:print(“hello”)
可以在python2中添加from future import print_function
(3)
input raw_input:python2中 可以用type()命令查看一个是整形变量一个是字符串
python3中去掉了raw_input,默认input输入为字符串
优化刚刚开始的平均成绩代码:
from __future__ import division
a=input("score A:")
b=input("score B:")
c=input("score C:")
avg = (a+b+c)/3
print "平均成绩为:%.2f" %(avg) ##定义为float变量 %.2f表示保留小数点后两位
@@@@在交互式界面中不需要输入print@@@@@@
数值类型
块代码注释:三个双引号
行代码注释:# <快捷键ctrl+ />
字符串的格式化符号:
%f 小数,浮点数
%.2f 保留两位小数点的浮点数
%d 整形数
%s 字符串
%o 八进制
%x 十六进制
符号的用法:
['120%.2d'%(i) for i in range(1,20)]
注意下面的区别:
"%.3d" %1
Out[6]: '001' ##将输出1变为001
"10%.3d" %1
Out[7]: '10001' ##在输出001前面添加10
"%10.3d" %1
Out[8]: ' 001' ##总共占用10个字符
"%.2f%%" %30
Out[10]: '30.00%' ##%%是转义为%不然会报错
1)体会变量类型:
输入:
anInt = 2
print type(anInt)
aLong = 12L
print type(aLong)
print type(anInt+aLong)
aFloat = 2.0000
print type(aFloat)
bFloat = 1.2E10
cFloat = 0.12e11
print bFloat
print cFloat
aComplex = 2+3j
print aComplex.real
print aComplex.imag
print type(aComplex)
运行结果:
<type 'int'>
<type 'long'>
<type 'long'>
<type 'float'>
12000000000.0
12000000000.0
2.0
3.0
<type 'complex'>
2)数值类型是不可变的
a=1
b=1
print id(a),id(b)
c=1
d=2
print id(c),id(d)
@@@@@@@@@@@@@@@@
pyhton的内存分配机制,数值相同时会指向同一个地址
当改变数值的时候,将会重新分配一个内存地址,不会在原有内存地址中修改数值
@@@@@@@@@@@@@@@@
3)删除数字对象
del c ##加上变量
print c
4)布尔型变量:True(1) False(0)
运算符号
= += -= /= *= %=
关系运算符:>,>=,<,<=
运算后将会返回一个布尔值
1>2
out:False
(1>2) == False
out:True
逻辑运算符:and or not
题目:判断是否为闰年:
代码:
a = input("请输入年份:")
b = (a % 100 != 0 and a % 4 == 0 )or (a % 400 ==0)
if b:
#pass是占位关键字
#pass
print "%s 是闰年" %(a)
else:
print "%s 不是闰年"%(a)
注:ctrl+alt+L自动调整已经写好的语句
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
*)python if语句:注意缩进
@@if表达式:
if-suite
@@if表达式:
if-suite
else:
else-suite
@@三目运算符
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
题目2:判断输入用户名密码是否正确
代码:
username = raw_input("username:")
passwd = raw_input("password:")
if (username == "root") and (passwd == "redhat"):
#pass
print "ok"
else:
print "not correct!"
题目3:登陆成功后进入系统界面(补充密码加密,但不能在pycharm里,只能在terminal中打开)
import getpass
username = raw_input("username:")
passwd = getpass.getpass("password:")
if (username == "root") and (passwd == "redhat"):
#pass
print "ok"
print """
学生管理系统
1.查询课表
2.查询成绩
3.选课系统
4.退出
"""
choice = input("请输入你的选择:")
if choice == 1:
pass
elif choice == 2:
pass
elif choice == 3:
pass
elif choice == 4:
exit(0)
else:
print "请输入正确的选择!"
else:
print "not correct!"
题目4:判断ab大小(三目运算符)
a=1
b=2
print a if a > b else b
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@while表达式: @@
@@ 循化执行的语句 @@
@@while表达式: @@
@@ 循环执行的语句 @@
@@else @@
@@死循环 @@
@@while True或者1) @@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
题目:登陆三次自动退出
trycount = 0
while trycount < 3:
print "登陆…………"
trycount += 1
else:
print "登陆次数超过3次,请稍后再试!!"
题目2:加入刚刚的学生管理界面
trycount = 0
while trycount < 3:
print "登陆…………"
import getpass
username = raw_input("username:")
passwd = getpass.getpass("password:")
if (username == "root") and (passwd == "redhat"):
# pass
print "ok"
print """
学生管理系统
1.查询课表
2.查询成绩
3.选课系统
4.退出
"""
choice = input("请输入你的选择:")
if choice == 1:
# pass
print """
数学:99
语文:100
英语:120
"""
elif choice == 2:
pass
elif choice == 3:
pass
elif choice == 4:
exit(0)
else:
print "请输入正确的选择!"
else:
print "not correct!"
trycount += 1
else:
print "登陆次数超过3次,请稍后再试!!"
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
break:遇到关键字跳出当前的循环,不再继续执行循环
continue:跳出本次循环,不执行本次循环中continue后面的语句
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
题目3:为学生管理系统添加循环(注意缩进)
trycount = 0
while trycount < 3:
print "登陆…………"
import getpass
username = raw_input("username:")
passwd = getpass.getpass("password:")
if (username == "root") and (passwd == "redhat"):
# pass
print "ok"
print """
学生管理系统
1.查询课表
2.查询成绩
3.选课系统
4.退出
"""
while True:
choice = input("请输入你的选择:")
if choice == 1:
# pass
print """
数学:99
语文:100
英语:120
"""
elif choice == 2:
pass
elif choice == 3:
pass
elif choice == 4:
exit(0)
else:
print "请输入正确的选择!"
else:
print "not correct!"
trycount += 1
else:
print "登陆次数超过3次,请稍后再试!!"
题目4:体会break和continue在循环中的用法不同
while True:
cmd = raw_input(">>>")
if cmd == "":
continue
print cmd
elif cmd == "q":
break
else:
print cmd
题目5:求1-1000内所有偶数和
count=2
sum=0
while count <= 1000:
sum += count
count += 2
print sum
@@@@@for循环@@@@@
注意
题目:求1-1000内所有偶数的和
alt+回车 快速导入函数
方法一:(这里我们导入了时间函数,方便对比)用时0.17024
import time
start_time = time.time()
sum = 0
for i in range(2,2000000,2):
sum += i
print sum
end_time = time.time()
print "run %s" %(end_time - start_time)
方法二:用时0.0406010150909
import time
start_time = time.time()
print sum(range(2,2000000,2))
end_time = time.time()
print "run %s" %(end_time - start_time)
题目2:阶乘
while True:
a = input("请输入一个数字:")
x=1
for i in range(1, a + 1):
x = x*i
print x