1 Python简介

  • python应用用途:写代码帮你测试、网络爬虫、数据分析、web开发、人工智能、自动化运维、自动化测试、嵌入式开发、黑客
  • python特点:第三方库特别多,安装后即可使用。所以python上手比较容易(eg.xpin模块,将中文转换成拼音)
  • 自动化测试主流开发语言:java、python(自动化测试开发语言与被测系统的开发语言没有关系)。python不是脚本语言。脚本语言是比较单一
  • 主流开发语言:java、python、php、ruby 开发语言分为:
  • 编译型语言:编译型语言,在运行代码之前,首先将源代码编译生成机器语言,再由机器运行机器码二进制)。eg. c/c++/c#。
  • 解释型语言:相对于编译型语言存在的,源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。运行效率没有编译型语言快。eg. Python/JavaScript /ruby/Perl /Shell等都是解释型语言。
  • Python版本:2.x 及3.x,现在基本用3.x

2 Python安装

  • 下载安装包,windows下直接傻瓜式安装

pycharm能进行机器学习吗 pycharm能写哪些语言_Python

 

  • 配置环境变量:python.exe路径

pycharm能进行机器学习吗 pycharm能写哪些语言_pycharm能进行机器学习吗_02

  • python执行:
  • pycharm工具:可以自动补全命令,推荐使用。

pycharm能进行机器学习吗 pycharm能写哪些语言_python_03

 

  • pycharm交互式:快速运行。可用于调试。

pycharm能进行机器学习吗 pycharm能写哪些语言_开发工具_04

 

  • 交互式编辑工具:自带的Idle.exe。特点:输入代码后回车,自动执行。没有自动补全功能,不好用。了解即可。

pycharm能进行机器学习吗 pycharm能写哪些语言_pycharm能进行机器学习吗_05

  • 命令行模式:cmd输入Python,直接编辑代码。缺点也是不能自动被全命令,不好用。

pycharm能进行机器学习吗 pycharm能写哪些语言_ruby_06

 

3 Pycharm常用设置

3.1pycharm常用快捷键

  • Ctrl+Shift+F10 运行当前的页面
    Ctrl + / 注释(取消注释)选择的行 (加#号单行注释,加3个单引号前后括起来实现多行注释)
    Ctrl+Shift+F 高级查找
    Shift + Enter 开始新行
    TAB Shift+TAB 缩进/取消缩进所选择的行
    Ctrl + Y 删除当前插入符所在的行
    Ctrl + D 复制当前行、或者选择的块
    Ctrl + Shift + J 合并行
    Delete 删除到字符结尾
    Backspace 删除到字符的开始
    Ctrl + NumPad+/- 展开或者收缩代码块
    Ctrl + Shift + NumPad+ 展开所有的代码块

     标签页右键→Split Vertically  分屏显示  


3.2pycharm常用调试

  • 在代码行号处单击,打断点
  • 右键debug
  • 按如下按钮执行下一步(或按F8),检查变量值及执行的代码行

pycharm能进行机器学习吗 pycharm能写哪些语言_ruby_07

 

4 Python基础



4.1 python语法

  • tab缩进:Python以缩进来区分代码块。只要有冒号":",下一行代码要加上缩进(可参考条件判断案例)
  • 分号:python在代码末尾可以不需要加分号";"
  • 等号:判断符号中,需要使用2个等号”==“
  • 百分号:格式化用如%s,如果想表示百分号,每打一个百分号,需要2个百分号,如打印%%,需要写%%%%

 

 



4.2 数据类型

    • int()--整型、str()--字符串、float()--小数、list--数组



    4.2.1 int

    a // b 表示用a除以b,把小数位舍掉

    • 数据类型转换:
    1 # input默认都是string类型,整型数字需要通过int(xxx)进行转换
     2 age = input ('请输入年龄:')
     3 print ('1',type(age))
     4 age = int (age)
     5 print ('2',type(age))



    1 # 运行结果如下:
    2 请输入年龄:20
    3 1 <class 'str'>
    4 2 <class 'int'>



     



    4.2.2 string
    • string格式化:
    1 # 格式化字符串:登录成功提示
     2 import datetime
     3 user = 'zr'
     4 today = datetime.date.today()
     5 today = str(today)
     6 #1、+: 使用+号拼接,不推荐使用
     7 msg1 = '欢迎光临'+user+',今天的日期是:'+today
     8 # 2、%s: 推荐使用,使用%s等占位。%s:格式化为字符串
     9 msg2 = '欢迎光临%s,今天的日期是:%s\n' %(user,today)
    10 # 3、format:推荐使用,使用{}占位。在参数值较多的情况下更直观,不需要按顺序赋值
    11 msg3 = '欢迎光临{name},今天的日期是:{date}\n'.format(date=today,name=user)
    12 sql = 'insert into {} value {}:'.format('a1,','b2') # {}内可以为空,这种方式format是按顺序赋值
    13 d = {'name':'小黑','sex':'女'}
    14 # 4、fomat_map: 与format的区别是format_map的参数是字典
    15 words='名字:{name},性别:{sex}'.format_map(d)
    16 print ('1=====',msg1)    #print后自动换行
    17 print ('2=====',msg2*3)  #打印3遍,需要加\手动换行
    18 print ('3=====',msg3)
    19 print('4=====',sql)
    20 print('5=====',words)



    1 1===== 欢迎光临zr,今天的日期是:2018-08-24
    2 2===== 欢迎光临zr,今天的日期是:2018-08-24
    3 欢迎光临zr,今天的日期是:2018-08-24
    4 欢迎光临zr,今天的日期是:2018-08-24
    5 
    6 3===== 欢迎光临zr,今天的日期是:2018-08-24
    7 
    8 4===== insert into a1, value b2:
    9 5===== 名字:小黑,性别:女



     

    4.2.3 float
    • int、float格式化:
    1 # 格式化数字:年龄分数提示
    2 age = input('请输入年龄:')
    3 age1 = int (age)
    4 score = input ('请输入分数:')
    5 score1 = float(score)
    6 msg1 = '年龄是:%d,分数是:%.3f'%(age1,score1) # %d: 格式化成整型;%.2f :格式化为2位小数
    7 msg2 = '年龄是:%s,分数是:%s'%(age1,score1)  # %s:可以显示字符串、数字
    8 print (msg1)
    9 print (msg2)



    1 # 运行结果如下:
    2 请输入年龄:20
    3 请输入分数:90.61
    4 年龄是:20,分数是:90.610
    5 年龄是:20,分数是:90.61



    4.2.3 list(列表)
    • List(列表) 是 Python 中使用最频繁的数据类型。列表是写在方括号([ ])之间、用逗号分隔开的元素列表。
      列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
    • 特点:

    1、List写在方括号之间,元素用逗号隔开,下标从0开始。

    2、和字符串一样,list可以被索引和切片。

    3、List可以使用+操作符进行拼接。

    4、List中的元素是可以改变的。

    • 定义数组:
    • 一维数组:listname = ['value1','value2','valuen']
    • 二维数组:listname =[ [10,11,12],[20,21,22]],元素20的下标为listname[1][0]
    • 三维数组:listname =[[10,11,12],[20,21,22,23,[31,32,33],5],3],元素32的下标为listname[1][4][1]

     



    4.2.4 dictionary(字典)
    • 字典(dictionary)是Python中另一个非常有用的内置数据类型。列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
    • 字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。
    • 特点:

    1、字典是一种映射类型,它的元素是键值对。

    2、字典的关键字必须为不可变类型,且不能重复。

    3、创建空字典使用 { }



     



    4.3 变量

    • 变量是存储在内存中的值。
    • 定义变量:格式为key = value ,不需要声明数据类型,python会自动识别数据类型。变量名只能是 字母、数字或下划线的任意组合。变量名的第一个字符不能是数字。
    • 批量定义变量:a,b,c,d=1,2,3,4      a=b=c=d=1
    • 以下关键字不能声明为变量名

    ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 
    'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 
    'try', 'while', 'with', 'yield']


    • 单引号与双引号的使用:
    • 变量值中只包含单引号时,外部要用双引号括起来。

    1 print ("I'm zr") 

    • 变量值中只包含双引号时,外部要用单引号括起来。

    1 print ('肉肉长得很”帅”') 

    • 变量值中包含单引号及双引号时,外部要用3个单引号括起来。

    1 print ('''I'm zr,肉肉长得很”帅”''') 

    • 3个单引号或者3个双引号括起来,也可以实现多行注释的效果

     

    1 '''
     2 import random
     3 num = random.randint(1,100) #随机产生的数字
     4 print(num)
     5 #代码都是从上到下运行
     6 count = 0
     7 while count<7:
     8     count+=1
     9     guess = input('请输入一个数字:')
    10     guess = int(guess) #转成int类型
    11     if guess>num:
    12         print('猜大了')
    13     elif guess==num:
    14         print('恭喜你,猜对了')
    15         break
    16     else:
    17         print('猜小了')
    18 else:
    19     print('错误次数过多')
    20 '''



     

     

    • 输入输出: 
    1 # 输入输出(只要是Input输入的,都是string类型)
    2 name = input('请输入你的名字');
    3 print (name);


    4.4 条件判断

    • 格式:if xxx: code  elif xxx: code   elif xxx:code  else: code  
    • 非空即真(if not username or not passwd  or not cpasswd: xxxxx  #username或passwd或cpasswd为空)
    • 非零即真 (if i: xxxxx  # i非0)
    • 常用的条件判断符号:
    • 等于     ==
    • 大于          >
    • 小于          <
    • 大于等于  >=
    • 小于等于  <=
    • 不等于      !=,不能写<>
    • 且      and,不能写&&
    • 或            or
    • 常用的运算符
    • count +=1     (count = count+1)
    • count -=1      (count = count-1)
    • count *=1      (count = count*1)
    • count /=2      (count =count/2)
    • 基本嵌套条件判断:
    1 # if else
    2 name = input ('请输入名字:')
    3 if name == "肉肉":
    4     print ('你最帅!')
    5 elif name == "小敏儿":
    6     print ('你最美!')
    7 else:
    8     print ('哈哈哈!')



    •  嵌套条件判断:
    1 # 嵌套条件判断
     2 name = input ('请输入名字:')
     3 age = input ('请输入年龄:')
     4 age = int (age)
     5 if name == "肉肉":
     6     print ('你最帅!')
     7     if age > 30:
     8         print (age,'成熟魅力男!!')
     9 elif name == "小敏儿":
    10     print ('你最美!')
    11 else:
    12     print ('哈哈哈!')


    4.5 循环

    • break:立即结束循环,不管循环有没有完成
    • continue:结束本次循环,继续进行下一次循环
    • Python中的for、while循环都有一个可选的else分支(类似if语句和try语句那样),在循环迭代正常完成之后执行。换句话说,如果我们不是除正常以外的其他方式退出循环,那么else分支将被执行。也就是在循环体内没有break语句、没有return语句,或者没有异常出现。

     



    4.5.1 while 循环
    • while循环,要带上计数器,如果使用continue,计数器不会累计,可能会产生死循环
    • while + break
    1 # while循环:猜数字游戏
     2 import random
     3 num = random.randint(1,100) # 随机产生一个1~100的数字
     4 count = 0
     5 while count < 3:
     6     guess = input ('请输入你猜的数字:')
     7     guess = int (guess);
     8     if guess == num:
     9         print ('猜中了')
    10         break   #立即结束循环
    11     elif guess > num:
    12         print ('猜大了')
    13     else:
    14         print ('猜小了')
    15     count = count +1
    16 else:    #循环正常结束后,会执行
    17     print ('GAME OVER,LOSED!!')


    1 # 运行结果如下:
    2 请输入你猜的数字:8
    3 猜小了
    4 请输入你猜的数字:30
    5 猜小了
    6 请输入你猜的数字:56
    7 猜大了
    8 GAME OVER,LOSED!!


    • while + continue
    1 # while循环猜数字游戏
     2 import random           #运行顺序1
     3 num = random.randint(1,100)            #运行顺序2 ,假设num=51
     4 count = 0           #运行顺序3 
     5 while count < 3:           #运行顺序4、11
     6     guess = input ('请输入你猜的数字:')           #运行顺序5,输入guess=91 
     7     guess = int (guess);           #运行顺序6
     8     if guess == num:           #运行顺序7
     9         print ('猜中了')
    10         break   #立即结束循环
    11     elif guess > num:           #运行顺序8
    12         print ('猜大了')           #运行顺序9
    13         continue           #运行顺序10,不执行count = count +1,直接跳出本次循环,循环一直到猜中了break
    14     else:
    15         print ('猜小了')
    16         continue
    17     count = count +1
    18 else:    #循环正常结束后,会执行
    19     print ('GAME OVER,LOSED!!')



     



    4.5.2 for循环
    •  python的for循环,不需要计数器,与while不同的是,使用continue,count也会累计,不会死循环
    1 # for循环:猜数字游戏
     2 for i in range(3):
     3     guess = input ('请输入你猜的数字:')
     4     guess = int (guess);
     5     if guess == num:
     6         print ('猜中了')
     7         break   #立即结束循环
     8     elif guess > num:
     9         print ('猜大了')
    10     else:
    11         print ('猜小了')
    12 else:    #循环正常结束后,会执行
    13     print ('GAME OVER,LOSED!!')



     注册小程序练习
    写一个登陆的小程序
        username = tanailing
        passwd = 123456
        1、输入账号密码,输入正确就登陆成功,
            提示欢迎xxxx登陆,今天的日期是多少
        2、最多输入错误3次
            账号/密码错误,请重新登陆
        3、如果失败测试超过3次,提示,失败次数过多
        4、要校验输入是否为空,如果输入为空,你要提示账号./密码不能为空
           什么都不输入和输入一个空格多个空格都算空。
           输入为空也算操作错误一次




    pycharm能进行机器学习吗 pycharm能写哪些语言_ruby_08

    pycharm能进行机器学习吗 pycharm能写哪些语言_pycharm能进行机器学习吗_09

    1 #  for循环:登录
     2 import datetime
     3 
     4 username = 'tanailing'
     5 passwd = '123456'
     6 today = datetime.date.today()
     7 times = 3
     8 for i in range(3):
     9     name = input("请输入您的账号:")  # 输入账号
    10     passw = input("请输入您的密码:")  # 输入密码
    11     if name.strip() == username:  # 输入的用户名正确的情况
    12         if passw.strip() == passwd:  # 输入的密码正确的情况
    13             print('%s欢迎您登录!'\
    14                   '今天是 %s ' % (name, today))
    15             break
    16         elif passw.strip() == '':  # 输入的密码为空的情况
    17             times -= 1  # 可实施次数减1
    18             print("账号/密码不能为空!")
    19             print('您还有 %s 次机会' % (times))
    20 
    21         else:  # 输入的密码错误或者其他的情况
    22             times -= 1  # 可实施次数减1
    23             print("账号/密码错误,请重新登陆!")
    24             print('您还有 %s 次机会' % (times))
    25     elif name.strip() == '':  # 输入的用户名为空的情况
    26         times -= 1  # 可实施次数减1
    27         print("账号/密码不能为空!")
    28         print('您还有 %s 次机会' % (times))
    29     else:  # 输入的用户名错误或者其他的情况
    30         times -= 1  # 可实施次数减1
    31         print("账号/密码错误,请重新登陆!")
    32         print('您还有 %s 次机会' % (times))
    33 else:  # 实施错误次数>3的情况
    34         print("错误次数过多!账号已锁定!请稍后再试!")


    View Code



    pycharm能进行机器学习吗 pycharm能写哪些语言_ruby_08

    pycharm能进行机器学习吗 pycharm能写哪些语言_pycharm能进行机器学习吗_09

    1 #  while 循环:登录
     2 import datetime
     3 count = 0
     4 username = 'tanailing'
     5 passwd = '123456'
     6 times = 3
     7 today = datetime.date.today()
     8 while count < 3:
     9     name = input('请输入您的账号:')  # 输入账号
    10     passw =input('请输入您的密码:')  # 输入密码
    11     if name.strip() == username and passw.strip() == passwd:  # 输入的账号和密码都匹配的情况
    12         print('%s欢迎您登录!今天是 %s ' % (name, today))
    13         break  # 跳出当前所有循环
    14     elif name.strip() == '' or passw.strip() == '':  # 输入的账号或者密码任意一个为空的情况
    15         print('账号/密码不能为空!')
    16         times -= 1  # 可实施次数减1
    17         count += 1  # 循环计数器加1
    18         print('您还有 %s 次机会' % (times))
    19         continue
    20     elif name.strip() != username or passw.strip() != passwd:  # 输入的账号或者密码任意一个不匹配的情况
    21         print('账号/密码错误,请重新登陆!')
    22         times -= 1  # 可实施次数减1
    23         count += 1  # 循环计数器加1
    24         print('您还有 %s 次机会' % (times) )
    25         continue
    26 else:  # 实施错误次数>3的情况
    27         print("错误次数过多!账号已锁定!请稍后再试!")


    View Code