1.2-python基础二


python基础知识

1. 格式化输出

需求:搜集用户姓名,年龄,工作,爱好,然后打印成以下格式:

'''
-------------------- info of 黑色利穆 --------------------
Name: 黑色利穆
Age: 25
Job: OPS
Hobby: Book
-------------------- end --------------------
'''

把需要打印的格式先准备好,需要用户输入的信息先放置个占位符,再把字符串里的占位符与外部的变量做个映射关系:

name = input("Name: ")
age = input("Age: ")
job = input("Job: ")
hobby = input("Hobby: ")

info = '''
-------------------- info of %s --------------------
Name: %s
Age: %s
Job: %s
Hobby: %s
-------------------- end --------------------
''' %(name, name, age, job, hobby)
print(info)
# info = '''
# -------------------- info of %s --------------------  # 这里的每个%s就是一个占位符,本行的代表后边括号里的name
# Name: %s      # 代表 name
# Age: %s       # 代表 age
# Job: %s       # 代表 job
# Hobby: %s     # 代表 hobby
# -------------------- end --------------------
# ''' %(name, name, age, job, hobby)    # % 就是把前面的字符串与括号里的变量关联起来

%s 代表字符串占位符

%d 代表数字占位符

遇坑:

如果将上边age 后的占位符改成 %d,就代表只能输入数字:
step1:Age: %d
step2:执行 发现报错如下:
	TypeError: %d format: a number is required, not str
step3:查看age数据类型,print(type(age)) # <class 'str'>,发现age是str
原因:input接收的所有输入默认都是字符串格式。
解决:把str转成int:  age = int(input("Age: "))

问题:我现在要输出我的学习进度,可是%是占位符怎么办:

因为在格式化输出里,%默认为占位符,想要使用% 需要使用 %%(第一个%对第二个%进行转移)即可:
msg = "我是%s, 年龄%d, 目前学习python的进度为%d%%"%('黑色利穆', 25, 10)
print(msg)
# 我是黑色利穆, 年龄25, 目前学习python的进度为10%

2. 流程控制 -- while循环

2.1 基本循环

while 条件:
    循环体
    如果条件为真,循环体执行
    如果条件为假,循环体不执行

2.2 演示生活中的循环

while True:
    print("起床")
    print("吃早饭")
    print("上班")
    print("吃午饭")
    print("继续上班")
    print("下班")
    print("吃晚饭")
    print("睡觉")
    print("扎心了老铁")

这样while循环的执行结构就会一直循环。

2.3 如何终止循环

  1. 改变条件(只要改变条件,就会终止循环);
  2. 关键字:break;
  3. 调用系统命令:quit(), exit() 不建议使用;
  4. 关键字:continue(终止本次循环);

2.3.1 终止循环方法一:

利用改变条件,终止循环。利用标志位

flag = True
while flag:
    print("起床")
    print("吃早饭")
    print("上班")
    print("吃午饭")
    print("继续上班")
    print("下班")
    print("吃晚饭")
    print("睡觉")
    flag = False

练习:输出1~100所有的数字

flag = True
i = 1
while flag:
    print(i)
    i += 1
    if i == 101:
        flag = False

练习:使用while循环求出1-100所有数的和

count = 1
sum = 0
while count < 101:
    sum += count
    count += 1
print(sum)

2.3.2 终止循环方法二:

break:python提供的关键字。循环中,只要遇到break立刻退出循环。

flag = True
print('begin')
while flag:
    print("起床")
    print("吃早饭")
    print("上班")
    print("吃午饭")
    print("继续上班")
    print("下班")
    print("吃晚饭")
    break
    print("睡觉")
print('end')

练习:打印1-100所有的偶数

i = 0
while i < 101:
    if i % 2 == 0:
        print(i)
    i += 1

2.3.3 continue

continue用于终止本次循环,继续下一次循环;

flag = True
print('begin')
while flag:
    print("起床")
    print("吃早饭")
    print("上班")
    print("吃午饭")
    print("继续上班")
    print("下班")
    print("吃晚饭")
    continue
    print("睡觉")
print('end')

练习:使用while循环打印 1 2 3 4 5 7 8 9 10

i = 0
while i < 10:
    i += 1
    if i == 6:
        continue
    print(i)

练习:打印 1 2 3 4 5 95 96 97 98 99 100

i = 0
while i < 100:
    i += 1
    if i > 5 and i < 95:        # 只要i在6-94之间,就不print打印,直接进入下一次loop
        continue
    print(i)

2.4 while ... else ...

当while循环体正常执行完毕,中间没有被break中止,就会执行else后面的语句:

i = 0
while i <= 5:
    i += 1
    print("Loop", i)
else:
    print("循环体执行完毕")
print("----end----")
# Loop 1
# Loop 2
# Loop 3
# Loop 4
# Loop 5
# Loop 6
# 循环体执行完毕
# ----end----

如果执行过程被break中止,就不会执行else

i = 0
while i <= 5:
    i += 1
    print("Loop", i)
    if i == 4:break
else:
    print("循环体执行完毕")
print("----end----")
# Loop 1
# Loop 2
# Loop 3
# Loop 4
# ----end----

3. 基本运算符

运算分类:

  1. 算术运算;
  2. 比较运算;
  3. 逻辑运算;
  4. 赋值运算;
  5. 成员运算;
  6. 身份运算;
  7. 位运算;

3.1 算数运算

设置变量a = 10, b = 20

运算符 描述 实例
+ 加:两个对象相加 a + b 输出结果 30
- 减:得到负数,或一个数减另一个数 a - b 输出结果 -10
* 乘:连个数相乘,或返回一个重复若干次的字符串 a * b 输出结果 200
/ 除:x 除以 y b/a 输出结果 2
% 取模:返回除法的余数 b%a 输出结果 0
** 幂:返回x的y次幂 a**b 为10的20次方
// 取整除:返回商的整数部分 9//2 输出结果4,9.0//2.0 输出结果 4.0

3.2 比较运算

设置变量a = 10, b = 20

运算符 描述 实例
== 等于:比较对象是否相等 (a == b) 返回 False
!= 不等于:比较两个对象是否不相等 (a != b) 返回 True
> 大于:返回x是否大于y (a > b) 返回 False
< 小于:返回x是否小于y (a < b)返回 True
>= 大于等于:返回x是否大于等于y (a >= b) 返回 False
<= 小于等于:返回x是否小于等于y (a <= b)返回 True
<> 不等于:比较两个对象是否不相等 (a <> b) 返回 True,类似!=

3.3 赋值运算

设置变量a = 10, b = 20

运算符 描述 实例
= 简单的赋值运算符 c = a + b 将a + b 的结果赋值给c
+= 加法赋值运算符 c += a 相当于 c = c + a
-= 减法赋值运算符 c -= a 相当于 c = c - a
*= 乘法赋值运算符 c *= a 相当于 c = c * a
/= 除法赋值运算符 c /= a 相当于 c = c / a
%= 取模赋值运算符 c %= a 相当于 c = c % a
**= 幂赋值运算符 “c **= a 相当于 c = c a”
//= 取整除赋值运算符 c //= a 相当于 c = c // a

3.4 逻辑运算

运算符 描述 实例
and 布尔“与”,如果x为False,x and y返回False,否则返回y的计算值 (a and b) 返回 true
or 布尔“或”,如果x为True,返回True,否则返回y的计算值 (a or b)返回 true
not 布尔“非”, 如果x为True,返回False。如果x为False,返回True not(a and b) 返回 false

逻辑运算优先级:

() > not > and > or

  1. and 都为真的时候取and后边的值
  2. and 都为假的时候取and前面的值
  3. and 一真一假的时候取假的
  4. or 都为真的时候取or前边的值
  5. or 都为假的时候取or后边的值
  6. or 一真一假的时候取真的

判断下列多级语句的True,False:

3 > 4 or 4 < 3 and 1 == 1
False or False and True
False or False
False

1 < 2 and 3 < 4 or 1 > 2
True and True or False
True

2 > 1 and 3 < 4 or 4 > 5 and 2 < 1
True and Trua or False and False
True

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

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

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

判断下列逻辑语句的值:

8 or 4
8

0 and 3
0

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

3.5 成员运算

运算符 描述 实例
in 如果在指定的序列中找到值返回True,否则返回False x在y序列中,如果x在y序列中返回True
not in 如果在指定的序列中没有找到返回True,否则返回False x不在y序列中,如果x不在y序列中返回True

判断元素是否在字符串(字典,列表,集合)中:

print('黑色利穆' in '我叫黑色利穆,今年25岁,我正在学习python') # True
print('a' in 'bcdef')       # False
print('b' not in 'acdef')   # True

4. 编码初始

类型 描述 备注
ascii 美国,不支持中文
gbk 国标, 英文:8位1字节,中文:16位2字节
unicode 万国码 英文:16位2字节,中文:32位4字节
utf-8 可变长编译 英文:8位1字节,欧文:16位2字节,中文:24位3字节

python中一个字符串为:'a黑色利穆',如果使用utf-8编码,这个字符串占几个字节:

一个英文使用一个字节,一个中文使用三个字节,所以'a黑色利穆‘

如果是utf-8编码占13个字节;

如果是unicode编码占18个字节;

如果是gbk编码占9个字节;

8bit = 1byte
1024byte = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB
1024TB = 1EB
1024EB = 1ZB
1024ZB = 1YB
1024YB = 1NB
1024NB = 1DB
posted @ 2020-11-27 18:20  黑色利穆  阅读(75)  评论(0编辑  收藏  举报