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
原文地址:https://www.cnblogs.com/sunflower666/p/9532388.html