Python学习第一周总结
经过一周的学习后,对这一周学习的重要知识点进行一下总结,第一个重要的知识点就是:Python语言元素之变量。
一、变量和类型
1.1 变量
-
变量是数据的载体
-
变量的值可以被读取和修改
1.2 变量命名
- 字母,数字,下划线。不能使用特殊字符,数字不能开头
- 变量名是区分大小写的(x和X是两个不一样的变量名)
- 不能用python中的关键字和保留字(python中已经有含义的)
- 见名知意(看到变量的名字,就能知道它代表了什么意思)
- 变量的命名使用全小写,多个单词用下划线进行分隔(snake case)
2、类型
Python中的数据类型很多,而且也允许我们自定义新的数据类型,这里我们需要先了解几种常用的数据类型。
-
整型(
int
):Python中可以处理任意大小的整数,而且支持二进制(如0b100
,换算成十进制是4)、八进制(如0o100
,换算成十进制是64)、十进制(100
)和十六进制(0x100
,换算成十进制是256)的表示法。 -
浮点型(
float
):浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,浮点数除了数学写法(如123.456
)之外还支持科学计数法(如1.23456e2
)。 -
字符串型(
str
):字符串是以单引号或双引号括起来的任意文本,比如'hello'
和"hello"
。 -
布尔型(
bool
):布尔值只有True
、False
两种值,要么是True
,要么是False
。
二、Python语言元素之运算符
运算符 | 描述 |
---|---|
[] [:] | 下标,切片 |
** | 指数 |
~ + - | 按位取反, 正负号 |
* / % // | 乘,除,模,整除 |
+ - | 加,减 |
>> << | 右移,左移 |
& | 按位与 |
^ \| | 按位异或,按位或 |
<= < > >= | 小于等于,小于,大于,大于等于 |
== != | 等于,不等于 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |
= += -= *= /= %= //= **= &= |= ^= >>= <<= | (复合)赋值运算符 |
三、分支结构(选择结构)
分支结构就是指代码中有多条路劲,但是只有其中一条会被执行。在Python中,要构造分支结构可以使用if
、elif
和else
关键字。
具有代表性的例子就是数学上的分段函数求值:
x = float(input('x = '))
if x > 1:
y = 3 * x - 5
elif x >= -1:
y = x + 2
else:
y = 5 * x + 3
print(f'f(x) = {y}')
四、循环结构
4.1 for-in循环
- 如果明确的知道循环执行的次数,我们推荐使用
for-in
循环
例如求两个数的最大公约数
x = int(input('x = '))
y = int(input('y = '))
for i in range(x, 0, -1):
if x % i == 0 and y % i == 0:
print(i)
break
print(f'{x}和{y}的最大公约数:{i}')
4.2 while循环
- 如果要构造不知道具体循环次数的循环结构,我们推荐使用
while
循环。while
循环通过一个能够产生或转换出bool
值的表达式来控制循环,表达式的值为True
则继续循环;表达式的值为False
则结束循环。
如:输入三角形三条边的长度,如果能构成三角形就计算周长和面积,如果不能构成三角形,提示用户重新输入,直到正确。
while True:
a = float(input('a = '))
b = float(input('b = '))
c = float(input('c = '))
if a + b > c and a + c > b and b + c > a:
x = a + b + c
p = x / 2
s = (p * (p - a) * (p - b) * (p - c)) ** 0.5
print(f'周长为{x}, 面积为{s}')
break
else:
print('不能构成三角形,请重新输入')
上面的代码中使用while True
构造了一个条件恒成立的循环,也就意味着如果不做特殊处理,循环是不会结束的,这也就是常说的“死循环”。为了能够退出循环结构,我们使用了break
关键字,它的作用是提前结束循环。
4.3 嵌套循环
和分支结构一样,循环结构也是可以嵌套的,也就是说在循环中还可以构造循环结构
如果知道循环的次数,我们通常使用for
循环;如果循环次数不能确定,可以用while
循环。在循环中还**可以使用break
**来提前结束循环。
例子:嵌套循环例子:求1-100之间的所有质数
for n in range(2, 100):
is_prime = True
for i in range(2, n):
if n % i == 0:
is_prime = False
break
if is_prime:
print(n, end=' ')
五、容器型数据类型(用一个变量可以保存多个数据)
-
列表(list)
-
元组(tuple)
-
集合(set)
-
字典(dict)
5.1 操作
-
通过[]建立
-
append :在末尾追加元素
-
insert :在指定位置插入元素
-
pop :删除最后的元素
nums = [10, 100, 1000]
print(type(nums))
print(nums)
rules = ['富强,民主,文明,和谐',
'自由,平等,公正,法治',
'爱国,敬业,诚信,友善', ]
print(type(rules))
print(rules)
nums.append(10000)
nums.insert(0, 1)
print(nums)
rules.pop()
print(rules)
5.2 遍历
列表的遍历是指把列表中的每个元素依次取出来
1、先从简单的取一个元素开始,如:
nums = [8, 15, 5, 4, 7, 20]
print(nums[5])
表示从0开始,第5个下标位置的数,一定要注意,python中是从0开始取下标的
2、替换列表中指定位置的元素
nums = [8, 15, 5, 4, 7, 20]
print(nums[5])
nums[2] = 120
print(nums)
表示将下标为2的位置的元素替换成120
nums = [8, 15, 5, 4, 7, 20]
for i in range(6):
print(nums[i])
表示把列表里的元素依次取出来(即遍历)
上面这个代码只能对列表进行读取的操作,而有时候我们还需要对列表中的数进行改写,那么我们就需要用到下面这种循环结构
nums = [8, 15, 5, 4, 7, 20]
for i in range(len(nums)):
print(nums[i])
nums[i] = 100
print(nums)
这个我们可以从运行结果看到,不仅可以遍历列表,还可以把列表中的数进行改写
有时候我们不仅需要得到列表里的数,而且还需要知道它每个数对应的下标。那么就需要用到以下的代码
nums = [8, 15, 5, 4, 7, 20]
for i, x in enumerate(nums):
print(i, x)
5.3 例题
例子01——将一颗骰子掷60000次,统计每一个点数出现的次数
import random
f1 = f2 = f3 = f4 = f5 = f6 = 0
for _ in range(60000):
i = random.randrange(1, 7)
if i == 1:
f1 += 1
elif i == 2:
f2 += 1
elif i == 3:
f3 += 1
elif i == 4:
f4 += 1
elif i == 5:
f5 += 1
else:
f6 += 1
print(f'1点出现的次数{f1},2点出现的次数{f2},3点出现的次数{f3},4点出现的次数{f4},5点出现的次数{f5},6点出现的次数{f6},')
上面这个需要一一打出,可能有点冗余了,所有我们可以用遍历改进一下
import random
fs = [0] * 6
for _ in range(60000):
x = random.randrange(1, 7)
fs[x - 1] += 1
print(fs)
for i, value in enumerate(fs):
print(f'{i + 1}点摇出了{value}次')
你看,这样就看上去舒服得多
例子02
输入10个整数,计算平均值、方差、标准差和极差,并找出最大值和最小值
nums = []
for _ in range(10):
temp = int(input('请输入数据: '))
nums.append(temp)
print(nums)
mean_value = sum(nums) / len(nums)
total = 0
for num in nums:
total += (num - mean_value) ** 2
# 方差 ---> variance ---> var
var_value = total / (len(nums) - 1)
# 标准差 ---> standard deviation ---> std / stdev
std_value = var_value ** 0.5
max_value, min_value = max(nums), min(nums)
print(f'均值: {mean_value}')
print(f'方差: {var_value}')
print(f'标准差: {std_value}')
print(f'极差(全距): {max_value - min_value}')
总结:遍历很重要,一定要通过大量的练习来达到融会贯通。
rd deviation —> std / stdev
std_value = var_value ** 0.5
max_value, min_value = max(nums), min(nums)
print(f’均值: {mean_value}’)
print(f’方差: {var_value}’)
print(f’标准差: {std_value}’)
print(f’极差(全距): {max_value - min_value}’)
[外链图片转存中...(img-3cKuUoPX-1627184185374)]
### 总结:遍历很重要,一定要通过大量的练习来达到融会贯通。