python基础知识点小结(2021/2/9)

python基础知识点小结(2021/2/9)


\quad 入门小知识

\quad \quad cmd

  • 在cmd上进行python,直接输入 p y t h o n \quad python python
  • 退出cmd输入 e x i t ( ) \quad exit() exit()
  • 到指定文件夹上运行python文件 p y t h o n 路 径 文 件 名 . p y \quad python 路径文件名.py python.py

\quad \quad python注释

  • 单行注释 # \quad\# #
  • 多行注释 ′ ′ ′ ′ ′ ′ \quad ''''''\quad 6个单引号
  • 当python 使用中文时,有时候会出错,记得加上
	# -*- coding:utf-8 -*-

\quad \quad 变量、标识符和关键字

变量

  • p y t h o n python python变量可以是任意数据类型,命名规则和 c , c + + c,c++ c,c++相同
  • python值得一提的是他的变量本质,类似于标签和指针

关键字

  • 是已经被 p y t h o n python python内部使用的名称
  • i m p o r t k e y w o r d ; k e y w o r d . k y l i s t import\quad keyword; \quad keyword.kylist importkeyword;keyword.kylist

\quad \quad 输出与输入

输出

  • 普通的输入输出 p r i n t ( ′ 这 是 普 通 输 入 输 出 ′ ) \quad print('这是普通输入输出') print()
  • 格式化输入输出 p r i n t ( ′ 我 的 姓 名 是 % s , 我 的 年 龄 是 % d ′ % ( n a m e , a g e ) ) \quad print('我的姓名是\%s,我的年龄是\%d'\%(name, age)) print(%s,%d%(name,age))
  • 同c++,c一样,使用 \quad '\n’ \quad 换行
  • 常见的格式符号如下
    python基础知识点小结(2021/2/9)_第1张图片

输入

  • 接收变量 = input(‘输入提示’);
  • 注意接收的输入
  • input接受的数据是字符串,想要变成整数啥的,需要使用 i n t ( ) , e v a l ( ) , f l o a t ( ) , s t r ( ) \quad int(),\quad eval(),\quad float(),\quad str() int(),eval(),float(),str()
  • 下面看几个有趣的实验
# 表达式的计算直接就使用 eval(),简单方便好使
>>> a = 123
>>> b = eval(input())
a * 2
>>> b
246

\quad \quad 运算符和表达式

算数运算符
python基础知识点小结(2021/2/9)_第2张图片

  • 注意,负数求余的正负,关键是看 % \quad \% \quad %后数字的正负
    小实验
>>> a = 12.5
>>> b = 2
>>> a % b
0.5
>>> a / b
6.25
>>> a // b
6.0
>>> a ** b
156.25
>>> b ** a
5792.618751480198
>>> -15 % -2	# 余数的正负,跟随 % 后数的正负
-1
>>> 15 % -2
-1
>>> -15 % 2
1
>>> 15 % 2
1

比较运算符
python基础知识点小结(2021/2/9)_第3张图片
赋值运算符
python基础知识点小结(2021/2/9)_第4张图片

位运算符
python基础知识点小结(2021/2/9)_第5张图片

逻辑运算符和成员运算符
python基础知识点小结(2021/2/9)_第6张图片
身份运算符
python基础知识点小结(2021/2/9)_第7张图片
运算符优先级
\quad\quad\quad\quad\quad python基础知识点小结(2021/2/9)_第8张图片


\quad 判断语句&循环语句&调用库

注意 : 冒号

\quad\quad 判断语句

理论讲解

  • if ~ else ~
  • if ~ elif ~ elif ~~~ else
  • 嵌套
  • 注意要缩进!!
  • 石头剪刀布小游戏 py 代码

\quad\quad 调用py库

  • 将整个模块导入 i m p o r t s o m e _ m o d u l e \quad import \quad some\_module importsome_module
  • 从某个模块中导入某个函数 f r o m s o m e _ m o d u l e i m p o r t s o m e _ f u n c t i o n \quad from \quad some\_module \quad import \quad some\_function fromsome_moduleimportsome_function
  • 从某个模块中导入多个函数 f r o m s o m e _ m o d u l e i m p o r t f i r s t _ f u n c , s e c o n d _ f u n c . . . \quad from \quad some\_module \quad import \quad first\_func,second\_func... fromsome_moduleimportfirst_func,second_func...
  • 将某各模块中的函数全部导入 f r o m s o m e _ m o d u l e i m p o r t \quad from \quad some\_module \quad import \quad fromsome_moduleimport \*
import random as rd
'''
规则: 剪刀(0),石头(1),布(2),退出(3),其他输入都是不合法
    首先是一个while循环,然后不断的接收输入的数据,
    输入数据合法
        是退出信号
            直接退出  
        石头剪刀布
            我们的random数据做比较,输出你赢了,你输了,是平局
    输入不合法
        要求重新输入,并说出游戏规则
'''
gesture = ["石头", "剪刀", "布"];
while True:
    print('--------------------------------------------------------');
    _data = input('规则: 剪刀(0),石头(1),布(2),退出(3),其他输入都是不合法\n请输入数据:')
    _rdm = rd.randint(0, 2);
    if _data == '0' or _data == '1' or _data == '2':    # 合法的正确输入,和随机数比大小
        _data = int(_data);
        print('玩家出的是%s' % gesture[_data]);
        print('电脑出的是%s' % gesture[_rdm]);
        if _data == _rdm:
            print("双方平局");
        elif _data == 0 and _rdm == 2 or _data == _rdm + 1:
            print('玩家赢了');
        else:
            print('玩家输了');
    elif _data == '3':      # 游戏退出
        print('游戏结束');
        break;
    else:                   # 非法输入
        print('输入数据错误,请重新输入');
        continue;

\quad\quad 循环语句(for&while ⇒ \Rightarrow break&continue&pass)

for循环形式
借助range()

  • 注意range(start, end, step), 从start开始,步长为step,一直到end(但是取不到end)
for i in range(5):	# 输出的是 0~4,不会到5的
	print(i);
for i in range(1, 6, 2):	# 输出的是1, 3, 5
	print(i);

用于列表和字符串

name = 'tengzhou'
for i in name:	#会把	tenghzhou	在一行输出
	print(i, end='');

while循环形式
练习1~n的累加和,和偶数的 累加和

n = 100;
sum_all = 0; sum_even = 0; i = 1;
while i <= n:
    sum_all += i;       # 任意数
    if (i & 1) == 0:    # 偶数
        sum_even += i;
    i += 1
print('1~100的数字和为:', sum_all);
print('1~100的偶数和为:', sum_even);

break, continue, pass语句
break, continue, pass的区别与联系
python基础知识点小结(2021/2/9)_第9张图片
练习打印九九乘法表

i = 1;
j = 1;
# 打印 i * j
# i 作为外层循环,j 作为内层循环
while i <= 9:
    j = 1;
    while j <= i:
        if j < i:
            print("%d * %d = %2d" % (i, j, i * j), end = ', \t');
        else:
            print("%d * %d = %2d" % (i, j, i * j));
        j += 1;
    i += 1;

\quad 字符串&列表&元组&字典&集合

\quad\quad 字符串

String字符串

  • 常用单引号、双引号、三引号括起来,使用反斜杠 \ 来进行转义特殊字符.
  • Python3默认UTF-8进行编码,所有字符串都是unicode字符串。
  • 支持字符串的拼接、截取等等多种运算。
  • 使用str 进行强制类型转化

单引号、双引号、三引号选取的区别与联系 <\font>

下面我们给出几个例子来看出使用单引号和双引号的区别
example 1: 字符串 I’am a student

  • 使用单引号 ‘I’am a student’ ⇒ \Rightarrow 必须使用转义字符
  • 使用双引号 “I’m a student” ⇒ \Rightarrow 直接写就可以

example 2:字符串 Tom said "I like you"

  • 使用单引号 ‘Tom said “I like you”’ ⇒ \Rightarrow 直接写就可以
  • 使用双引号 “Tom said “I like you”” ⇒ \Rightarrow 必须使用转义字符

三引号的应用:可以不在一行

  • 有时被用于注释,其实注释的就是未被变量标记的字符串

下面看一下在代码中的显示
其中str1=str2, str3 = str4, s1=s2=s3=s4

# 单引号的和双引号的区别,关键在于转义字符
str1 = 'I\'am a student';
str2 = "I'am a student";
str3 = 'She said "I like you"';
str4 = "She said \"I like you\""
print('str1=', str1);
print('str2=', str2);
print('str3=', str3);
print('str4=', str4);
# 三引号
s1 = '''line1
line2'''
s2 = 'line1\nline2'
s3 = "line1\nline2"
s4 = 'line1\
\nline2'
print('s1=', s1);
print('s2=', s2);
print('s3=', s3);
print('s4=', s4);

转义字符
python基础知识点小结(2021/2/9)_第10张图片
字符串的截取与连接

  • print(str[0:7:2]); # [起始:终止:步长]–>[st:step:ed],注意是取不到 ed 的
  • print(r’hello\npython’); # 在字符串面前加一个 r 表示原始字符串,不会发生转义。
  • print(str[0:-1]); # 输出字符串0到倒数第二个,其实-1表示是最后一个,但是[st:ed]取不到最后一个。
    直接上代码的示例
# 字符串的截取与连接
str = "shandong"

print(str);         # 输出字符串
print(str[:]);      # 输出字符串
print(str[0:])      # 输出字符串
print(str[0:-1]);   # 输出字符串0到倒数第二个
print(str[0]);      # 输出第0个字符, 从0开始计数
print(str[2:5]);    # 输出第2个到第4个字符,从0开始计数
print(str[2:]);     # 输出第2个到最后
print(str * 2);     # 输出两遍
print(str + 'tengzhou') # 字符串连接后输出
print(str[:5]);     # 输出从第0个到第5个字符
print(str[0:7:2]);  # [起始:终止:步长]-->[st:step:ed],注意是取不到 ed 的

print('------------------------------');
print('hello\nshandong');
print(r'hello\npython');    # 在字符串面前加一个 r 表示原始字符串,不会发生转义。

字符串的常见操作
python基础知识点小结(2021/2/9)_第11张图片
python基础知识点小结(2021/2/9)_第12张图片
python基础知识点小结(2021/2/9)_第13张图片
python基础知识点小结(2021/2/9)_第14张图片

\quad\quad 列表

  • 列表中的数据结构可以不同,支持数字、字符串,也可以包括自身(列表的嵌套)。
  • 列表元素写在 [] 之间,用 ‘,’分隔开。eg:list = [‘abcd’, 123, 2.123, ‘python’, 36.5];
  • 索引值和 str类似,0表示开始数值, -1表示末尾的开始位置
  • 同 string 相同, + 表示列表的拼接, * 表示列表的重复

列表的定义与访问
详情请看下面的代码示例

test_list = ['shanghai', 'beijing', "hunan", 123];
for x in test_list:             # 输出形式 1
    print(x);
for i in range(len(test_list)): # 输出形式 2
    print(test_list[i]);

列表的常用操作

  • 直接下标访问、切片、遍历列表
  • 增加:append(element), extend(List)相当于将列表中的元素遍历进行append(), insert()插入到具体的位置
  • 删除:del(idx), remove(val), pop(void)
  • 修改,直接进行下标访问进行修改
  • 查询是否在列表中, In, not in
  • + 用于连接
  • 列表的排序sort(), 翻转的reverse()
  • 长度,最大值、最小值、强制类型转换: len, max, min, list;
    python基础知识点小结(2021/2/9)_第15张图片
    python基础知识点小结(2021/2/9)_第16张图片

列表的嵌套
python基础知识点小结(2021/2/9)_第17张图片

import random

offices = [[], [], []];     # 三个办公室
teacher = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']; # 8个教室

for tea_name in teacher:
    tmp = random.randint(0, 2);
    offices[tmp].append(tea_name);

i = 1;
for off in offices:
    print('办公室%d有%d人'%(i, len(off)), end='\n\t');
    for tea in off:
        print(tea, end=' ');
    print('');
    print('-'* 10);
    i += 1;

编程作业
python基础知识点小结(2021/2/9)_第18张图片
作业的实现的代码如下:

# 商品数据定义
products = [["iphone", 6888], ["MacPro", 14800], ["XiaoMin6", 2499],
            ["Coffee", 31], ["Book", 60], ["Nike", 699]];

# 商品显示
i = 0;
print('-'*6, '  商品列表  ', '-'*6);
for goods in products:
    print('%d\t'%i, goods[0], '\t', goods[1]);
    i += 1;

# 商品购买的循环
buy_goods = [];
while True:
    tmp = input('请输入商品标号,或者是输入q退出\n');
    if tmp == 'q':
        print('退出成功');
        break;
    elif tmp.isnumeric():
        tmp = eval(tmp);
        if tmp < 0 or tmp >= len(products):
            print('数据输入错误,请重新输入');
            continue;
        else:
            buy_goods.append(products[tmp]);
    else:
        print('数据输入错误,请重新输入');
        continue;

# 打印购买的商品和总价
print('-'*6, '  购买的商品为  ', '-'*6);
money = 0;
for goods in buy_goods:
    print('%s\t%d'%(goods[0], goods[1]));
    money += goods[1];
print('总价=%d'%money);

\quad\quad 元组

  • 元组与list类似,但是tuple的数据不可以被修改。元素写在小括号里面,元素之间用逗号分开。
  • 元组的元素不可变,但是可以包括可变对象,eg:list,而且list内部是可以加的
  • 定义只有一个元素的tuple,必须加逗号,因为不加逗号就看成是一个加括号的表达式

代码尝试:

my_tuple = ([1, 2, 3],);
for i in my_tuple:  # 原本 tuple 元素的遍历输出
    print(i);
    
my_tuple[0].append(2);  # 添加的新元素

for i in my_tuple:  # 原本 tuple 元素的遍历输出
    print(i);
    
for i in my_tuple:  # 标签指的是一个地方,是被删除的!!,相当于引用
    i.pop();
    
for i in my_tuple:
    print(i);

结果

[1, 2, 3]
[1, 2, 3, 2]
[1, 2, 3]

元组的定义和访问

  • 创建一个空元祖
  • 元组的定义
  • 元组的访问
  • 元组的元素值是不允许修改的,但是我们可以对元组进行连接组合形成一个新的元组。
  • 将元组删除释放之后,再次访问会报错,是非法的。
# 创建空元祖
tuple1 = ();

# 创建仅仅一个元素的元组
tuple1 = (2, );     # 注意,元组指向内存单元的内容不可以改,但是变量作为便签是可以指向其他地方的
int1 = (2);         # 这个不加逗号的不是元组,是一个整数表达式

# 元组的访问
tuple1 = ('Google', 'baidu', 2000, 2020);
tuple2 = (1, 2, 3, 4, 5, 6, );  # 这个后面的逗号是可加可不加的
print("tuple1[0]=%s"%tuple1[0]);
print("tuple1[2]=%d"%tuple1[2]);
print("tuple1[2]=%s"%tuple1[2]);
print('%s'%1);      # 整数也是可以直接 %s 转换为 string 类型的
print(str(1));
print('tuple2[1~5]:', tuple2[1:5]);

# 假设元组某个元素是可变类型list,我们看看list是否可以正常修改 --> 是可以正常修改的
tup3 = ([0], );
print(type(tup3));
for x in tup3:
    print(x);
x.extend([2, 3, 4, 5, 6]);
x.pop();
for y in tup3:
    print(y);

# 尝试修改其他的
tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');
# 下面的操作是非法的
# tup1[0] += 2;
# 我们可以进行元组的连接
tup3 = tup1 + tup2;
for i in tup3:
    print(i);

# 我们释放一下tup1内存试一试
del tup1
print(tup3);    # 这个是ok的,所以说tup3是新开的内存
print('-' * 6);
''' 都报错,说明还是别用了,释放之后,在为重新赋值之前就别用。
i = tup1;
print('1', type(i));
# print(tup1);    # 什么都输出不了了,被释放了
'''

常用操作
python基础知识点小结(2021/2/9)_第19张图片
在这里插入图片描述
python基础知识点小结(2021/2/9)_第20张图片

操作名称 操作方法 举例
元组的加法操作 + tup3 = tup1 + tup2

\quad\quad 字典

字典的定义

根据键访问值

常用操作

\quad\quad 集合

常用操作

\quad\quad 小结

python基础知识点小结(2021/2/9)_第21张图片

\quad 函数

\quad 文件操作

\quad 错误与异常

你可能感兴趣的:(python入门)