[ python ] 格式化输出、字符集、and/or/not 逻辑判断

格式化输出

  %: 占位符

    s: 字符串

    d: 数字

    %%: 表示一个%, 第一个%是用来转义

 

实例:

name = input('姓名:')
age = int(input('年龄:'))

print('我叫%s, 我的年龄:%d,我的学习进度3%%.' %(name, age))

# 执行结果:
# 姓名:hkey
# 年龄:20
# 我叫hkey, 我的年龄:20,我的学习进度3%.

 

初始编码

最初的编码是由美国提出,当时只规定了 ASCII码用来存储字母及符号,后来为了解决全球化文字的差异,创建了万国码:unicode

  在 unicode中,

    1个字节表示了所有的英文、特殊字符、数字等等;

    一个中文需要 4个字节表示,32位 就很浪费。

 

后来,从 unicode 升级到 utf-8,  UTF-8 是Unicode的实现方式之一

  在 utf-8 中,一个文字用 3 个字节来存储。

 

00000001    8位bit == 1个字节(byte)

1byte      1024byte(字节) == 1KB

1KB        1024KB == 1MB

1MB        1024MB == 1GB

1GB        1024GB == 1TB

 

and or not 逻辑判断

判断优先级(重点):() > not > and > or

 

练习1: 判断下面返回结果 (提示:根据 () > not > and > or 来进行判断)

1,3>4 or 4<3 and 1==1
# 3>4 or False
# False

2,1 < 2 and 3 < 4 or 1>2 
# True or 1>2 
# True

3,2 > 1 and 3 < 4 or 4 > 5 and 2 < 1
# True or False
# True

4,1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8
# False or False or 9 < 8
# False

5,1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
# False or False and 9 > 8 or 7 < 6
# False or False or 7 < 6
# False or False
# False

6,not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
# False and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
# False or False and 9 > 8 or 7 < 6
# False or False or 7 < 6
# False or False
# False

 

上面是条件判断,也可以直接进行数字的判断:

x or y  x为非零,则返回x, 否则返回 y

print(1 or 2)   # 1
print(3 or 2)   # 3
print(0 or 2)   # 2
print(0 or 100) # 100

当 or 前面的数字不为0的时候,则返回前面的数字;
当 or 前面的数字为0,则返回后面的数字。

 

x and  y x为True,则返回y,与 or 正好相反

print(1 and 2)  # 2
print(0 and 2)  # 0

当 and 前面的数字非0,则返回后面的数字;
当 and 前面的数字为0,则返回0.

 

数字和布尔值之间的转换,遵循以下两条规则:

(1)数字转换为 bool值:非零转为bool值为:True;0 转换为bool值为:False

(2)bool值转换为数字:True 为:1; False 为 0

 

作业题:

1. 使用while循环输入1,2,3,4,5,6 8,9,10

2. 求 1-100 的所有数的和

3. 输出 1-100 的所有奇数

4. 输出 1-100 的所有偶数

5. 1-2+3-4+5 ...99的所有数的和

6. 用户登录(三次机会重试)

 

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Author: hkey


# 作业题:
# 1. 使用while循环输入1,2,3,4,5,6 8,9,10

count = 0
while count < 10:
    count += 1 # 等价于 count = count + 1
    if count == 7:
        continue    # continue 结束本次循环,开始下一次循环,continue 以下的代码都不再执行
    print(count)

# 2. 求 1-100 的所有数的和

num = 0
for i in range(1, 101):  # range取一个范围 1, 100的所有数字,通过for循环遍历相加
    num += i
print(num)

# 3. 输出 1-100 的所有奇数
print(list(range(1, 101, 2)))
# 4. 输出 1-100 的所有偶数
print(list(range(2, 101, 2)))
# 5. 1-2+3-4+5 ...99的所有数的和
sum = 0
count = 1
while count < 100:
    if count % 2:   # count 对 2取余如果为 0 则该条件不成立,说明 count 为偶数,count 对 2取余如果不为 0 则该条件成立,说明 count 为奇数
        sum += count    # 奇数做加法
    else:
        sum -= count    # 偶数做减法
    count += 1
print(sum)

# 总结:
#     在bool值中,0 None 空 为 False,其他都为 True

# 6. 用户登录(三次机会重试)
count = 0
while True:
    user = input('username:')
    pwd = input('password:')
    if user == 'admin' and pwd == '123':
        print('登录成功.')
        break
    else:
        print('用户名密码不正确,请重试。')
        count += 1
    if count == 3:
        print('登录验证超过三次,登录失败.')
        break
作业题答案

 

posted @ 2018-09-08 12:34  hukey  阅读(847)  评论(0编辑  收藏  举报