python课程:
,pandas
监督学习,非监督学习,语音识别,人脸识别
操作系统:
win:
Unix:(微内核)
IOS,MAC OS,AIX(IBM),SOLARIS)(SUN,ORacne)
LIunx:
android(单体内核)
Ubuntu(教学环境)
Red hat
Cent OS
Vmvare:
1.启动
2.选择虚拟机运行
快捷键:
ctrl+alt释放鼠标到主机
ctrl+alt+enter 全屏/退出全屏切换
Linux使用:
通过终端 terminal 操作计算机
启动终端:
linux命令:
命令的格式:
命令名 [选项] [参数]
注:
1.命令名必须存在
2.命令名区分大小写
3.[]内部参数和选择可以没有
date 命令:
用于显示系统日期
格式:
date +%D 月/日/年
date +%T 时:分:秒
cal命令:
作用:
显示日历:
$ cal #显示当月日历
cal 2018 显示2018年的全部日历
cal 8 2018 显示2018年8月的日历
目录树:
根(root)/
路径:
路径是表示一个文件或文件夹的字符串
例:
/home/tarena
linux下的路径:
绝对路径:以 / 字符开头的路径为绝对路径
相对路径:不以 / 字符开头的路径为相对路径。
相对路径开始符号:
以文件或文件夹名称
.当前文件夹(目录)
..上一级文件夹(目录)
~用户主目录
pwd:
显示当前的工作路径在哪
ls:
显示指定文件或文件夹信息
常用选项:
ls -l:列表显示详细信息
ls -a:显示全部的文件/文件夹
cd 命令:
进入到一个目录(切换工作路径)(跳转指定文件或文件夹下)
例:
cd / 跳转到根目录下
cd - 回到进入此目录之前的文件夹
mkdir:
新建文件夹
格式:
mkdir 文件夹名
rmdir:
删除文件夹(文件夹必须为空时才能删除)
格式:
rmdir 文件夹名(可以是文件夹路径)
touch:
创建一个或多个文件
格式:
touch 文件名1 文件名2....
rm:
删除一个或多个文件
格式:
rm 文件名1 文件名2
rm-r:递归删除文件夹内或文件
rm-i:删除前会有提示
mv 移动文件或文件夹
用法:
mv文件或文件夹1 文件或文件夹2
cp
:复制文件或文件夹
cp文件或文件夹1 文件或文件夹2
find查找文件或文件夹
用法: find 路径 -name "文件名"
例: find / -name "1.txt"
grep 根据文件内容查找文件
用法: grep "内容" [选项]
init 0/shutdownb 关机
init 6/ reboot 重启
cat:将文件内容在终端显示
day01回顾:
三个主流操作系统:
Windows(微内核)
Unix(微内核)
linux(微内核)
终端的使用:
crtl+alt+t
linux命令:
date:显示日期时间
cal:显示日历
文件系统相关的命令:
pwd:显示当前工作目录
路径:
绝对路径:
以/开头
/中国/北京市/朝阳区
windows上:
c:\
D:\
相对路径:
.
..
-
ls:
查看文件或文件夹
-l 显示详细信息
-a 显示所有文件
cd:
切换工作目录
tree:
day02:
mkdir:
新建文件夹
常用选项:
-p 如国中国文件夹不存在 则逐级创建所有文件夹
例:
mkdir -p aa/bb/ccc/dddd
rmdir:
删除文件夹
例:
rmdir -p aa/bb/cc/dddd
touch:
新建文件
作用:
如果文件不存在 则创建一个空文件
如果文件存在 则用系统时间更新他的修该时间
格式:
|touch 文件名1 文件名2
rm:
删除文件或文件夹
格式:
rm 文件或文件夹
常用选项:
-r 递归删除文件夹内的文件和文件夹
-i 删除前给出提示
-f 强制删除 不给任何提示
练习:
1.在用户主目录下 创建我的计算机
2.在我的计算机下创建 软件 游戏 学习
3.在学习中创建三个文件
python.txt AI.txt ai.txt
4.删除学习目录中的AI.txt文件
5.删游戏文件夹
help帮助选项:
用于显示命令的帮助权限
例:
ls --help
man:
查看命令所对应的帮助文档
格式:
man 命令名
例:
man ls
操作建:j(下)k(上)q(退)
Tab键:
在输入命令时能自动补全命令名或路径
history
作用:
把以前键入的命令都列出来
调用以前执行的命令
!编号 执行对应的命令
注:
在终端提示符($,#)下 用上下键翻出历史命令,然后回车执行
通配符:
* 代表0个,1个或多个任意字符
? 代表1个任意字符
示例:
ls a*b #列出所有以a开头 ,以b结尾的文件
ls c* #列出以c开头的
ls *.txt #列出以.txt结尾的
1.创建文件夹myfile
2. 在myfile建一下文件
a.mp3 ab.txt ac.mp3 abc.txt aabb.mp3
ab.txt cd.mp4
3.列出所有的mp3结尾的文件 ls *.mp3
4.删除.之前的文件名只有一个字符的文件 rm ?.*
5.列出文件名含c这个字符的文件 ls *c*
文本编辑器:
1.vi/vim:
作用:
编辑文本文件信息,主要用来写程序的源代码
启动命令:
vi 或 vi 文件名
退出: :q
vim两种常用模式:
a/i/o/O
命令模式--------->编辑模式
<---------
Esc
Vim:常用命令
:q 退出
:q! 不保存强制退出
:w 保存
:w 文件名 保存到指定的文件
:wq 保存并退出
vim的复制命令:
yy复制一行
p 粘贴
y$ 复制到一行行尾
y^ 复制到当前光标处到行首
dd 删除光标所在行
撤销(undo)和重做操作:
u 取消最近一次的操作,并恢复操作结果
ctrl+r 对使用u命令撤销的操作进行恢复
练习:
在用户主目录下创建一个文件 mypasswd.txt
将/etc/passwd文件的前十行抄写到mypasswd.txt中
2.sublime text 3
启动命令:
subl<回车>
subl文件名<回车>
sublime text的快捷操作:
1.打开和隐藏side bar的快捷键 ctrl +k + b
注:
只有打开文件夹时才能打开侧边栏
菜单操作:
view->side bar -->Hide Side Bar
sublime 创建多个光标:
ctrl-鼠标点击 创建多个光标
按ESC键或单击鼠标左键可以取消多个光标
sublime 多选相同的块
Ctrl+d
其他快捷键:
ctrl+c 复制光标所在的行(未选中任何内容时)
ctrl+v粘贴
ctrl+l 字体放大
ctrl+-字体缩小
ctrl+s 保存
文本文件查看相关命令:
cat命令:
作用:
将文件内容作为标准输出显示
格式:
cat 文件名1 文件名2
示例:
cat /etc/passwd
more命令:
作用:
分页显示文本文件的内容
示例:
more/etc/passwd
基本操作:
q 退出
空格 下翻一页
less 命令:
作用:
分页显示文本文件内容(可以上下滚动)
格式:
less 文件名
基本操作:
q 退出
j 下翻
k 上翻
空格 下翻一页
head:
查看文件头几行内容
tail:
查看文件末尾几行内容
格式:
head -n 文件名 head -3 头三行
tail -n 文件名 tail -2 尾三行
注: n为整数数字(默认为10)
cp命令:
作用:
复制文件或文件夹
格式:
cp [选项] 源文件名 目标文件或文件夹名
例:cp passwd.txt 桌面 (转移到桌面)
cp passwd.txt 桌面/a.txt
cp -a 源文件夹名 目标文件夹
例:
cp -a game 桌面
mv:
文件搬移或更名
格式:
mv 文件1 目标文件2
mv 源文件夹 目标文件夹
练习:
1.创建一个文件夹:我的电脑
mkdir 我的电脑
2. 在我的电脑内创建两个文件夹 c,d
cd 我的电脑
mkdir c d
3. 在我的电脑/d创建以下文件夹:
音乐 电影 笔记 python程序
cd d
mkdir 音乐 电影 笔记 python程序
4. 在笔记文件夹内用文本编辑器创建两个文件
目录.txt 日记.txt
cd 笔记
vim 目录.txt
vim 日记.txt
5. 在目录.txt中写入、
day01 linux命令
day02 python
day03 web前端
6. 在日记.txt中写:2018年3月12日
7.把创建的.mp3结尾的放入音乐文件夹
8.把"我的电脑"文件夹复制到桌面
whice:
作用:
显示命令所在的可执行文件的完整路径
示例:
which ls
/usr/bin/ls
whereis:
作用:
显示一个二进制文件 源码或man手册的位置
day02回顾:
mkdir
-p
rmdir
-p
touch:
作用:
1.创建文件
2.如果文件存在更新创建时间
rm
-r递归删除
-i 提示删除
--help:
ls --help
main 命令:
查看手册
格式:man 命令名
Tab
history:
通配符:
?
*
文本编辑器:
vi/vim
文本文件查看命令:
tail
head
cat
more
less
cp:
复制文件
-a 全部复制
mv 命令:
作用:
1.移动文件
2.改文件名
which 命令:
查看一个命令所对应的文件
例:which python3
whereis
day03
file 命令:
作用:
查看文件的类型
find 命令:
作用:
find 路径 -name "文件名"
例:
find /home -name "日记.txt"
ctrl + c 终止程序
grep 命令:
作用:
根据文件内容查找相应的文件
格式:
grep "内容" [选项] 文件名
常用选项:
-n 显示行号
-r 递归搜索文件夹内的文件
例:
grep "2018" -r*
练习:
1.查找etc下 group这个文件在那个文件夹下
find /etc -name "group"
2.查找那个文件夹里含有“tedu"这个字符串
grep "tedu" -rn /etc
wc(word counter)
作用:
统计文件中的字节数 字数 行数
格式:
wc [选项] 文件名
常用选项:
-l 只显示行数
-c 只显示字节数
例:
wc day02.text
gzip 命令:
作用:
用zip压缩算法对文件进行压缩,生成压缩后的文件(通常以.gz结尾)
格式:
gzip 文件名
例:
cp /etc/passwd mypasswd.txt
gzip mypasswd.txt
gunzip:
作用:
对用zip压缩算法的.gz格式的数据进行解压缩
格式:
gunzip 文件名
例:
gunzip mypasswd.txt.gz
打包和解包:
tar 命令:
作用:
对文件或文件夹进行打包和解包的操作
格式:
tar [选项] 文件名或路径
常用选项:
-c 创建包
-x 解包
-v 显示操作文件的细节
-f 文件名操作的文件名
-z 用gzip/gunzip
对包进行压缩和解压缩
常用的打包命令:
tar -czvf day02.tar.gz day02/
....解包命令:
tar -zxvf day02.tar.gz
作业:
把我的电脑文件夹打包为mycompute.tar.gz 复制到桌面
用解包命令 查看解压缩后的数据与源数据是否相同
用户权限管理:
sudo:
作用:
用超级用户root权限执行这些命令
格式:
sudo 命令[选项][参数]
常用选项:
-i 选项 切换到root用户
示例:
$ sudo mkdir /myfloder_haha
$ sudo -i #切换到root用户
# exit # 退出用户登录
UNIX/LINUX组管理及命令:
组相关的配置文件:
/etc/group
groupadd 命令:
作用:
创建一个组
sudo grouadd weimingze
groupdel 命令:
作用:
删除一个组
unix/liunx 用户管理命令:
用户信息:
1.用户名称
2.用户id
3.用户的主组
4.用户主目录
5.用户密码
6.用户登录时shell解释器
用户相关的配置文件:
/etc/passwd
/etc/shadow
useradd:
作用:
添加一个用户
常用选项:
-g 组名或GID 指定组
-p 密码 在创建时指定密码
-m 创建用户主目录
-d 目录 指定其他用户主目录
-s shell 程序路径 指定新用户的登录shell
示例:
$ sudo useradd weimz -m -s /bin/bash
passwd:
作用:
修改用户密码
格式:
passwd [选项] 用户名
示例:
$ sudo passwd weimz #修改weimz的密码
$ passwd # 修改当前用户自己的密码
userdel:
作用:
删除一个已存在用户
格式:
userdel [选项] 用户名
常用选项:
-r 删除用户的主目录和相关文件
示例:
sudo userdel -r weimz
usermod 命令:
作用:
修改用户的相关信息
格式:
usermod [选项] 用户名
常见选项见:
usermod --help
su命令:
作用:
切换到指定的用户
格式:
su [用户名]
注:
如果不指定参数 默认切换到root用户
练习:
1.在虚拟机内创建你名字的用户
2.用passwd给你名字的用户设置初始密码123456
3.用su命令切换到你名字的用户
su taoyibo
创建一个notes.txt文件 并用vim写入你的姓名
cd
touch notes.txt
vi notes.txt
4.退出你名字的用户 回到tarena用户
exit
5.查看刚才你写过的文件
cat /home/taoyibo
6.尝试修改你写过的文件
7.查看/etc/shadow 下你名字账户对应的密码值
sudo cat /etc/shadow
8.修改 你名字账户的密码值 再看看/etc/shadow里有什么变化
passwd taoyibo
9删除你名字的账户
sudo userdel -r taoyibo
文件权限管理及命令
查看文件权限
ls -l
unix/linux文件类型:
- 普通文件
d 文件夹
c/b 设备文件 charactor字符设备/block块设备
p 管道文件
l 链接文件
s 套接字文件
文件的权限类型:
r 读取权限
w 写权限
x 执行权限
文件权限的分组:
用户权限(user)
组权限(froup)
其他(other)
属主:
每个文件必须属于某一个用户 所有者称属主
属组:
每个文件必须属于某一个组,这个组称属组
以上两个都不是的用户称为其他用户
chmod 命令:
作用:
修改文件的权限
格式:
chmod 权限 文件名
权限:
u 用户(属主)
g 同组用户(数组)
o 其他用户
a 所有用户
+ 添加权限
- 去除权限
777 最高权限
000 最低权限
示例:
chmod o-r a.txt 其他人去掉读权限
chmod g-rw a.txt 属组用户去掉读写权限
chown 命令:
修改文件的属主(需要管理员权限)
格式:
chown [owenr] [:group] [选项] 文件
常用选项:
-R 文件名或文件夹名
对所有文件执行递归修改操作
示例:
sudo chown weimz:weimz a.txt
sudo chown tarena a.txt
练习:
用tarena用户创建一个文件 :myprog.sh
2.编辑myprog.sh 添入以下内容:
#! /bin/bash
ls /
cd ~
mkdir "xxx来过"
3.修改此文件权限 让tarena用户可执行此文件
4.用tarena用户执行此文件 :
./myprog.sh
day03回顾:
grep
find
file
wu
tar
gzip
gunzip
打包: tar -czvf 包名.tar.gz 文件夹或文件
解包: tar -zxvf 包名.tar.gz
groupadd
(添加组)
groupdel(删除组)
sudo:
用root 权限执行命令
-i 切换到root 用户 (仅用于 ubuntu linux
alias 命令:
作用:
给命令取别名
格式:
alias 新命令名=‘命令名 [选项..]
示例:
alias delete='rm -i'
用户管理命令:
useradd
userdel
usermod
passwd
su 命令
用户信息:
用户名 ,id 用户主目录 主组
启动的shell程序 密码
/etc/passwd
/etc/shadow
文件权限:
rwx 属主 属组 文件大小 修改日期
chown 命令:
修改属主/属组
day04
unix/linux管道:
运算符:
作用:
将一个命令的输出 作为另一个命令的输出
格式:
命令1
选项1..|命令2 选项2|命令3 选项3..
示例:
1. 查看/etc/passwd下 用/bin/bash的用户有几个人
grep "/bin/bash" /etc/passwd |wc -l
2.
cat /etc/group |grep "m" | wc -l
输出重新项:
输出分为两种:
1.标准输出
2.标准错误输出
标准输出重定向:
> 将一个命令的标准输出重定向到文件 (会覆盖原先数据)
>> 标准输出追加到一个文件(会在末尾追加)
示例:
grep "/bin/bash" /etc/passwd > file.txt
标准错误输出重定向:
2> 将一个标准错误输出重定向到文件
2>> 标准错误输出追加到文件
示例:
find /etc -name "group" 2> error.txt > ture.txt
重定向所有输出:
&> 将所有输入重定向到同一文件
find /etc -name "group" &> 1.txt
&>>
echo命令:
作用:
将文本信息作为标准输出
格式:
echo "字符串"
示例:
echo 'hello'
练习:
已知有一个文件的内容有5行文本
aaa
bbb
cgfdg
ddd
eee
请head tail echo 命令组成将文件第三行改为ccc后存入另一个文件
shell编程:
种类:
bash
sh
shell运行方法:
方法1
$bash 程序文件
方法2
$chomd +x程序名
$./程序文件名
shell的注释
# 井号开头 直至行尾
第一行注释#!:
作用:
指定解释执行文件的程序是谁
示例:
、
进程管理及命令:
什么是进程:
正在执行的程序
ps命令:
作用:
查看进程的相关信息
格式:
ps [选项]
示例:
ps
ps aux
kill命令:
作用:
杀死进程
格式:
kill 进程的pid号
ps aux |grep "2048"
ctrl+c 终止进程
top:
作用:
查看程序运行状态
退出:
Q键
练习:
已知有一个末班文件template.txt的内容如下:
群通知
------------------
xxx:
xxxxxx
------------------
群主:魏老师
另外创建两个文件file1.txt和file2.txt在其中写入一定的内容
1.用file1.txt的内容生成一个群通知文件n1.txt
2.用file2.txt的内容生成一个群通知文件n2.txt
网络管理及命令:
什么是IP地址:
192.168.1.100(IPv4)
(0-255).(0-255).(0-255).(0-255)
ifconfig 命令:
作用:
查看和设备网络配置
实例:
ifconfig
ifconfig eth0
注:windows 下用ipconfig命令
ping 命令:
作用:
测试网络的链接状态
格式;
ping IP地址或域名
例如;
ping 172.60.16.233
hostname 命令:
作用:
查看和设置主机名
ssh 命令;
作用:
远程登录到一台主机
格式:
ssh[用户名@]ip地址或域名
实例:
ssh chenxin@172.60.16.233
who 命令;
作用:
查看当前主机有哪儿几个用户登录
scp 命令:
作用:
远程复制文件或文件夹
格式:
scp [选项] 源文件地址 目标文件地址
远程文件地址格式:
用户名@IP地址:路径
实例:
#复制我的一个文件day03.tar.gz 到172.60.50.78的/home/weimz/
scp ./day02.tar.gz weimz@172.60.50.78:/home/weimz/
scp
系统的关机,重启命令
poweroff 现在关机
shutdown -h now 现在关机
shutdown 一分钟后关机
shutdown -h小时:分钟 按预定时间关机
shutdown -c 取消按预定是时间关机
shutdown -r now 重启
reboot 重启
练习;
1.把你自己今天的笔记打包成为dayo4.tar.gz
2.用scp把笔记发送到你同坐的电脑上备份
3.在ssh登录你同桌的电脑上并创建一个你自己的目录
4.把day04.tar.gz 复制到你自己的目录里
5.解包day04.tar.gz 到你自己目录,用vim查看文件信息是否与你自己电脑上的相同
day04回顾:
ssh命令:
远程登录另一台linux/unix
ip 用户名 密码
scp:
远程复制
scp 用户名@ip或域名:路径
密码
关机命令:
echo:制作标准输出
输出重定向:
>
>>
2>
2>>
&>
&>>
数据流:
管道:
进程:
启动状态 PID 运行状态(睡眠S 僵尸Z 停止 运行R) 内存占比 CPU占比 内存 命令名
kill杀死状态
top命令:
who:
day05.
python基础:
python
处理器的体系架构:
x86 系统处理器:
指令不超过200条
arm处理器:
指令的种类五十几条
51系列处理器:
指令:
01110010 xxx
汇编语言:ADD SUB
编译型语言(静态语言):
B C C++ PASCAL
解释执行的语言:
Java python basic
python的官网:
网址:www.python.org
python版本:
v2.7
v3.5
v3.7
安装:
www.python.org/gettit
python的解释执行器:
Cpython(c语言)
/usr/bin/python3
/usr/bin/python
Jython(Java开发)
IronPython(.net开发)
进入python解释执行器
python3
退出:
>>>exit()
>>>quit()
>>>ctrl+D
ctrl+l清屏
第一个程序:
hello.py
写入内容见:
hello.py
python的执行:
python3 xxx.py
python的数据类型:
数字(整数 浮点数 复数 布尔型)
字符串等
整数:
10/-10/9999/0xabcd/0b1110/0o1234
浮点型:3.14/3.17e-1等同于0.317
2.9979e8(光速)
负数:complex
分为俩部分
实部(real)
虚部(image)
注:虚部以j或J结尾的数
表示方式:
(1+2j)
(-2j)
(-100+200j)
-2j等同于(0-2j)
布尔类型:
用来表示真和假两种状态的类型
TUre 表示真(条件满足或成立)
False 表示假(条件不满足或不成立)
表达式运算符
表达式是由数字或数字和运算符组成 在计算机语句中用来做一件事情并返回结果
算数运算符:
+
-
*
/
//
%
**
/除法:等同于数学中的除法
//:
除的结果去掉小数部分 向下取整
1/3=0.33333333
1//3=0
7//3=2
7.5//3=2
7.5//3.5=2
%求余:
7%3 得 1
7.5/3 得1.5
7.5 %3.5 得1.5
**幂运算:
x**y 意为 x的y次方
4**2 得16
3.0 **2.5 得
练习:
一个商店西瓜7元一个 带20 能买几个 生多少钱
print函数
简单格式:
print(要打印的数据,要打印的第二个数据)
练习:打印
*
* *
* * *
* * * * *
变量:
变量名的命名方法:
变量名必须为字母或下划线开头,后跟字母或数字 下划线
不合法变量名:
1a %100 %abc% $adv
赋值语句:
变量名=表达式
del 语句:
删除变量
格式:
del 变量名
复合赋值语句运算:
+= -= *= /= //= %= **=
格式:
变量 += 表达式# x += y等同于 x=x+y
练习:
温度转换:
摄氏温度 =5/9*(华氏温度-32)
开氏温度 =摄氏温度 +273.15
问:
100华氏温度转化为摄氏温度是多少度?
转为开氏温度是多少度?
比较运算符:
<
<=
>=
>
==
!=
语法:
左表达式<又表达式
数值对象构造函数:
float(obj)
用字符串或数字转换为浮点数,如果不给同参则返回0.0
int(x,base=10)
用数字或字符串转换为整数 如果不给出参数则返回0
complex(r=0.0 i=0.0) 用数字创建一个复数(实部为r 虚部为i)
bool(x) 用x创建一个布尔值
函数的调用:
函数名(传参列表)
基本输入函数:
input('提示字符串')
返回输入字符串(仅限python3版本)
示例:
输入一个数字 代表圆的半径 打印出这个圆的面积
见:area.py
s=input("请输入元的半径")
r=float(s)
area=3.14159*r**2
print("圆的面积是%s" % area)
练习:
输入一个人的北京社保基数(3082~23118)元
计算一个人的五险一金
社保分为养老 医疗 失业 工伤 生育
一金:
公积金
个人缴费比例 单位缴费比例
养老 8% 19%
失业 0.2% 0.8%
失业 0 0.8%
工伤 0% 0.5%
生育 0% 0.8%
医疗 2%+3元 10%
公积金 12 12%
要求:
写程序 输入您的社保基数 打印出各项要缴费的费用明细和总和
(公司部分总和和个人部分总和)
day05回顾:
python
版本:
v2.7
v3.5
Python两中执行模式“
交互模式:
python3<回车>
解释执行模式:
Python xxxxx.py
python的注释:
#开头至结尾
数据类型:
数字类型(整型int 浮点型float 复数complex 布尔型bool)
字符串
列表
元组
...
算数运算符:+-*/ // %
运算符的优先级:
变量
取名字
第一个字符[a-z A-Z]
第二个字符 [a-z A-Z 0-9]
变量名不能是关键字:
del if Ture False None while....
赋值语句:
变量名 =表达式(数字 运算符 函数调用 类....)
作用:
创建和修改变量
del语句:
删除变量
复合赋值语句
+= *=
语法:
变量名 +=表达式
比较运算符
> >= < <= != ==
函数:
print函数
input函数
float
int
complex
bool
函数调用:
函数名(传参列表)
练习:
输入一个人的北京社保基数(3082~23118)元
计算一个人的五险一金
社保分为养老 医疗 失业 工伤 生育
一金:
公积金
个人缴费比例 单位缴费比例
养老 8% 19%
失业 0.2% 0.8%
失业 0 0.8%
工伤 0% 0.5%
生育 0% 0.8%
医疗 2%+3元 10%
公积金 12 12%
要求:
写程序 输入您的社保基数 打印出各项要缴费的费用明细和总和
(公司部分总和和个人部分总和)
j=int(input("请输入您的社保基数(2038~23118):"))
y1=(j*0.08)
y2=j*0.19
s1=j*0.002
s2=j*0.008
g1=j*0
g2=j*0.005
sy1=j*0
sy2=j*0.008
yl1=j*0.02+3
yl2=j*0.1
gj1=j*0.12
gj2=j*0.12
print("个人需缴纳明细为:")
print("养老基金:",y1)
print("失业基金:",s1)
print("工伤基金:",g1)
print("生育基金:",sy1)
print("医疗基金:",yl1)
print("公积金基金:",gj1)
print("企业需缴纳明细为:")
print("养老基金:",y2)
print("失业基金:",s2)
print("工伤基金:",g2)
print("生育基金:",sy2)
print("医疗基金:",yl2)
print("公积金基金:",gj2)
print("个人所交费用总和:",y1+s1+g1+sy1+yl1+gj1)
print("个人所交费用总和:",y2+s2+g2+sy2+yl2+gj2)
day06
if语句:
作用:
让程序根据条件选择性的执行某条语句或某些语句
语法:
if 真值表达式1:
语句块1
elif 真值表达式2:
语句块2
elif 真值表达式3:
语句块3
...
else:
语句块4
示例:
游戏选择
练习:
做游戏:
假设您与电脑猜拳游戏 电脑出石头 您来选择输入:
石头 剪刀 布
1)石头
2)剪刀
3)布
请输入:
1 输出平局 电脑出的是石头 您出的是石头
2
print('''
0)拳头
1)剪刀
2)布
''')
c=int(input("请选择出出拳:"))
if c==1:
print("平局 电脑出的是石头 您出的是石头")
elif c==2:
print("您输了 电脑出的是石头 您出的是剪刀")
elif c==3:
print("您赢了 电脑出的是石头 您出的是布")
布尔运算:
not and or (对应c语言的 ! && ||)
布尔非操作 not:
语法:
not x
作用:
对 x 进行布尔取非 如bool(x)为True
则返回Flase 否则返回True
x=100
if not x:
print("not x 为真")
else:
print("not x 为假")
布尔与操作 and
语法:
x and y
注: x ,y代表表达式
作用:
优先返回假值对象
当x的布尔值为False时 返回x 否则返回y
当都是真时返回and 后的值
布尔或操作;or
语法:
x or y
优先返回zhen值对象
当x的布尔值为真时 返回x 否则返回y
练习:
输入一个人的年龄:
如果年龄小于0提示:输入不合法
如果年龄大于120提示:输入不合法
否则提示:输入年龄合法
四种解法
pass:
作用:
用来填充语法空白
字符串:
作用:
用来记录文本信息
表示方法:
'hello'
"hello"
'''hello'''
"""hello"""
字符串的运算:
+ += * *=
"您好"+"中国"
"您好中国"
+=
a="你好"
a +="china"
您好china
a="你好"
a*3
"您好您好您好"
练习:
输入一段文字:
请输入:明天放假!
打印:
您刚才说的是:"明天放假!"
输入一个整数n 打印一个长方形 n代表长方形的宽的字符数
例如:
请输入5
打印:
--------
| |
--------
i=int(input("请输入一个整数n:"))
print("n=",i)
print("+"+ "-"*i + "+")
print("|"+ " "*i + "|")
print("+"+ "-"*i + "+")
说明:
字符串的比较是按照ascii编码值进行依次比较
见:
man ascii
示例:
'A'<'B' Ture
len(x)
s=input("请输入字符")
print("您输入",len(S),"个字符")
练习:
分别输入三行字符串
将字符串进行又对齐显示
请输入:abc
请输入:sfffgd
请输入:1235
day06回顾:
if语句:
判断条件 选择执行某些语句
布尔运算
not and or
pass:
字符串:
‘’
“”
''''''
""""""
字符串的运算:
+ +=
* *=
> >= < <= ==!=
day07:
用转义序列代表特殊字符
\' 代表单个引号
\" 代表单个双引号
\n 代表换行
aaa 'b' "c" '''d''' """e"""
字符串的索引:
字符串索引上以下标的方式获取字符串的某个字符
语法:
字符串[整数值]
说明:
0代表第一个字符 1代表第二个字符 以此类推
-1代表倒数第一个字符 -2代表倒数第二个字符 以此类推
示例:
s='abcdefg'
s[0]=a
s[6]=g
s[-1]=g
s[-6]=a
python3常用序列函数:
len(seq) 返回字符串的长度
max (x) 返回字符串的最大值字符
min(x) 返回字符串的最小值字符
字符串编码转换函数:
ord(c) 返回一个字符串的UNICODE 的值
chr(i) 返回i这个值对应的一个字符
字符串相关的方法:
如何用python3帮助查看字符串的方法“
>>> help(类型名) 查看某个类型的文档
例:
>>> help(str) 查看字符串类型的文档
方法用法:
字符串.方法名(参数)
center
s='abcd'
s.center(10,"#")
count
s='what is your name'
s.count('h')
s='hello sunny! where is your shcool'
s.count(' ',14)
s.count('', 14,20)
endwith
s1="a.txt"
s2="qq.exe"
s1.endswith(.txt) #True
find
s="AACCVDVD"
s.find('hello') -1
index(查找下标)
isnumeric()
replace
s="hello jack"
s2=s.replace("hello","你好")
练习:
用键盘输入一个任意一个字符 判断您输入的字符串内有几个'i'字符并打印
打印出您输入的字符串的总长度(三分钟时间)
字符串格式表达式:
语法:
格式字符串 % 参数值
或
格式字符串 % (参数值1 , 参数值2, ....)
作用:
生成一定格式的字符串
格式化字符串中的占位符的类型码:
%s 字符串
%c 整数传为单个字符串
%d 整数
%f 浮点数
练习:
写一个程序 定一个合同的格式:
甲方:_____
乙方:_____
合同金额:________
日期:_____年____月____日
在程序输入是多次输入相应的参数 打印出完整的合同
请输入甲方姓名
请输入乙方姓名
金额:100000
请输入年
hetong="甲方:%s\n乙方:%s\n合同金额:%s\n日期:%d年%d月%d日\n"
s=input("请输入甲方姓名")
s1=input("请输入乙方姓名")
e=input("请输入金额")
y=int(input("请输入租房年"))
m=int(input("请输入租房月"))
d=int(input("请输入租房日"))
result=hetong % (s,s1,e,y,m,d)
print(result)
循环语句:
while 语句:
语法:
while 真值表达式
语句块:
else:
语句块2
说明:
else 部分可以省略
作用:
可以根据条件重复执行语句块
练习:
输入一个整数n 打印一个长方形 n代表长方形的宽的字符数和高得行数
i=0
n=int(input("请输入整数n:"))
print("+"+ "-"* n +"+")
while i<n:
print("|"+" "*n+"|")
i+=1
print("+"+ "-"* n +"+")
练习:
输入一个数n 打印 1+2+3+4+...+n的和
i=1
i=int(input("请输入"))
sum=0
while i<s:
sum=sum+i
i=i+1
print(sum)
写程序1/1+1/3+1/5+...+1/99的和
s=0
i=1
while i<=99:
print(i/2)
s +=1/i
i +=2
print("和:",s)
break语句:
作用:
用于循环语句中 当执行时终止循环
说明:
当break执行时 while 语句的else子句不会被执行
示例:
break.py
i=0
while i<10:
print(i)
break
i +=1
else:
print("循环条件不满足,while结束")
print("程序退出")
列表list
列表是一种容器 用来存储数据
列表内的数据有先后顺序关系
列表是可以被改变的容器
列表里可以存放任意类型的数据
列表的表示方式:
[]
列表的运算:
+ += * *=
> >= < <= == !=
比较的规则同字符串比较的规格完全相同
[1,2,3]>[1,2,2] True
[1,3,2]>[1,2,3] True
列表的索引操作:
同字符串的索引操作相同
列表是可变的容器 可以通过列表索引赋值来改变列表的元素
示例:
l=[1,2,3,4]
print(l[0]) 1
print(l[2]) 3
print(l[3]) 4
修改元素:
L[3]=5
print(L) [1,2,3,5]
del语句:
用于删除列表的元素
示例:
L=[1,2,3,4]
del L[3]
print(L) [1,2,3]
index返回元素下标
insert(3,7)添加元素 [1,2,3,4,7]
append() 添加元素(不用数下标)l.append(7) [1,2,3,4,7]
pop() 删除类似于del 但是可以绑定新的
clear() 清除列表中的数据 l.clear()
练习:
1/1-1/3+1/5-1/7+1/9....+1/(2*2*n-1)
i=1
s=0
while i<=1000000:
j=1/i*(-1)**(i//2)
s+=j
i+=2
print(s)
print(s*4)
i=1
s=0
sign=1 #记录计算机的变量的符号
while i<=1000000:
j=1/i*sign
s+=j
i+=2
sign= - sign
print(s)
print(s*4)
mony=int(input("请输入您当前的收入:"))
baoxian=int(input("请输入三线一金的个人缴费:"))
yingnashui=mony-baoxian-3500
if yingnashui<=0:
tax=0
elif 0< yingnashui<=1500:
tax=yingnashui*3/100-0
elif 1500< yingnashui<=4500:
tax=yingnashui*1/10-105
elif 4500< yingnashui<=9000:
tax=yingnashui*3/100-0
elif 9000< yingnashui<=35000:
tax=yingnashui*2/10-555
elif 0< yingnashui<=1500:
tax=yingnashui*3/100-0
day07回顾:
字符串:
格式化字符串:
字符串 % (参数1 ,参数2 ,....)
字符串 % 参数
转义字符:
'\'' '\"' '\n' '\\'
while 语句:
语法:
while 条件:
语句块1
else:
语句块2
break语句:
终止循环
列表:
可变的容器
增
S.append(x)
S.insert(index,x)
删
del S[index]
S.clear()
改
S[index] = x
差
L.find(x)
函数function
函数是可以重复执行的语句块 可以重复调用
作用:
1.定义用户级别的函数
2.用于封装一些语句 将这些语句看作一个整体
语句:
def 函数名(参数列表):
语句块
示例:
def myadd(a,b):
return a+b
print("100+200",myadd(100,200))
#定义函数:
def f1():
print("aaaaaaa")
print("bbbbbbb")
print("ccccccc")
#调用f1函数 必须加括号
f1()
练习:
写一个函数print_even
传入一个参数n代表终止整数 打印2 4 6 8....n
之间所有偶数
函数定义如下:
def print_even(n):
此处自己完成
#测试调用
print_even(10)
打印结果
2
4
6
8...
def print_even(n):
i=0
while n>i:
i+=2
print(i)
print_even(10)
None空值对象:
在函数定义的内部 如果没有return语句
则在函数执行完毕后默认返回 None
return语句:
语法:
return[表达式]
作用:
ef fa():
print('aaaa')
return
print('bbbb')
练习:
编写函数fun其功能是:计算并返回下载多项式的值
sn=1+1/2+1/3+1/4+...+1/n
def fun(n):
print(fun(3))
def fun(n):
i=1
s=0
while i<=n:
print(s)
d=1/i
s+=d
i+=1
return s
print(fun(3))
编写函数部计算下列级数的和:
sn=1*(1/2)+1/(2*3)+...+1/n(n+1)
def fun(n):
i=1
s=0
while i<=n:
print(s)
d=1/(i*(i+1))
s+=d
i+=1
return s
print(fun(1))
编写函数fun 其功能是计算并返回下载多项式的值
sn=1+1/(1+2)+1/(1+2+3)+...+1/(1+2+3+...n)
def fun(n):
print(fun(100))
def fun(n):
Sn=0 #总和
i=1
s=0 #分母的和
while i<=n:
s+=i
d=1/s
Sn+=d
i+=1
return s
print(fun(1))
def mymax(a,b)
if a>b:
return a
return b
作用:
给出两个参数 返回较大的一个
练习:
定义
def mymax(a,b,c):
返回最大的一个
def mymax(a,b,c)
m=a
if b>m:
m=b
if c>m:
m=c
return m
print(mymax(1,3,5))
列表相关的函数:
len(x) 返回列表或字符串的长度
max(x) 返回列表中的最大值
min(x) 返回列表中的最小值
sum(x) 返回列表中所有元素的和
随机模块:
导入随机模块:
import random as R
此时可以用R来调用此模块内的函数来生成随机数
R.choice(列表) 从列表中随机返回一个元素
练习:
用随机模块写一个猜拳游戏 随机让计算机生成一个值(石头剪刀布)
让用户输入出拳的选择:
0)石头
1)剪刀
2)布
3)退出游戏
循环猜拳 每次打印出猜拳的结果
day08回顾:
函数:
def 函数名(形参变量1,形参变量2,...)
语句块
函数调用:
函数名(实参1,实参2)
return语句:
语法:
return 表达式
示例:
return 等同于 return None
len(x)
man(x)
min(x)
sum(x)
day09笔记:
模块:
什么是模块:
模块是一个包含有一系列变量 函数 类等组成的程序组
作用:
1.让一些相关的变量 函数 类等有逻辑的组织在一起
使逻辑结构更加清晰
2.模块中的变量 函数 类等可提供组其他模块或程序使用
模块的导入:
三种导入语句:
import语句:
import 模块名1 [as 模块新名1]
from import语句:
from 模块名1 import 属性名 [as 模块新名1]
from import语句 *:
from 模块名 import *
math 数学模块
random 随机生成模块
time 日期时间模块
sys 系统信息模块
查看模块信息的方法:
>>>help (模块名)
如:
>>>import math
>>>help(math)
练习:
输入一个正方形的面积求其变长是多少? math.sqrt()
os模块(operator system):
创建文件夹 os.mkdir(path,mode=0o777,*,dir_fd=None)
删除文件夹 os.rmdir(path,*,dir_fd=None)
改变当前的工作路径 os.chdir(path)
运行linux命令 os.system(commandx)
返回path目录下的所有文件和文件夹的列表 os.listdir(path=None)
判断一个路径是否是文件夹 os.path.isdir(path)
示例:
任意输入一个文件夹名称 在此文件夹内
创建如下文件夹和文件
输入文件名称
|
+-----src
|------bin
+--lib
|
+----mylib.py
|
+----_int_.py
import os
os.mkdir('src')
os.mkdir('bin')
os.mkdir('lib')
os.system('touch mylib.py')
os.system('touch _init_.py')
或.py下
import os
root = input("请输入一个文件夹的名称")
os.mkdir(root)
os.mkdir(root+'src')
os.mkdir(root+'bin')
os.mkdir(root+'lib')
cmd='touch'+root+'mylib.py'
os.system(cmd)
cmd='touch'+root+'mylib.py'
os.system(cmd)
面向对象编程
类 class 和 对象 object
能够实现面向对象编程的语言有:
python java c++ c# swift
能够实现面向过程的编程语言
C Basic pascal
面向过程:有严谨的先后关系
车(类)
---->BYD(京A:88888)
---->BMW (京B:55555)
船
类的创建语法:
class 类名(继承列表):
类变量的定义
实例方法的定义
类的作用:
用类 可以创建一个或多个此类相关的对象(实例)
类内定义的变量和方法能彼此被类所创建的所有对象所共同拥有
实例:
#创建一个名为car的类
class Car:
pass
实例创建表达式:
类名([创建传参列表])
作用:
创建这个类的实例对象 并返回此实例对象的引用关系
实例:
bydf6=Car() #类名() 创建一个对象/实例
bmwx5=Car() #创建另一个对象
说明:
实例有自己的作用域和名字空间 可以为该实例添加变量(实例变量/属性)
实例可以调用类中的方法
实例可以访问类中的类变量
实例变量(也叫属性)
在python 中 每个实例可以有自己的变量 每个实例变量有自己独立的作用域和名字空间
实例变量的语法调用:
实例.变量名
实例变量的赋值规则
1.首次为实例变量赋值 则创建此实例变量
2.再次为实例变量赋值 则改变变量的绑定关系
bydf6.color="白色"
删除实例变量:
del 语句:
用法:
del 实例.实例变量
示例:
del bydf6.color
dir函数:
dir([obj])
1.如果给定参数 返回这个参数所有属性的字符串列表
2.如果不给定参数 则返回当前作用域内所有变量的字符串列表
例如:
dir(bydf6)
实例方法:
实例方法是类内定义的方法 此方法为所有此类的实例所共拥有 每个对象都可以调用此实例方法
实例方法语法:
class 类名(继承列表)
def 实例方法名(self,形参名1,形参名2....)
语句块
实例方法说明:
实例方法的实质是函数 是定义在类内的函数
实例方法的第一个参数代表调用这个方法的实例 一般命名为self
实例方法属于类的属性
调用方法:
实例.实例方法名(调用参数)
class Car:
def run(self,speed):
print("小汽车正在以",speed,"公里/每小时速度行驶")
def run_distance(self,land,km):
print("小汽车到达",land,"共行驶",km,"公里")
bydf6 = Car() #创建实例对象
bydf6.run(120) #调用run方法
bmwx5=Car()
bmwx5.run(528)
bmwx5.run_distance("北京",300)
练习:
用数学模块中的math.factorial(x)求如下多项式的和
Sn:1+1/1!+1/2!+1/3!+...+1/100!