初识----python
一 ,Python介绍
python创始人---- 吉多·范罗苏姆(Guido van Rossum)。于1989年圣诞节开发脚本解释器(Python)。中文名------(龟叔)
(龟叔:2005年加入谷歌至2012年,2013年加入Dropbox到现在,依然掌握着Python发展的核心方向,称为仁慈的独裁者)
二 ,Python主要应用领域:
云计算 , 网络编程 , 爬虫, WEB开发 , 科学运算 , 人工智能 , 系统维护 , 金融 分析 , 图形GUI ,人工开发,自动化运维 , 游戏开发
Python在一些公司的应用:谷歌,豆瓣,知乎网等多个大型网站
Python的发展史即多版本:
1989年 Guido开始写Python语言的编译器(创建要求:功能全面,易学易用,有可扩展性)
1991年,第一个Python编译器诞生,用C语言实现的,并能调试C语言的库文件。python具有类,函数,异常处理,包含表和字典在内的核心数据类型,以及模块为基础的扩展系统,
Python 1.0 -January 1994 增加了lambda,map,filter,and,reduce
Python 2.0-October 16,2000,加入了内存回收机制,构成了现在Python语言框架的基础
Python 2.4-Novermber 30,2004,同年WEB框架Django诞生
Python 2.5-September 19,2006
Python2.6-October 1,2008
Python 2.7-July 3,2010
- Python 3.0 - December 3, 2008
- Python 3.1 - June 27, 2009
- Python 3.2 - February 20, 2011
- Python 3.3 - September 29, 2012
- Python 3.4 - March 16, 2014
- Python 3.5 - September 13, 2015
- Python 3.6 - December 16,2016
总结:Python2版本与Python3版本的异同:
Python2:代码冗余,重复代码多,语法不清晰,掺杂了C,php,java,javaSprct等多种语言在里面。
Python3:几乎是重构后的源码,规范,简洁,优美,清晰
Python是什么编程语言
首先,Python是高级语言,是解释型语言
*****编译型语言VS解释型语言*****
什么是编译型语言----------就是一次性将所有程序写完后在执行(缺点:出现错误难找难改,开发效率低,优点:运行速度快)
什么是解释型语言(及时调试代码,不能永久保存代码)----------就是一行一行执行(写一句代码执行一句。 缺点:运行速度慢,优点:开发效率非常高,易找错误能及时改掉代码错误)
Python的优点:
1, Python是一门语言非常优雅,明确,简单的解释性语言
2,开发效率非常高
3,高级语言
4,具有很好的可移植性
5,可扩展性好
6,可嵌入性
Python缺点:
运行速度慢,源代码不能加密,线程不能用CPU问题。
Python种类:CPython(使用最为广泛),IPython,PyPy,Jython,IronPython,
1.什么是编程-----------编写程序(编写代码,编写软件)
编程的目的:把自己想的东西写下来让计算及运行出来。
2.编程语言有哪些?
(1)机器语言
特点:用计算机能看懂的二进制(0和1)去写程序
优点:程序运行速度快
缺点:开发效率低
(2)汇编语言:
特点:用一些英文标签代替一串二进制数字区写程序
优点:比机器语言好一些,操作系统内大量使用汇编语言。比如关于进程的调度代码,就使用汇编语言写的。
缺点:开发效率低
(3)高级语言:
特点:用人能读懂的(英文)字符写程序
优点:开发效率高
缺点:必须翻译才能让计算机识别,导致运行速度慢
按照翻译的方式分为:
编译型:把源文件的代码一次性翻译,拿着编译后的结果直接给机器
C语言:编译器----------gcc,qlibc (开发效率低、运行效率高)
解释性:
python语言:解释器---------cpython(开发效率高、运行速度低)
总结:
运行效率从高到低、开发效率从低到高、学习难度从难到易
2------python介绍
python的种类:cpython、Ipython、pypy、jython、ironpython。
3------python安装:
在windowns系统下安装---------打开官网 https://www.python.org/downloads/windows/ 下载中心
测试安装是否成功
4.1 Linux下的python解释器安装
linux:
123无需安装,原装Python环境
ps:如果自带
2.6
,请更新至
2.7
4.2 更新Python
windows:
1卸载重装即可
linux:
Linux的yum依赖自带Python,为防止错误,此处更新其实就是再安装一个Python
12345678910111213141516171819查看默认Python版本
python
-
V
1
、安装gcc,用于编译Python源码
yum install gcc
2
、下载源码包,https:
/
/
www.python.org
/
ftp
/
python
/
3
、解压并进入源码文件
4
、编译安装
.
/
configure
make
all
make install
5
、查看版本
/
usr
/
local
/
bin
/
python2.
7
-
V
6
、修改默认Python版本
mv
/
usr
/
bin
/
python
/
usr
/
bin
/
python2.
6
ln
-
s
/
usr
/
local
/
bin
/
python2.
7
/
usr
/
bin
/
python
7
、防止yum执行异常,修改yum使用的Python版本
vi
/
usr
/
bin
/
yum
将头部
#!/usr/bin/python 修改为 #!/usr/bin/python2.6
(2)保存为HelloWorld.py , 注意要强调.py后缀名的作用
(3)进入cmd命令行,执行python HelloWorld.py, 看结果 (注意要解释文件名前面加python 的原因是要把代码交给python解释器去解释执行)
python2与python3使用上的异同:一,python3 input与python2 raw_input
二,python3中没有long,如果元素过长默认为长整形,python3中的长整形都大写 python2中有长整形long
三,python3中输出 print()必须加括号 python2中输出 print()或print 变量名 ----可以不加括号
四,python2代码冗余,重复代码多,其中掺杂了许多C,java,php等语言 python3几乎是重构后的源码,清晰
,优美,简洁
五,python2可以输出中文,需要在开头加上# -*- encoding:utf-8 -*-
六,python2在编译安装时,可以通过参数-----enable-unicode=ucs2 或-----enable-unicode=ucs4
分别用于指定使用2个字节、4个字节表示一个unicode; python3无法进行选择,默认使用ucs4
七,python2 xrange或range python3:range
八,函数部分,python2中没有nonlocal,python3中新加了nonlocal(用于修改变量外部函数,不影响全局变量)
5.----------变量
(1)变量是什么
变---------变化
量---------衡量、计量。(表达的是一种状态)
变量-------name(变量名<标示符>)=123(变量值<变化的量>) =----------赋值符号
(3)定义方式
驼峰体
AgeOfOldboy = 56
NumberOfStudents = 80
下划线
age_of_oldboy = 56
number_of_students = 80
注意:在定义变量时变量名不能太长,避免用中文或拼音,要有可描述性等
6.------常量
常量:不变的量.在python中只能用大写的变量名提示一下,它是常量但本质任然是变量,仅仅只是一种提示作用
AGE = 10
常量:用大写表示
5.1、声明变量
1
2
3
4
5
|
#!/usr/bin/env python # -*- coding: utf-8 -*- name = "taibai" age = 10
|
变量的赋值与修改
name1 = ‘egon’
name2 = ‘马德胜’
name = name1
print(name)
7.---------程序交互
注意-----Python2中用 raw_input 输入输出,而在Python3中用 input 输入输出
(1)什么是程序交互(input)?
name=input("输入用户名:") #无论用户输入何种内容,input都会存成字符串格式
print(name)
(2)为啥要有程序交互-------
让计算机能够模拟人,去接受客户输入的信息,用户与计算机进行交互,交流
在c语言中有专门的常量定义语法,const int count = 60;
一旦定义为常量,更改即会报错
七 程序交互
重点:
7.1 读取用户输入
name = input("What is your name?")
print("Hello " + name )
执行脚本就会发现,程序会等待你输入姓名后再往下继续走。
可以让用户输入多个信息,如下
name = input("What is your name?")
age = input("How old are you?")
hometown = input("Where is your hometown?")
print("Hello ",name , "your are ", age , "years old, you came from",hometown)
执行输出
What is your name?Alex Li
How old are you?22
Where is your hometown?ShanDong
Hello Alex Li your are 22 years old, you came from ShanDong
python3中统一都是input,python2中有raw_input等同于python3的input,另外python2中也有input
1.res=input("python3: ")
2.res=raw_input("python2: ")
3.res=raw_input("python2: ")
1,2无论接收何种输入,都被存为字符串赋值给res,而3的意思是,用户输入何种类型,就以何种类型赋值给res
#!/usr/bin/env python
name=input('请输入用户名:')
print(name)
执行
C:\Users\Administrator>python D:\python_test\hello.py
请输入用户名:egon
egon
===============================================================================
输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
#!/usr/bin/env python
import getpass
password=getpass.getpass('请输入密码:')
print(password)
执行(在pycharm中无法执行,需要到终端中执行)
C:\Users\Administrator>python D:\python_test\hello.py
请输入密码:
程序交互练习题:
%占位符 %s表示字符串(str) %d表示数字(int) name = input('请输入姓名:') age = int(input('请输入年龄:')) job = input('请输入工作:') hobbie = input('你的爱好是:') msg = ''' name : %s age : %d job : %s hobbie : %s '''%(name,age,job,hobbie) print(msg) msg = '我叫:%s,' \ '我的年龄是:%d,' \ '我的学习进度为:10%%'\ %('德胜',20) print(msg) name = input('请输入姓名:') age = input('请输入年龄:') s1 = '我的名字:' # 年龄与交互拼接 s2 = '我的年龄:' print(s1+name,s2+name) count = int(input('猜数字:')) if count == 1: print('猜对了') else: print('猜错了') week = input('请输入数字:') if week == 1: print('今天是星期一') elif week == 2: print('今天是星期二') elif week == 3: print('今天是星期三') elif week == 4: print('今天是星期四') elif week == 5: print('今天是星期五') else: print('星期天或星期六') score = int(input('请输入分数:')) if score >=100: print('我曹,最高分也就一百分吗') elif score >=90: print('A') elif score >=80: print('B') elif score >=70: print('C') elif score >=60: print('D') else: print('太笨了 EEEE') name = input('输入名字:') if name == '小妹': #如果输入有误,则提示输正确的 if 1 == 1: #条件为真时,执行瓦,美女。条件为假时,执行一般般 print('瓦,美女') else:print('一般般') else: print('请输入正确的')
8,语句注释
单行注释: #
多行注释: ' ' ' ' ' ' 或 “”“ -------“””
****在编写Python程序时:文件头
#!/usr/bin/env python
# -*- coding: utf-8 -*-
1,基础数据类型(初识)
什么是数据类型-----对常用的各种数据进行了明确的分类。
整形类型(int)----数字类型
int(整形)整形有32 位,取值范围为2**31——2**3在64位系统上, 整数的位数为64 ,取值范围为-2**63~2**692233722036854775807
***平python中没有长整形,全为int类型
sum = 10, a = 50,等
2,字符串类型(Str)
在Python中加了引号的字符都被认为是字符串,例如
name = ‘金星’ msg = “my is alex. I am 22 year old ” count = ''' 22 '''
***单双三引号都一样,在这里没有任何区别
3,字符串拼接(字符串的拼接只能是双方都是字符串,不能跟数字后其他类型拼接)
***数字可以加减乘除,单字符串只能相加,相乘运算。如下:
name1 = ‘金星’ name2 = ‘是讲师’ print(name1+name2) name3 = “金星是讲师”
name1 = ‘金星’ name1 * 10 #相乘其实就是复制自己多次,拼接在一起
print(name1) 》》》金星金星金星金星金星金星金星金星金星金星
*****字符串与数字之间转换:如果当字符串转换数字整数时int--------int(‘12’), 小数字符串转为:float(‘12.45’) 数字转换字符串要引用Str(12.45) Str(12) Ascll码转换为相应字符串chr(97)
字符串转换为相应的Ascll码 ord(‘a’)
4,布尔值(True(1)真 , False(0)假) 用于逻辑判断
a = 3 b = 5
>>> a > b(False) #不成立就是False,,,即假
>>>
>>> a < b(True) #成立就是True , 即真
5,格式化输出(用到了占位符,数字类型用&d,字符串类型用%s’)
name = input('name:')
age =int( input('Age:'))
job = input('Job:')
hobbie = input('Hobbie:')
msg = '''
---------------info to %s -------------------#这里的每个%s就是一个占位符,本行的代表,后面括号里的name
Name:%s #代表name
Age:%d #代表age
Job:%s #代表job
Hobbie:%s #代表hobbie
-------------end---------------------
'''%(name,name,age,job,hobbie) #这行的%就是把前面的字符串与括号后面的变量关联起来
print(msg)
*****如果在程序中出现10%,或者10%%时。这里是变量自身本来拥有的,所以我们在执行时必须把站位符的那个%加上去,不然会报错,
例如:msg = "我是%s,年龄%d,学习进度为80%"%(“金星”,18) print(msg) 会报错
正确方式:msg = “我是%s,年龄%d,目前学习进度为80%%”%(“金星”,18)(第一个%只是一个单纯的%,而不是占位符)
******input默认输入的都是字符串,数字需转换(int)
格式化输出
格式化输出 mas='我叫:%s,今年%d,我的学习进度是10%%%%%%'%('马德胜',18) print(mas) print('我是:%s,我的年龄:%d,我的学习进度是:10%%'%('马德胜',18))
6,基本运算符
计算机可进行hen多种类的运算,有算术运算,比较运算,逻辑运算,赋值运算,成员运算,位运算,身份运算等
(1)算术运算
运算符:+(加) -(减) *(乘) /(除) %(求余---取模) **(幂-----平方) //(取整数---返回上的整数部分)
(2)比较运算
运算符: ==(等于,比较异同) !=(不等于-----条件) <>(不等于-----比较两个数是否相等) >(大于) <(小于) >=(大于等于----条件) <=(小于等于------条件)
(3)赋值运算符
运算符: =(赋值符号(变量)) +=(加法赋值运算符) -=(减法赋值运算符) *=(乘法赋值运算符) /=(除法赋值运算符) %=(取模赋值运算符) **=(幂赋值运算符) //=(取整数赋值运算符)
(4)逻辑运算
运算符:and(且)------and两边都为真结果为True反之为False , or(或)----or只要有一边为真结果就为True反之为False , not(取反)
优先级比较:not > and >or
*****同级比较运算时,规定从最左边开始
判断下列逻辑语句的True,False。
1,3>4 or 4<3 and 1==1
2,1 < 2 and 3 < 4 or 1>2
3,2 > 1 and 3 < 4 or 4 > 5 and 2 < 1
4,1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8
5,1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
6,not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
注意:x or y,x为真,值为x,x为假,值为y;
print(1 or 2) #1 print(0 or 5) #5-------0(False) print(5 or 1) #1
x and y , x为真,值为y,x为假,值为x。
print(4 and 3) #3 print(2 and 3) #3 print(1 and 3) #3 print(0 and 3) #0---------flase(jia) print(-1 and 3) #3
例题:求出下列逻辑语句的值。
8 or 4
0 and 3
0 or 4 and 3 or 7 or 9 and 6
**** in(在/包含) , not in(不在/不包含)
用于判断子元素是否在源字符串(字典,列表,集合)中:
如:
print(‘喜欢’ in ‘sadfsd喜欢sdgfa’)--------True
print(‘a’ in ‘bcvd’)-------False
print(‘y’ not in ‘ofkjdslaf’)----------True
练习题:
print(3 > 4 and 2 <3) # F print(3 > 4 or 2 < 3) # T print(3 > 2 and 2 <4) # T print(3 > 4 or 2 > 3) # F print(not True) # F print(not False) # T print(not 3 > 4) # T 优先级:()>not>and>or 同等优先级条件下,从左至右依次计算。 print(4 > 3 or 4 < 3 and 1!=1) print(2 > 1 and 3 < 4 or 4 > 5 and 2 < 1) print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8) #F or F or 9<8 F print(1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6) #F or F or 7<6 F print(not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6) F or F or 7<6 ps : int与bool值之间的转换。--------bool与数字之间转换,True为1,False为0 1,bool ----> int a = int(True) b = int(False) print(a,b) int ---> bool ---------数字与bool之间转换,除0之外全部为真(True) a = bool(413456) b = bool(6.5) c = bool(0) d = bool(-1) print(a,b,c,d) # x or y 如果 x 为真,则值为x,否则为y ''' print(4 or 3) print(2 or 3) print(1 or 3) print(0 or 3) print(-1 or 3) ''' #x and y 如果 x 为真,则值为y,否则为x ''' print(4 and 3) print(2 and 3) print(1 and 3) print(0 and 3) print(-1 and 3) ''' # print(0 and 3 or 4 or 1 or 2) # print(3 or 3 > 2) # print( 3>2 or 3 ) # in not in s1 = 'abcd' # print('a' in s1) # print('ag' in s1) print(1 and 'a' in s1)
7,流程控制之--------if
(1)if .....else 单分支
if 条件:结果
(2)if ......else 双分支 :
if 条件:
满足代码执行结果
else:
if 条件不满足走这段
var age = 56
if ( age < 50){
console.log("还能折腾")
console.log('可以执行多行代码')
}else{
console.log('太老了')
}
(3)if .......else:多分支
回到流程控制上来,if...else ...可以有多个分支条件
if 条件:
满足条件执行代码
elif 条件:
上面的条件不满足就走这个
elif 条件:
上面的条件不满足就走这个
elif 条件:
上面的条件不满足就走这个
else:
例题:
age = 48
use = int(input("请输入年龄:"))
if use > age:
print("猜大了,往小了试试.....")
elif use < age:
print("猜小了,往大了试试....")
else:
print("恭喜你,猜对了........")
例题2
要求用户输入0-100的数字后,你能正确打印他的对应成绩
score = int(input("输入分数:"))
if score > 100:
print("我擦,最高分才100...")
elif score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 60:
print("C")
elif score >= 40:
print("D")
else:
print("太笨了...E")
3,if条件语句的结构。 1,if 条件: 结果 2,if 条件: print() else: print() 3, if 条件: print() elif 条件: print() elif 条件: print() ....... else: print() 4,if 条件的嵌套 4,while条件语句的结构。 1,while 条件: .... 2,while 条件: else: ...
8,流程控制之while循环
*****彻底终止while循环的两种方式: 1,改变条件(标示位) 2,break(彻底结束循环)
**break与continue的区别
break:当程序执行时,遇到break跳出本层循环,彻底结束循环(break后的程序不再执行),执行循环体外面的程序。
break则完全终止循环
例子:break
count = 0
while count <= 100 : #只要count<=100就不断执行下面的代码
print("loop ", count)
if count == 5:
break
count +=1 #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0
print("-----out of while loop ------")
输出
loop 0
loop 1
loop 2
loop 3
loop 4
loop 5
-----out of while loop ------
continue:程序在执行时,遇到continue 跳出本次循环(continue后面的程序不在执行),再执行下一次循环
例子:continue
count = 0
while count <= 100 :
count += 1
if count > 5 and count < 95: #只要count在6-94之间,就不走下面的print语句,直接进入下一次loop
continue
print("loop ", count)
print("-----out of while loop ------")
输出
loop 1
loop 2
loop 3
loop 4
loop 5
loop 95
loop 96
loop 97
loop 98
loop 99
loop 100
loop 101
-----out of while loop ------
12.1,基本循环
while 条件: # 循环体 # 如果条件为真,那么循环体则执行 # 如果条件为假,那么循环体不执行 |
12.3,while.....else....(在程序执行过程中,只要有break,else不会执行)
count = 0
while count <= 5 :
count += 1
print("Loop",count)
else:
print("循环正常执行完啦")
print("-----out of while loop ------")
输出
Loop 1
Loop 2
Loop 3
Loop 4
Loop 5
Loop 6
循环正常执行完啦
-----out of while loop ------
如果执行过程中被break啦,就不会执行else的语句啦
count = 0
while count <= 5 :
count += 1
if count == 3:break
print("Loop",count)
else:
print("循环正常执行完啦")
print("-----out of while loop ------")
输出
Loop 1
Loop 2
-----out of while loop
练习题:
count = 0 while True: count +=1 if count ==11:break print(count) else: print ('循环中有break,程序不走else') print(888)
for循环
九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print('%s*%s=%s' %(i,j,i*j),end=' ')
print()
while循环与for循环分别打印字符串中的每一个元素
for循环 count = ‘abcdefghyg’ for i in count: print(i) while循环 count = ‘abcdefghyg’ u = 0 while u < len ( count ) print( count [ u ] ) u += 1 -----------------必须放到最后面,因为放到前面第一个值就娶不到, count = 'abcdefghyg' index = 0 while True: print ( count [ index ] ) index += 1 if index == len ( count ) break
练习题:
1,输出1-10这十个数
count = 0 while True: count+=1 if count > 10: continue print(count)
2,输出1-100所有的数
count = 1 #定义count变量赋值一 flag = True while flag: print(count) count = count + 1 #count+=1 if count == 101: #当count为101时 flag = False #如果flag等于False时,循环条件不成立,所以程序结束
count=0 while True: count+=1 if count ==101: break print(count)
count = 1 while count <= 100: print(count) count = count + 1
3,输出1 2 3 4 5 6 8 9 10
方法一 count = 0 while count < 10: count+=1 # print(count) if count == 7: print('') else: print (count) 方法二 count = 1 flag = True #标志位 while flag: print(count) if count == 7: print('') count = count + 1 #count +=1 if count == 11: flag = False
方式三
count=0 while count<10: count+=1 if count ==7: continue else: print (count)
4,输出1-100的所有奇数
方式一 count = 0 while count < 100: count += 1 if count % 2 == 1: print(count) 方式二 count = 1 while count < 100: print(count) count += 2 方式三 count = 0 while count < 100: count += 1 if count % 2 != 0: print(count) 方法4 count = 1 flag = True #表示位 while flag: print(count) count = count + 2 #每次循环都加2 if count == 101: #当count为101时 flag = False #条件为假,跳出程序
5,输出1-100之内所有的偶数
方式一 sum = 0 while sum < 100: sum += 1 if sum % 2 == 0: print(sum) 方式二 sum = 0 while sum < 100: sum += 2 print(sum) 方式三 sum = 0 while sum < 100: sum += 1 if sum % 2 != 1: print(sum)
6,使用while循环实现输出2-3+4-5+6...+100 的和
count = 1 sum = 0 while count <99: count += 1 # print (count) if count % 2 ==1: sum = sum + count else: sum = sum -count print(sum)
7,输出1-100是所有数的和
count = 0 sum = 0 while count < 100: count +=1 sum = sum + count print(sum)
func = 0 sum = 0 while func < 100: sum2 = func func=func+1 sum =sum +func print(sum)
8,用户三次登录机会
1.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败! name = 'sever' password = 123 name1 = input('请输入用户名:') pwd = int(input('请输入密码:')) if name == 'sever' and pwd == 123: print('登录成功') else:print('登录失败') while True: name = input('请输入用户名:') pwd =int(input('请输入密码:')) if name == 'sever' and pwd == 123: print('登录成功') else: print('登录失败') break tag=True while tag: name = input('请输入用户名:') password = input('请输入密码:') if name == 'sever' and password == '123': print('登录成功') tag = False else: print('登录失败') 2.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败, 失败时允许重复输入三次 user = 0 while user < 3: user += 1 name = input('请输入用户名:') pwd = input('请输入密码:') if name == 'sever' and pwd == '123': print('登录成功') break else: print('登录失败') 3.实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败, 失败时允许重复输入三次 count = 0 while count < 3: count +=1 name = input('请输入用户名:') pwd = input('请输入密码:') if name == 'sever'or 'alex' and pwd == '123': print('登录成功') break else: print('登录失败,重新输入')
count = 0 sum = 3 while count < 3: count +=1 name = input('请输入用户名:') pwd = input('请输入密码:') if name == 'sever'or 'alex' and pwd == '123': print('登录成功') break else: print('登录失败','****你还有%s次机会'%(sum-count))
9,写代码计算1-2+3....+99除了88以外所有数的和。
count = 1 sum = 0 while count < 100: if count % 2 == 1: sum = sum + count elif count == 88: count += 1 continue else: sum = sum - count count += 1 print(sum)
10,用户登录(三次机会)并且每次输错时显示剩余登录机会(用到字符串格式化。) 第六题完成的同学可做升级版: 当剩余机会为0时,可以询问用户是否在试试,如果用户同意在尝试,
那就将在给他三次机会,可一直继续。 '''
username = "taibai" password = '123' i = 0 while i < 3: name = input('请输入你的用户名:') pwd = input('请输入你的密码:') if username == name and password == pwd: print('您登录成功') break else: print('登录失败,您还有%d次登录机会'%(2-i)) if (2-i) == 0 : result = input('是否还想在试试?Yes') if result == 'Yes': i = 0 continue i += 1 else:print('要不要脸你')
11,基础需求: •让用户输入用户名密码 •认证成功后显示欢迎信息 •输错三次后退出程序
升级需求: •可以支持多个用户登录 (提示,通过列表存多个账户信息) •用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
dic={ 'egon1':{'password':'123','count':0}, 'egon2':{'password':'123','count':0}, 'egon3':{'password':'123','count':0}, } while True: name=input('username>>: ') if not name in dic: print('用户不存在') continue if dic[name]['count'] > 2: print('尝试次数过多,锁定') continue password=input('password>>: ') if password == dic[name]['password']: print('登录成功') break else: print('用户名或密码错误') dic[name]['count']+=1