Python 学习笔记-第1讲:基础知识

本文介绍了Python的基本概念、语法特性及常用数据类型。详细讲解了变量赋值、字符串操作、注释和多行语句等基础语法,并对算术、比较、赋值等运算符进行了说明。此外还介绍了条件分支结构的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。

 Everything is object in Python.

解释型意味着无需编译,可在Python解释器中以命令行形式进行交互式编程,也可以保存为 .py 文件进行脚本式编程

特点:

    1. 简单:关键字少,没有分号和大括号{ },代码块使用缩进来分隔

    2. 跨平台、可移植:支持 Windows、Linux 等操作系统,并可用于 Java 和 .net 等开发平台,也被称为“胶水语言”

    3. 面向对象:既支持面向过程的编程,也支持面向对象的编程

    4. 可扩展:可使用 C 语言扩展 Python

    5. 可嵌入:可以将Python嵌入到C/C++程序,从而使程序向用户提供脚本功能

    6. 丰富的库

二、基础语法

    1. 变量

        Python 中的变量不需要声明,变量的赋值操作即为变量声明和定义过程。

        Python 支持同时给多个变量进行赋值,如 a = b = c = 1 或 a, b, c = 1, 2, "john"

        变量名由字母、数字和下划线组成,第一个字符不能为数字,也不能使用 Python 的关键字;且区分大小写

        每个变量都是一个引用;Python 是一种强类型语言,其所有数据类型均为引用数据类型。

        在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。

    2. 基本输入/输出

        input([prompt]):从控制台输入一行字符串。prompt为提示字符串。例如:a = input("请输入...")

    int(input()), eval(input()) 可将输入的数字字符串转换为数字。

   print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False):实现对象以字符串表示的方式格式化输出到流文件对象file里。其中所有非关键字参数都按str()方式进行转换为字符串输出,关键字参数 sep 定义分隔符,比如多个参数输出时想要输出中间的分隔字符;关键字参数end定义输出末尾字符,默认是换行符\n;关键字参数file是定义流输出的文件,可以是标准的系统输出sys.stdout,也可以重定义为别的文件;参数flush是立即把内容输出到流文件,不作缓存。

    print() 默认输出换行符,可使用 end=''取消换行

 3. 单引号、双引号和三引号用于定义字符串。

   三引号可以定义跨行字符串,输出包含换行格式(即所见即所得)

 4. 注释

    单行注释以 # 开头

            多行注释使用三引号‘’‘......‘’’

    5. 多行语句

        Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠(\)来实现多行语句,例如:

total = item_one + \
        item_two + \
        item_three

    6. 缩进

        Python 使用缩进来表示代码块,不使用大括号{ }。

        应确保同级代码块的缩进空格数相同

三、数据类型

Python3 中有六个标准的数据类型:

  • Number(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Sets(集合)
  • Dictionary(字典)

Python3 的六个标准数据类型中:

  • 不可变数据(四个):Number(数字)、String(字符串)、Tuple(元组)、Sets(集合);
  • 可变数据(两个):List(列表)、Dictionary(字典)。

    1. 数字 (Number)类型包括 int、float、bool、complex(复数)

        在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。

    

    2. 查询数据类型

            a. type(变量) 

            b. isinstance(变量,类型)

            区别:

                    type()不会认为子类是一种父类类型。

                    isinstance()会认为子类是一种父类类型。

    3. 删除对单个或多个对象的引用

             del var

             del var_a, var_b

四、运算符

   1. 算数运算符

    以下假设变量a为10,变量b为21:        

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


   2. 比较运算符

以下假设变量a为10,变量b为20:

运算符描述实例
==等于 - 比较对象是否相等(a == b) 返回 False。
!=不等于 - 比较两个对象是否不相等(a != b) 返回 True。
>大于 - 返回x是否大于y(a > b) 返回 False。
<小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。(a < b) 返回 True。
>=大于等于 - 返回x是否大于等于y。(a >= b) 返回 False。
<=小于等于 - 返回x是否小于等于y。(a <= b) 返回 True。


   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


   4. 位运算符

   下表中变量 a 为 60,b 为 13二进制格式:a = 0011 1100;b = 0000 1101

运算符描述实例
&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(a & b) 输出结果 12 ,二进制解释: 0000 1100
|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。(a | b) 输出结果 61 ,二进制解释: 0011 1101
^按位异或运算符:当两对应的二进位相异时,结果为1(a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1(~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
<<左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。a << 2 输出结果 240 ,二进制解释: 1111 0000
>>右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数a >> 2 输出结果 15 ,二进制解释: 0000 1111


   5. 逻辑运算符

        and     or        not


   6. 成员运算符

        in         not in


   7. 身份运算符       

身份运算符用于比较两个对象的存储单元

运算符描述实例
isis 是判断两个标识符是不是引用自一个对象x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is notis not 是判断两个标识符是不是引用自不同对象x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

注: id() 函数用于获取对象内存地址。

辨析:is 和 ==

is 判断两个变量是否是引用同一个内存地址。

== 判断两个变量是否相等。

如果不用 a = b 赋值,int 型时,在数值为 -5~256(64位系统)时,两个变量引用的是同一个内存地址,其他的数值就不是同一个内存地址了。

也就是,a b 在 -5~256(64位系统)时:

a = 100
b = 100
a is b # 返回 True

其他类型如列表、元祖、字典让 a、b 分别赋值一样的时:

a is b  # 返回False

    8. 运算符优先级

运算符描述
**指数 (最高优先级)
~ + -按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % //乘,除,取模和取整除
+ -加法减法
>> <<右移,左移运算符
&位 'AND'
^ |位运算符
<= < > >=比较运算符
<> == !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
and or not逻辑运算符


五、条件分支结构

    if 条件:
         代码块
    elif 条件:
         代码块
     else:

         代码块


技巧:判断输入是否为小数(来源:https://blog.youkuaiyun.com/crxmai/article/details/16845943)

  string的isdigit()方法只能判断数字,如果输入的有小数点就不行了。该文的作者rxcai提供了一种判断小数的方法,摘录如下:

import string
xiaoshu = string.digits + '.'
s = raw_input('input a number:')
for i in range(len(s)):
    if s[i] in xiaoshu:
        continue
    else:
        print 'Not a number'
        break
else:
    print "It's a number"



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值