python语法学习

运算符

//整除
%取模
**幂运算

实例

华氏温度转摄氏温度

1
2
3
4
5
f = float(input('请输入华氏温度: '))
c = (f - 32) / 1.8
print('%.1f华氏度 = %.1f摄氏度' % (f, c))
# input() 键盘输入为字符串,用float()转浮点数
# 占位符 %.1f,flost型替换保留1位小数 %d int型替换 %s str型替换
1
2
3
4
f = float(input('请输入华氏温度: '))
c = (f - 32) / 1.8
print(f'{f:.1f}华氏度 = {c:.1f}摄氏度')
# f'{f:.1f},第一个f表示格式化处理后面 '{f:.1f}华氏度 = {c:.1f}摄氏度'这个字符串 并且f'{}'是一个整体,第2个f表示变量 :.1f对变量进行保留1位小数

判断闰年

规则:1. 公元年份非 4 的倍数是平年;2. 公元年份为 4 的倍数但非 100 的倍数是闰年;3. 公元年份为 400 的倍数是闰年

1
2
3
4
year=int(input('输入年份'))
is_run= (year%4==0 and year%100!=0) or year%400==0
print(f'{is_run=}')
# '公元年份为 400 的倍数'是'公元年份为 4 的倍数且为 100 的倍数'的子集

分支结构

分段函数求值

1
2
3
4
5
6
7
8
x=float(input('x='))
if x>1:
y=3*x-5
elif x>=-1:
y=x+2
else:
y=5*x+3
print(f'{y=}')

循环结构

打印九九乘法表

1
2
3
4
5
6
for i in range(1,10)
for j in range(1,i+1)
print(f'{i}x{j}={i*j}',end='\t')
print()#相当于print(end='\n')
# end是print内置的参数,默认为end=\n,即换行
# \t 即制表符,类似于Tab键

实战

100以内素数

素数判断:循环从2到$[\sqrt{n}]+1 $

1
2
3
4
5
6
7
8
for num in range(2,101):
is_zhi=True
for i in range(2,int(num**0.5)+1):
if num%i==0:
is_zhi=False
break
if is_zhi:
print(f'{num}')

100到999内水仙花数

1
2
3
4
5
6
7
8
for num in range(100,1000):
a=num%10
b=num//10
c=b%10
d=b//10
if num==a**3+c**3+d**3:
print(f'{num}',end='\t')
print()
1
2
3
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

pandas

加载数据到DataFrame:

  • path = ‘ex1data1.txt’ # 创建字符串变量
  • data = pd.read_csv(path, header=None, names=[‘Population’, ‘Profit’]) #header:文件本身的列标题行,为none即第一行就是数据
1
2
data.head() #显示DataFrame的前5行
data.describe() #自动计算各列统计值

绘图

1
2
data.plot(kind='scatter', x='Population', y='Profit', figsize=(10,6))\
plt.show() #显示图形

数据集插入一列

1
data.insert(0, 'Ones', 1) #对date这个DataFrame在第一列插入新列,名称Ones,值为1

numpy

向量内每个元素平方
np.power(…, 2)

所有元素求和
np.sum(inner)
指定按列求和
np.sum(数组, axis=0)

将数组转换为矩阵
np.matrix

看A的维度

1
A.shape#A为数组或矩阵,矩阵和二维数组的区别

初始化矩阵

1
np.matrix(np.zeros(theta.shape))

数据结构

列表

字面量:[]

  • 查询:列表.index(元素)
  • 列表[下标索引]=
  • 插入元素:列表.insert(下标,元素)
  • 追加元素到列表尾部:列表.append(元素)
  • 追加一批元素到列表尾部:列表.extend(其他数据容器)
  • 删除元素:del 列表[下标]/列表.pop(下标)
  • 移除元素:列表.remove(元素),从前到后搜索元素,第一个删掉
  • 清空列表内容:列表.clear()
  • 统计某元素在列表内数量:列表.count(元素)
  • 统计列表内有多少元素:len(列表)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    my_list=["张三","李四","王五"]
    print(my_list.index("李四"))
    my_list.insert(1,2)
    print(my_list)
    my_list.append("赵六")
    print(my_list)
    list_1=[1,2,3]
    my_list.extend(list_1)
    print(my_list)
    # del my_list[0]
    a=my_list.pop(0)
    print(my_list)
    print(f"删掉的元素是:{a}")
    # my_list.clear()
    # print(my_list)
    print(my_list.count("张三"))
    print(len(my_list))
    1
    2
    3
    4
    5
    6
    7
    8
    1
    ['张三', 2, '李四', '王五']
    ['张三', 2, '李四', '王五', '赵六']
    ['张三', 2, '李四', '王五', '赵六', 1, 2, 3]
    [2, '李四', '王五', '赵六', 1, 2, 3]
    删掉的元素是:张三
    0
    7

字典

dict 是 Python 的哈希表实现,通过键值对存储数据,查找、插入和删除操作平均时间复杂度为 O(1)
定义:{key:value,key:value}
空字典:{}/dect()

  • 取值:字典[key]
  • 删除:字典.pop(key),获得指定key的value,指定key的数据被修改
  • 清空:字典.clear
  • 获取全部key:字典.keys(),来遍历字典
  • 元素数量:len(字典)
  • 获取键对应的值,不存在则返回 None:字典.get(key)

集合

不允许key的重复,不可以使用下标索引,key不可以为字典,value没限制
{元素1,元素2}
空集合:set(),没有{}这种定义
特点:不允许重复,顺序不保证,可以修改

  • 添加新元素:集合.add(元素)
  • 移除元素:集合.remove(元素)
  • 随机取出集合里元素:集合.pop(),集合本身被修改,元素被移除
  • 清空:集合.clear()
  • 两个集合的差集:集合1.difference(集合2),得到新集合,集合1有,集合2没有
  • 集合内保留差集:结合1.difference_update(集合2),修改集合1,保留集合2没有的元素
  • 集合合并:集合1.union(集合2),得到新集合