python第二天:格式化输出、bool值、逻辑运算、编码格式
#格式化输出
name = input('请输入姓名:')
age = input('你的年龄:')
sex = input('你的性别: ')
msg = '你的名字是' + name + ',你的年龄是' + age + ',你的性别是' + sex + '。'
print(msg)
#格式化输出 %占位符
msg = '''
-------- info of %s ---------
name : %s
age : %d
job : %s
hobbie : %s
--------------- end ----------------
''' % ('浩强', '浩强', 23, '农民', 'money')
print(msg)
测试结果:
C:\Users\hongd\AppData\Local\Programs\Python\Python38\python.exe D:/pycharm/project/day02/格式化.py
-------- info of 浩强 ---------
name : 浩强
age : 23
job : 农民
hobbie : money
--------------- end ----------------
Process finished with exit code 0
实现格式化输出:
#格式化输出: %占位符
name = input('请输入姓名:')
age = input('请输入年龄: ')
job = input('请输入职业: ')
hobbie = input('请输入爱好:')
msg = '''
------------ info of %s ------------
name : %s
age : %d
job : %s
hobbie : %s
--------------- end ----------------
''' % (name, name, int(age), job, hobbie)
print(msg)
测试结果:
C:\Users\hongd\AppData\Local\Programs\Python\Python38\python.exe D:/pycharm/project/day02/格式化.py
请输入姓名:张安
请输入年龄: 43
请输入职业: 农民
请输入爱好:money
------------ info of 张安 ------------
name : 张安
age : 43
job : 农民
hobbie : money
--------------- end ----------------
Process finished with exit code 0
#格式化输出 %占位符
name = input('请输入姓名:')
age = int(input('请输入年龄: '))
job = input('请输入职业: ')
hobbie = input('请输入爱好:')
msg = '''
------------ info of %s ------------
name : %s
age : %d
job : %s
hobbie : %s
--------------- end ----------------
''' % (name, name, age, job, hobbie)
print(msg)
测试结果:
C:\Users\hongd\AppData\Local\Programs\Python\Python38\python.exe D:/pycharm/project/day02/格式化.py
请输入姓名:李安
请输入年龄: 33
请输入职业: 导演
请输入爱好:拍戏
------------ info of 李安 ------------
name : 李安
age : 33
job : 导演
hobbie : 拍戏
--------------- end ----------------
Process finished with exit code 0
格式化输出,字典格式
1 #格式化输出 %占位符 字典格式 2 dic = { 3 'name' : '老李', 4 'age' : 32, 5 'job' : 'boss', 6 'hobbie' : 'momey', 7 } 8 9 msg = ''' 10 ------------ info of %(name)s ------------ 11 name : %(name)s 12 age : %(age)d 13 job : %(job)s 14 hobbie : %(hobbie)s 15 --------------- end ---------------- 16 ''' % dic 17 print(msg)
当格式化输出中需要呈现%时,如果做?
案例1:
msg = '我叫%s,今年%s,学习进度2%' % ('李强','23')
print(msg)
测试结果:
C:\Users\hongd\AppData\Local\Programs\Python\Python38\python.exe D:/pycharm/project/day02/格式化.py
Traceback (most recent call last):
File "D:/pycharm/project/day02/格式化.py", line 97, in <module>
msg = '我叫%s,今年%s,学习进度2%' % ('李强','23')
ValueError: incomplete format
Process finished with exit code 1
修改办法:在%前再加一个%,实现脱义字符的效果
msg = '我叫%s,今年%s,学习进度2%%' % ('李强','23')
print(msg)
测试结果:
C:\Users\hongd\AppData\Local\Programs\Python\Python38\python.exe D:/pycharm/project/day02/格式化.py
我叫李强,今年23,学习进度2%
Process finished with exit code 0
while else 固定搭配:
1 #while else固定搭配:当while循环被break打断,则不走else呈现。 2 count = 0 3 while count <=5: 4 count += 1 5 print('loop', count) 6 7 else: 8 print('循环正常执行完啦') 9 print('---out of while loop----') 10 11 测试结果: 12 C:\Users\hongd\AppData\Local\Programs\Python\Python38\python.exe D:/pycharm/project/day02/格式化.py 13 loop 1 14 loop 2 15 loop 3 16 loop 4 17 loop 5 18 loop 6 19 循环正常执行完啦 20 ---out of while loop---- 21 22 Process finished with exit code 0 23 24 重新测试,加上break参数后的效果: 25 #while else固定搭配,当while循环被break打断,则不走else呈现。 26 count = 0 27 while count <=5: 28 count += 1 29 print('loop', count) 30 if count == 3: 31 break 32 else: 33 print('循环正常执行完啦') 34 print('---out of while loop----') 35 36 测试结果; 37 C:\Users\hongd\AppData\Local\Programs\Python\Python38\python.exe D:/pycharm/project/day02/格式化.py 38 loop 1 39 loop 2 40 loop 3 41 ---out of while loop---- 42 43 Process finished with exit code 0
#逻辑运算: and or not
print( 2 > 1 and 3 < 4 or 8 < 10 and 4 > 5)
#第一种情况:逻辑运算符前后都是比较运算
# 优先级概念:() > not > and > or,同一优先级,由左至右依次计算
测试结果:
C:\Users\hongd\AppData\Local\Programs\Python\Python38\python.exe D:/pycharm/project/day02/运算符.py
True
Process finished with exit code 0
#逻辑运算: and or not
print( 2 > 1 and 3 < 4 or 8 < 10 and 4 > 5)
#第一种情况:逻辑运算符前后都是比较运算
# 优先级概念:() > not > and > or,同一优先级,由左至右依次计算
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)
print(1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 9 or 7 < 6)
测试结果:
C:\Users\hongd\AppData\Local\Programs\Python\Python38\python.exe D:/pycharm/project/day02/运算符.py
True
True
False
False
Process finished with exit code 0
#第二种情况 逻辑运算符前后都是数字
'''
x or y if x is True, return X,else y.数字中只有0是False,and的关系是or的相反。
'''
print(3 or 5)
print(2 or 5)
print(0 or 5)
print(0 or 0)
print(-4 or 5)
print(5 or 3)
print(0.2 or 3)
print(2 or 0.3)
print(2 or 3.3)
print(2 or -3)
print(-2 or 1)
print(3 and 5)
print(0 and 3)
print(0.3 and -3)
测试结果:
C:\Users\hongd\AppData\Local\Programs\Python\Python38\python.exe D:/pycharm/project/day02/运算符.py
3
2
5
0
-4
5
0.2
2
2
2
-2
5
0
-3
Process finished with exit code 0
'''
数字与bool值转化
int ---> bool 非零为True,零是False
bool ---》int True 1, False 0,
'''
print(bool(100))
print(bool(0))
print(bool(0.4))
print(bool(1.4))
print(bool(-12))
测试结果:
C:\Users\hongd\AppData\Local\Programs\Python\Python38\python.exe D:/pycharm/project/day02/运算符.py
True
False
True
True
True
Process finished with exit code 0
#面试题
print(1 > 2 and 3 or 4)
测试结果:
C:\Users\hongd\AppData\Local\Programs\Python\Python38\python.exe D:/pycharm/project/day02/运算符.py
4
Process finished with exit code 0
#编码初识
初级密码:ascii:8位,2**8=256种,其实英文里只用到126位。
1个字节=8位 一个字节表示一个字符
万国码:unicode 创建初期16位 两个字节表示一个字符
升级: 32位 四个字节表示一个字符
资源浪费,
对unicode升级: utf-8
utf-8:最少用8位表示一个字符。
英文:1个字节表示一个字符
欧洲文字:2个字节表示一个字符
亚洲文字:3个字节表示一个字符
utf-16:最少用16位表示一个字符
gbk:中国字节的编码格式,GBK不能直接转换成UTF-8,它属于国家标准,只有=英文和中文
gbk需要借助unicode才能转换成utf-8.
GBK:字母数字字符用的ascii码,中文用16位的。
a: 01100001 8位
中:01100001 01100001 16位
8位 1个byte
1024kb 1kb
1024MB 1MB
1024Mb 1GB
1024GB 1TB

浙公网安备 33010602011771号