python day 2

1.格式化输出

%s d

name = input("请输入你的姓名:")
age = int(input("请输入你的年龄:"))
height = int( input("请输入你的身高:"))
study = int(input("请输入你的进度:"))
msg = "我的姓名是%s,我的年龄是%d,我的身高是%d,学习进度:%d%%"%(name,age,height,study)#两个%表示%的意思
print(msg)

 

现有一练习需求,问用户的姓名、年龄、工作、爱好,然后打印一下格式

------------- info of Wang Sen -------------
Name : Wang Sen
Age : 22
Job : Student
Hobby : Girls
-------------------- end ---------------------

你怎么实现呢?你会发现,用字符串拼接的方式很难实现这种格式的输出,所以只需要把要打印的格式先准备好,由于里面的一些信息是需要用户输入的,你没办法预知,因此可以先放置占位符,再把字符串里的占位符与外部的变量做个映射关系就好了。

name = input("请输入你的姓名:")
age = int(input("请输入你的年龄:"))
job = input("请输入你的工作:")
hobby = input("请输入你的爱好:")
msg = '''---------info of %s ---------
Name : %s
Age : %d
Job : %s
Hobby :%s
----------------- end ------------------
'''%(name,name,age,job,hobby)
print(msg)

 

2.while else 循环

while 条件 :

  循环体

else :

 

count = 0 
while count <= 5 :
    count += 1
    if count == 3 :
        break        #如果执行过程中被break了,就不会执行elsa的语句了
    print("loop",count)
else:
    print("循环正常执行完了”)
print("------- out of while loop -------")

比较

count = 0
while count <= 5 :
    count += 1
    if count == 3 :
        pass                  #while循环正常结束后才会走else         
    print("loop",count)
else:
    print("循环正常执行完了")
print("----------- out of while loop -------------")

 

3.初识编码

电报、电脑的传输,存储都是01010101字母

 

最早的密码本  ascii 涵盖了英文字母大小写,特殊字符,数字

ascii 只能表示256种可能,太少

创办了万国码 uncode

  16位表示一个字符不够(一开始),32位表示一个字符。中文不够32位 4个字节。占用资源多。

unicode 升级 utf-8 utf-16 utf-32

  8位 = 1字节bytes

  utf-8 一个字符最少用8位表示,英文用8位  一个字节

    欧洲文字用16位去表示        两个字节

    中文用24位去表示          三个字节

  utf-16 一个字符最少用16位去表示

gbk 中国人自己发明的,只能用于中文和ascii码中的文字。一个中文用两个字节 16位去表示。


1bit    8bit = 1bytes
1byte 1024byte = 1KB
1KB 1024kb = 1MB
1MB 1024MB = 1GB
1GB 1024GB = 1TB

4.逻辑运算

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

  1,在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>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

 

2 ,  x or y , x为真,值就是x,x为假,值是y;

             x and y, x为真,值是y,x为假,值是x。

 

例题:求出下列逻辑语句的值。

8 or 4
0 and 3
0 or 4 and 3 or 7 or 9 and 6

 

作业

 

计算1-2+3...+99中除了88以外的所有数的和?

初始版

count = 0
sum = 0
while count < 99:
    count += 1
    if count %2 == 0:
        if count == 88 :
            pass
        else:
            sum = sum -count    
    else:
        sum = sum + count
print(sum)

优化版

count = 0
num = 1
sum = 0
while count < 99 :
    count += 1
    num += 1
    if count == 88 :
        continue
    else :
    sum = sum + count * (-1)**num
print(sum)

 

计算1-2+3...-99中除了88以外的所有数的总和

初始版

count = 0
sum = 0
while count < 99 :
    count += 1
    if count == 88 :
        continue
    elif count > 0 and count < 88 :
        if count %2 == 1 :
            sum = sum + count
        else :
            sum = sum -count
    else :
        if count %2 == 1:
            sum = sum - count
        else :
            sum = sum + count
print(sum)

优化版

count = 0 
num = -1
sum = 0
while count < 99 :
    count += 1
    if count == 88 :
        continue 
    else :
        num = -num
        sum = sum + count * num
print(sum)

用户登陆(三次输入错误机会)且每次输错时显示剩余错误次数(提示使用字符串格式化)

初始版

Username = "ws"
Password = "qwe1223456"
count = 0
mgs = 3
while count < 3 :
    count += 1
    user = input("请输入你的用户名:")
    password = input("请输入你的密码:")
    if user == Username and password ==Password :
        print("welcome")
    else :
        mgs = mgs - 1
        print("you have %s chance"%(mgs))

优化版

Username = "ws"
Password = "qwe123456"
count = 3
while count > 0 :
    count -= 1 
    user = input("请输入你的用户名:")
    password = input("请输入你的密码:")
    if user == Username and password == Password :
        print('''-------welcome %s----------
     name: %s
password: %s
    --------------- end ------------------
     '''%(Username,Username,Password)) else : print("you have %s chance"%(count)) num = input("你还有试吗【y】【n】") if num == y : count += 1 else: print("你还要不要脸")

 

posted @ 2018-10-16 13:57  ws997  阅读(181)  评论(0编辑  收藏  举报
8|0