一、变量

变量定义的规则:

      • 变量名只能是 字母、数字或下划线的任意组合
      • 变量名的第一个字符不能是数字
      • 以下关键字不能声明为变量名
        ['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']
推荐方式#下划线

age_of_oldboy = 56

number_of_students = 80 

id  位置==>内存

type ====>类型

value ==>值

二、程序交互  input

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 将用户输入的内容赋值给 name 变量
name = input("请输入用户名:")

# 打印输入的内容
print(name)

三、数据类型

int  ====>  整型数字

a = 10

str ====> 字符串类型

只要是引号里的,都是字符串类型

name = "zbb"
print(name)  

字符串分割

>>> msg = 'zbb|zxx'
>>> msg.split('|')
['zbb', 'zxx']
>>>  

列表

可以存放多个值,每个值都可以是任意类型

d =['a','12','c']
print (d)

['a', '12', 'c']  

字典

采用key:velue的方式储存值,可以存放多个值

每个value可以是任意数据类型

但key必须是不可变数据类型

dic = {'name':'zbb','age':'12'}
dic['name']
'zbb'
dic['name'] = 'zb'
 dic
{'name': 'zb', 'age': '12'}

可变类型(不可hash类型)

字典与列表属于可变类型

id 不变 ===== type不变========值变了

不可变数据类型

数字和字符串属于不可变类型

四、布尔类型

布尔类型很简单,就两个值 ,一个True(真),一个False(假)

>>> a=3
>>> b=5
>>>
>>> a > b #不成立就是False,即假
False
>>>
>>> a < b #成立就是True, 即真
True 

五、格式化输出

%s就是代表字符串占位符(也可以接受数字),除此之外,还有%d,是数字占位符

%%

第一个%是对第二个%的转译,告诉Python解释器这只是一个单纯的%,而不是占位符。

msg='''
------------ info of %s -----------
Name  : %s
Age   : %s
job   : %s
Hobbie: %s
------------- end -----------------

''' %('zbb','zbb','18','运维','玩')

print(msg )

 

------------ info of zbb -----------
Name  : zbb
Age   : 18
job   : 运维
Hobbie: 玩
------------- end -----------------

 

改变字符串类型

 

age = input('your age :')
x = int(age)
print(x,type(x))
#简化
x = int(input('your age :'))
print(x,type(x))

 

六、运算符

计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算、成员运算

算数运算

以下假设变量:a=10,b=20

比较运算

以下假设变量:a=10,b=20

赋值运算

以下假设变量:a=10,b=20

逻辑运算

针对逻辑运算的进一步研究:

  1,在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。

Python运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:

运算符 描述
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 'AND'
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符

七、流程控制之if...else

假如把写程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分叉口,想象现实中,你遇到了分叉口,然后你决定往哪拐必然是有所动机的。你要判断那条岔路是你真正要走的路,如果我们想让程序也能处理这样的判断怎么办? 很简单,只需要在程序里预设一些条件判断语句,满足哪个条件,就走哪条岔路。这个过程就叫流程控制。

if...else 语句

单分支

if 条件:
    满足条件后要执行的代码

双分支

if 条件:
    满足条件执行代码
else:
    if条件不满足就走这段
age = 10 

if  age > 40:
    print('lnb ')
else:
    print("xnb")

多分支+判断

  

age = 50
age_inp =  int(input('请输入我的年龄'))
if age_inp > age:
    print('too big')
elif  age_inp < age:
    print('too small')
else:
    print('you get it ')

八、流程控制之while循环

count = 0
while count <= 100:
    if count >3 and count <= 96:
        count +=1
        continue# break #跳出本层循环 continue 退出本次循环
    print(count)
    count+=1

while与if配合玩游戏三次机会

age = 50
count = 1
while count <=3:
    age_inp =  int(input('请输入我的年龄'))
    if age_inp > age:
        print('too big')
        count+=1
    elif  age_inp < age:
        print('too small')
        count+=1
    else:
        print('you get it ')
        break

写一个输入q 退出的程序

while  True:
    cmd = input('>>: ')
    if  cmd == 'q':
        break

请输入用户名+密码,错误 超过三次退出

count =
while  True:
    :
        print("输入次数过多!")
        break
    user=input('user: ')
    password=input('password: ')
    ":
        print( '输入正确!')
        break
    else:
        print('输入错误!')
        count+=

请输入用户名+密码,错误 超过三次退出 。成功之后,执行命令,按q退出

count =0
while  True:
    if count >2:
        print("输入次数过多!")
        break
    user=input('user: ')
    password=input('password: ')
    ":
        print( '输入正确!')
        while  True:
            cmd = input('>>: ')
            if cmd == 'q':
                break
            print('exec %s' %cmd)
    else:
        print('输入错误!')
        count+=1

优化  上面代码

count =0
tag = True
while  tag:
    if count >2:
        print("输入次数过多!")
        break
    user=input('user: ')
    password=input('password: ')
    ":
        print( '输入正确!')
        while  tag:
            cmd = input('>>: ')
            if cmd == 'q':
                tag = False
                continue
            print('exec %s' %cmd)
    else:
        print('输入错误!')
        count+=1

while与else连用

count = 1
while  count <=5:
    #if count ==2:
        #break
    print(count)
    count+=1
else:
    #while没有被break打断的时候可以执行else的子代码
    print('========>>>')

作业

count =1
age = 50
while True:
    if count > 3:
        jx = input('是否要继续?')
        if jx == 'y':
            count = 1
            continue
        elif jx == 'n':
            break
    age = int(input('请输入我的年龄'))
    if age == 50:
        print('猜对了')
        break
    else:
        print('猜错了')
    count+=1

基础需求:

  • 让用户输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后退出程序

升级需求:

  • 可以支持多个用户登录 (提示,通过列表存多个账户信息)
  • 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)

  

python自动化day1的更多相关文章

  1. Day1 老男孩python自动化运维课程学习笔记

    2017年1月7日老男孩python自动化运维课程正式开课 第一天学习内容: 上午 1.python语言的基本介绍 python语言是一门解释型的语言,与1989年的圣诞节期间,吉多·范罗苏姆为了在阿 ...

  2. python自动化运维学习第一天--day1

    学习python自动化运维第一天自己总结的作业 所使用到知识:json模块,用于数据转化sys.exit 用于中断循环退出程序字符串格式化.format字典.文件打开读写with open(file, ...

  3. python自动化运维之路~DAY5

    python自动化运维之路~DAY5 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模块的分类 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数 ...

  4. flow.ci + Github + Slack 一步步搭建 Python 自动化持续集成

    理想的程序员必须懒惰,永远追随自动化法则.Automating shapes smarter future. 在一个 Python 项目的开发过程中可能会做的事情:编译.手动或自动化测试.部署环境配置 ...

  5. Selenium2+python自动化23-富文本(自动发帖)

    前言 富文本编辑框是做web自动化最常见的场景,有很多小伙伴遇到了不知道无从下手,本篇以博客园的编辑器为例,解决如何定位富文本,输入文本内容 一.加载配置 1.打开博客园写随笔,首先需要登录,这里为了 ...

  6. Selenium2+python自动化24-js处理富文本(带iframe)

    前言 上一篇Selenium2+python自动化23-富文本(自动发帖)解决了富文本上iframe问题,其实没什么特别之处,主要是iframe的切换,本篇讲解通过js的方法处理富文本上iframe的 ...

  7. Selenium2+python自动化7-xpath定位

    前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. ...

  8. Selenium2+python自动化13-Alert

    不是所有的弹出框都叫alert,在使用alert方法前,先要识别出它到底是不是alert.先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决.alert\confirm\prompt弹出框 ...

  9. 【python自动化第十一篇】

    [python自动化第十一篇:] 课程简介 gevent协程 select/poll/epoll/异步IO/事件驱动 RabbitMQ队列 上节课回顾 进程: 进程的诞生时为了处理多任务,资源的隔离, ...

随机推荐

  1. js实现鼠标拖拽

    主要原理: 1.当鼠标按下时,记录鼠标坐标,用到的是 onmousedown: 2.当鼠标移动时,计算鼠标移动的坐标之差,用到的是 onmousemove: 3.当鼠标松开时,清除事件,用到的是 on ...

  2. 解决iText+freemark导出pdf不支持base64的解决办法

    工具类: package test; import java.io.IOException ; import org.w3c.dom.Element ; import org.xhtmlrendere ...

  3. array_unique() 函数移除数组中的重复的值

    array_unique() 函数移除数组中的重复的值,并返回结果数组. 当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除. 返回的数组中键名不变.

  4. ElasticSearch 入门(转)

    最大的特点: 1. 数据库的 database, 就是  index 2. 数据库的 table,  就是 tag 3. 不要使用browser, 使用curl来进行客户端操作.  否则会出现 jav ...

  5. Mat的迭代器使用

    如果你熟悉 C++的 STL 库,那一定了解迭代器(iterator)的使用.迭代器可以方便地遍历所有元素.Mat 也增加了迭代器的支持,以便于矩阵元素的遍历.下面的例程功能跟上一节的例程类似,但是由 ...

  6. Servlet处理表单数据

    Servlet 表单数据 很多情况下,需要传递一些信息,从浏览器到 Web 服务器,最终到后台程序.浏览器使用两种方法可将这些信息传递到 Web 服务器,分别为 GET 方法和 POST 方法. 使用 ...

  7. python部分运算符理解

    1.//取整除 5//3得到1 2.%取余 5%3得到2 3.<<左移 2<<2得到8 2用二进制表示为10,向左移两位得到1000,即十进制的8 4.>>右移 1 ...

  8. 解决.jsp及静态资源文件访问404的问题

    我们在做Web项目时,经常将.jsp文件放到webapp\WEB-INF下,这时,我们访问jsp等文件的时候,就会报404. 如果是纯前后端分离的项目,后端只返回数据,不处理页面,也没问题.但,有时我 ...

  9. dd相关命令

    用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. if= 输入文件或设备名称 eg:if=u-boot-with-spl.bin of=输出文件或设备名称 eg:of=/dev/sdb bs ...

  10. 【转】虚拟机 NAT网络设置

    我以下写的配置方法别人在网上已经发布过类似的文章.但是我觉的别人写的东西不一定是对的,必须自己亲自试验一下才行.就像有句话说的:“实践是检验真理的唯一标准”以下是我操作的步骤.希望不足的地方,读者能够 ...