python总结







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!


















































 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值