一、python介绍&循环

2018-08-06 09:14:28来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

一、第一个python程序

python代码的2种执行方式:

文件执行

  1. 使用notepad++创建一个文件,输入以下代码
1 print('hello,world')

   2.   保存为hello.py文件

   3.  进入cmd命令行,执行 python hello.py  看结果

交互器执行

   python交互器主要用来对代码进行调试使用。

 

二、变量

  1. 什么是变量:量是记录现实世界的某种状态 , 变是记录的状态需要经常变化的
  2. 为什么要有变量  :程序执行的本质就是一系列的变化,所以需要一种机制能够反映执行时的状态以及状态的变化
  3. 怎么用变量

 

1、如何定义变量,变量定义分为三部分

  变量名:专门用来访问变量值的

  赋值符号:将值与变量名绑定到一起

  值:是我们存储的数据(内存),用来表示现实世界的某种状态

1 level=10
2 age=20
3 name='momo'

2、变量名的定义规范

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

3、变量名的命名风格有2种:(前提:变量名应该见名知意)

  • 驼峰体

 NumberOfStudents=99 

  • 下划线

 number_of_students=99 

 

4、is 与 ==

 1 #ps:id不相同,值可以相同。
 2 #       id如果相同,值一定相同。
 3
 4 #is判断id号,id即为内存地址
 5 x=333
 6 y=333
 7 print(id(x))
 8 print(id(y))
 9 print(x is y)
10 
11 #==判断值是否相等
12 print(x == y)

 

5、变量的内存管理

  python解释器自带垃圾回收机制,会在变量值没有任何引用的情况下  自带回收垃圾

 

6、常量:不变的量

  在python中没有定义常量的语法,变量名全为大写加下划线组合    为常量   是一种约定俗成的说法(规范)

 

三、与用户交互

 

username=input('please enter your name:').strip()
print('hello world','hello',username)

  接受用户输入的信息,执行输出加输入的结果

 

四、基本数据类型

1.整数(int)

  记录年龄、等级、各种号码

age=10 #age=int(10)
print(type(age))

2.浮点型(float)

  记录身高、体重、薪资等

salary=3.1 #salary=float(3.1)
print(type(salary))

3、字符串(str)

  在单引号、双引号、三引号内包含的一串字符

  记录描述性质的状态

x='abc' #x=str('abc')
y="def"
z="""aaaa"""
print(type(x))
print(type(y))
print(type(z))
  • 字符串可以使用+与*
 1 x='hello'
 2 y='world'
 3 res=x + y
 4 print(res)
 5 
 6 name=input('>>: ')
 7 print('my name is ' + name)
 8 
 9 x='hello'
10 print(x*10)
11 print(1)
12 print(2)
13 print(3)
14 print('='*100)
15 print(4)
16 print(5)
17 print(6)
View Code

 

4、列表类型(list)

  在[ ] 内用逗号隔开,存放多个任意类型的值

  作用:用于存放多个值,并且可以按照索引灵活取出任意位置对应的值

 1 l=[1,3.1,'aa',[1,2]] #l=list([1,3.1,'aa',[1,2]])
 2 print(type(l))
 3 
 4 hobbies=['read','sleep','eat','music']
 5 print(hobbies[3])
 6 
 7 students_info=[
 8     ['momo',18,['play',]],
 9     ['lisi',18,['play','sleep']]
10 ]
11 print(students_info[1][2][1])
View Code

ps:当存放的多个值都是统一类型时,最好用列表

 

5、字典类型(dict)

  在{ }内用逗号隔开多个元素,每一个元素都是k : v的形式,其中v可以是任意数据类型,而k大部分都应该是字符串类型。

  作用:用来存放多个值,但是每一个值都有一个明确的key来与之对应,key对value具有描述的功能

1 user_dic={
2     '1':'小当家',
3     '2':'小蘑菇',
4     '3':'小火柴'
5 }
6 print(user_dic['2'])

ps:当存放多个值种类有明显的区别时最好用字典

 

6、布尔值

  布尔值就两个 : True ,False

  作用:用于判断真假

五、格式化输出

  s%就是代表占位符(d%代表数字占位)

 1 name=input('>>: ')
 2 print('my name is',name)
 3 
 4 inp_name=input('name>>: ')
 5 inp_age=input('age>>: ')
 6 print('my name is',inp_name,'my name is',inp_age)
 7 print('my name is %s my age is %s' %(inp_name,inp_age))
 8 
 9 #%d只能接收数字类型,而%s可以接收任意数据类型
10 print('my age is %d' %18)
11 print('my age is %d' %'aaa')
View Code

六、基本运算符

  数学运算

1 print(1+10)
2 print(1-10)
3 print(2*10)
4 
5 print(10 / 3) # 有零有整
6 print(10 // 3) # 只取整数部分
7 print(10 % 3)   #取余数
8 
9 print(2**3) #即为2的3次方

  比较运算

print(1 == 1)   #是否相等
print(10 >= 10) #是否大于等于
print(10 > 10)  #是否大于
print(1 != 2) # 是否不等于

  赋值运算

 age=18 age+=1 #age=age+1 print(age) age-=1 

  交叉赋值

1 m=10
2 n=11
3 temp=m
4 m=n
5 n=temp
6 print(m,n)
7 
8 m,n=n,m ##python的精髓
9 print(m,n)

  变量值的解压

 1 nums=[23,33,44,55,66]
 2 #mon1=nums[0]
 3 #mon2=nums[1]
 4 #mon3=nums[2]
 5 #mon4=nums[3]
 6 #mon5=nums[4]
 7 mon1,mon2,mon3,mon4,mon5=nums #解压值
 8 print(mon1,mon2,mon3,mon4,mon5)
 9 
10 _=33333
11 print(_)
12 mon1,mon2,*_=nums
13 print(mon1,mon2)
14 
15 
16 m,*_,n=nums
17 print(m,n)
View Code

  逻辑运算符

 1 #and逻辑与:and用于连接左右两个条件,只有在左右两个条件的结果都为True的情况下and的最终结果才为True
 2 print(3 > 2 and 'momo' == 'momo')
 3 
 4 #or逻辑或:or用于连接左右两个条件,左右两个条件的结果但凡有一个为True,or的最终结果就为True
 5 print(True or False)
 6 print(True or True)
 7 print(False or False)
 8 
 9 print((3 > 2 and 4 > 3) or (1 == 1 and 'x' == 'x' or 3 >= 3))
10 
11 print(not 1 > 2)
View Code

  成员运算

1 la=['xiaomogu','xiaohuochai','xiaonvhai']
2 print('xiaohuochai' not in la)
3 print(not 'xiaonvhai2' in la)

 

七、流程控制之if判断

  单分支:满足条件后要执行的代码

 sex='female'
 age=19
 is_beautiful=True
 
 if sex == 'female' and age > 16 and age < 20 and is_beautiful:
     print('表白...')

  双分支:满足时执行一段,不满足条件时执行另一段代码

1 sex='female'
2 age=60
3 is_beautiful=True
4 
5 if sex == 'female' and age > 16 and age < 20 and is_beautiful:
6     print('表白...')
7 else:
8     print('阿姨好')
View Code

  if判断的嵌套:if判断中接另一个if判断

 1 sex='female'
 2 age=18
 3 is_beautiful=True
 4 is_successfull=False
 5 
 6 if sex == 'female' and age > 16 and age < 20 and is_beautiful:
 7     print('表白...')
 8     if is_successfull:
 9         print('在一起')
10     else:
11         print('阿姨好,我逗你玩呢')
12 else:
13     print('阿姨好')
if嵌套

  多分支:

 1 #如果:成绩>=90,那么:优秀
 2 #如果成绩>=80且<90,那么:良好
 3 #如果成绩>=70且<80,那么:普通
 4 #其他情况:很差
 5 score=input('your score>>: ')
 6 score=int(score)
 7 if score >= 90:
 8     print('优秀')
 9 elif score >=80 :
10     print('良好')
11 elif score >=70:
12     print('普通')
13 else:
14     print('很差')

 

八、流程控制之while循环

  while循环:又称为条件循环,即当满足什么条件时才终止,不然就会一直执行下去。

  1.循环打印0-100

1  n=0
2  while n <=100:
3      print(n)
4      n+=1

  2.模拟用户登录

 1 user_of_db='xiaomogu'
 2 pwd_of_db='mogu123'
 3 
 4 while True:
 5     inp_user=input('please input your name: ')
 6     inp_pwd=input('please input your password: ')
 7 
 8     if inp_user == user_of_db and inp_pwd == pwd_of_db:
 9         print('login successfull')
10     else:
11         print('user or password error')
View Code

 3.1 循环中止语句

  如果循环没有设置满足什么条件才结束,怎么才能结束循环呢?

       这就用到break 或 continue 语句

  • break : 用于完全结束一个循环,跳出循环体执行循环后面的语句
 1 user_of_db='xiaomogu'
 2 pwd_of_db='mogu123'
 3 
 4 while True:
 5     inp_user=input('please input your name: ')
 6     inp_pwd=input('please input your password: ')
 7 
 8     if inp_user == user_of_db and inp_pwd == pwd_of_db:
 9         print('login successfull')
10         break   #只要登录成功,即结束循环体
11     else:
12         print('user or password error')
View Code
  • continue :和break类似,但是区别在于continue只是中止了本次循环,接着会执行后面的代码。  
1 #强调:continue一定不要加到代码的最后一步
2 
3 n=0
4 while n < 6: #n=6
5     if n == 4:
6         n+=1 #n=5
7         continue
8     print(n)
9     n+=1 #n=6
View Code

示例:

  while循环模拟用户登录,输错三次即退出循环,格式化输出

 1 user_of_db='xiaomogu'
 2 pwd_of_db='mogu123'
 3 
 4 tag=True
 5 count=0
 6 while tag:
 7     if count == 3:
 8         print('尝试次数过多')
 9         break
10     inp_user=input('please input your name: ')
11     inp_pwd=input('please input your password: ')
12 
13     if inp_user == user_of_db and inp_pwd == pwd_of_db:
14         print('login successfull')
15         while tag:
16             cmd=input('cmd>>>: ')
17             if cmd == 'q':
18                 tag=False
19                 break
20             print('命令[%s]运行' %cmd)
21     else:
22         print('user or password error')
23         count+=1
模拟登录完整版

 

九、练习作业

基础需求:  让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后退出程序
升级需求:
可以支持多个用户登录 (提示,通过列表存多个账户信息)
用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
 1 names={'momo':{'passwd':'123'},
 2        'mogu':{'passwd':'213'},
 3        'xiaomogu':{'passwd':'321'}}
 4 n=0
 5 while True:
 6     with open('认证状态',mode='rt',encoding='utf-8') as f:#查询判断认证状态文件
 7         if  '锁定' in f.read():
 8             print('已锁定')
 9             break
10     with open('认证状态',mode='at',encoding='utf-8') as f1:#判断条件写入信息
11         if  n==3 :#输错3次直接锁定
12             f1.write('锁定')
13             print('已锁定')
14             break
15     name=input('请输入您的用户名:').strip()
16     if  name not in names:
17         print('用户不存在,请重新输入')
18         continue
19     pwd = input('请输入您的密码:').strip()
20     if pwd == names[name]['passwd']:
21         print('恭喜您登录成功!')
22         break
23     else:
24         print('密码输入错误')
25         n+=1
自己写的作业

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:老师上课总是不给PPT?于是我用几行python代码偷偷复制U盘文件

下一篇:Python日常7