zoukankan      html  css  js  c++  java
  • day2_Python_基础_Pycharm常用设置、数据类型、条件判断、循环

    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下直接傻瓜式安装

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

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

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

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

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

    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),检查变量值及执行的代码行

    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
    ' %(user,today)
    10 # 3、format:推荐使用,使用{}占位。在参数值较多的情况下更直观,不需要按顺序赋值
    11 msg3 = '欢迎光临{name},今天的日期是:{date}
    '.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语句,或者没有异常出现。--引用https://www.cnblogs.com/gengcx/p/6707017.html
     

    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、要校验输入是否为空,如果输入为空,你要提示账号./密码不能为空
    什么都不输入和输入一个空格多个空格都算空。
    输入为空也算操作错误一次

     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
     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
  • 相关阅读:
    tyvj 1031 热浪 最短路
    【bzoj2005】 [Noi2010]能量采集 数学结论(gcd)
    hdu 1394 Minimum Inversion Number 逆序数/树状数组
    HDU 1698 just a hook 线段树,区间定值,求和
    ZeptoLab Code Rush 2015 C. Om Nom and Candies 暴力
    ZeptoLab Code Rush 2015 B. Om Nom and Dark Park DFS
    ZeptoLab Code Rush 2015 A. King of Thieves 暴力
    hdoj 5199 Gunner map
    hdoj 5198 Strange Class 水题
    vijos 1659 河蟹王国 线段树区间加、区间查询最大值
  • 原文地址:https://www.cnblogs.com/sunflower666/p/9532388.html
Copyright © 2011-2022 走看看