首页 > 编程语言 >初识Python从入门到精通—— 语法及入门 1( 专为Python零基础)

初识Python从入门到精通—— 语法及入门 1( 专为Python零基础)

时间:2024-11-01 21:50:00浏览次数:5  
标签:10 num 入门 Python 补码 运算符 二进制 初识 print

本文前4章为学习python的辅助章节,简单了解即可,可根据自身情况进行选择学习。

程序:指挥计算机工作的指令序列。

1.计算机如何处理程序?

按照冯·诺依曼存储程序的原理,计算机的工作流程大致如下:

1. 用户打开程序,程序开始执行;

2. 操作系统将程序内容相关数据送入计算机的内存;

3. CPU根据程序内容从内存读取指令;

4. CPU分析、处理指令,并为取下一条指令做准备;

5. 取下一条指令并分析、处理,如此重复操作,直至执行完程序中全部指令,最后将计算的结果放入指令指定的存储器地址中。

2、计算机语言三代

1.机器语言——计算机最早的语言形式,直接使用二进制代码表示,由0和1组成的序列构成,计算机能够直接识别和执行这些指令。

优点:计算机直接识别并处理,运行速度最快。

缺点:非常底层且难以理解和记忆。

2‌.汇编语言‌——使用助记符来表示机器指令,这些助记符更接近人类语言,使得编程变得更加直观和易于理解。

优点:一定程度上解决了机器语言的缺点。

缺点:低级语言编写效率低,依赖于硬件。

3.高级语言‌——使用人类日常语言编写。

优点:易于理解与阅读,不依赖于硬件可以执行高,开发效率高。

缺点:执行速度最慢,占用空间多。

3、高级语言分类

  1. 按实现方式‌:分为编译型语言解释型语言

编译型语言:C、C++,需要先将源代码编译成机器码再执行,开发效率低,执行效率高。

解释型语言:Python、JavaScript,则在运行时由解释器逐行解释执行,开发效率高,执行效率低。

  1. 按编程方式‌:可以分为面向对象语言、面向过程(函数式)语言等。

面向对象语言如: Java、C++,支持封装、继承和多态等概念;

面向过程(函数式)语言如: C,以函数为主要构成单元,强调无副作用和不可变性。

4、机器语言中的二进制

4.1 什么是进制

人为规定符合某种规则的计数方式

规则:X进制——逢X进一、借一当X

计算机中的进制:2进制、8进制、16进制

(1)计算机为什么采用2进制?

        计算简单,电路易于实现

4.2 进制的三要素

进制

数码

基数

位权

十进制

0 1 2 3 4 5 6 7 8 9

10

.......10^2 10^1 10^0 10^-1 10^-2 10^-3.....

二进制

0 1

2

.......2^2 2^1 2^0 2^-1 2^-2 2^-3.....

八进制

0 1 2 3 4 5 6 7

8

.......8^2 8^1 8^0 8^-1 8^-2 8^-3.....

十六进制

0 1 2 3 4 5 6 7 8 9 a b c d e f

16

.......16^2 16^1 16^0 16^-1 16^-2 16^-3.....

4.3 进制的表示方式

进制

前缀法

后缀法

(易识别错误,不选用)

十进制(decimalism)

1234

1234D 1234

二进制(binary )

0b110 0B110

110B

八进制(octonary)

0o1234 0O1234

1234O

十六进制(hexadecimal)

0x1234 0X1234

1234H

4.4 进制的转换

4.4.1 十进制转N进制

方法1:除N取余,逆向排列

例如:25转二进制:25 = 0b11001

25转八进制:25 = 0o31

方法2:位权展开相减法

方法3:python内置函数

#十进制输出
print(1234)
# 十转二
print(bin(1234))
#十转八
print(oct(25))
#十转16
print(hex(25))

4.4.2 N进制转十进制

方法:位权展开相加法

例如 :1010 转为 十进制为 10

4.4.3 二进制与八进制转换

二进制 转 八进制 三合一

八进制 转 二进制 一拆三

例如:

0b110110110 = 0b110 110 110 = 0o666  (2^2+2^1 =4+2=6)

0o567 = 0b101 110 111    (5=2^2+2^0  6=……) 

4.4.4 二进制与十六进制转换

二进制 十六进制 四合一

十六进制 二进制 一拆四

例如:

0b 1 1011 0110 = 0x1b6  (不足4位,在高位补0)

0xabc = 0b1010 1011 1100

a=10=2^3+2^1 =ob1010        b=11=2^3+2^1+2^0      c=12=2^3+2^2

4.6 二进制的原码 反码 补码

数据在存储的时候,有正数也有负数,就涉及到原码、反码、补码,因为计算机中的数据计算都是以【补码】形式参与的。

原码:给人看的,直接转换得到的

反码:用来做原码与补码之间转换的中间者

补码:给计算机看的

正数:原码 = 反码 = 补码 = 自身二进制

负数:

原码:最高位代表符号位【0正1负】,其他位是自身二进制

反码:最高位代表符号位【0正1负】,其他位对原码按位取反【0变1 1变0】

补码:最高位代表符号位【0正1负】,其他位对反码加1

1. 题目描述: 写出下面数值的原码、反码、补码(要求采用16位来表示)
    1) -127的原码    1000 0000 0111 1111
    2) -127的反码    1111 1111 1000 0000    
    3) -127的补码    1111 1111 1000 0001
2. 按照计算机的加法器,计算3-5,演示过程
    题目分析,按照计算机加法器算,所以先将3-5转换成3 + (-5)
    又因为计算机中数值计算都是以【补码】形式参与的,所以计算3和-5的补码
    如下所示:【以8位二进制为例】
    3   0000 0011 =》 0000 0011 =》 0000 0011
    -5  1000 0101 =》 1111 1010 =》 1111 1011
    补码相加,进行计算
    0000 0011    【补码】
  + 1111 1011    【补码】
  ——————————————
    1111 1110    【补码】
    1111 1101    【反码】
    1000 0010    【原码】  -2

5、认识python

  1. 发明人:吉多·范罗苏姆
  2. 时间:1990年初开始设计,1991年发布第一版本
  3. 语言类型:面向对象的、解释型的高级语言
  4. 显著特点:强调代码的简洁性和可读性,追求最少的代码来实现功能

         交换两个数:c=a, a=b, b=c; a=a+b, b=a-b, a=a-b; 位运算

          python中:a,b = b,a

     5. 用途:自动化运维/办公、web开发、爬虫、大数据、云计算、人工智能....

    6.优点:开源、免费、简单、易学、丰富的库【自带的库和第三方库】可移植性高、跨平台性好

    7.缺点:因为是解释型语言所以执行速度慢

6、python的基础语法

6.1 行

 不以分号结尾,独立的一行就是一行python语句

  若语句过长可以回车换行或者使用 续行符 \  进行分割

6.2 缩进

【Tab键或者4个空格,但是一定要统一】

C语言中我们使用 { } 来表示代码段

python语言中使用缩进来表示 代码段

合理的缩进就很重要

print("第一章")
    print("第一小节")
IndentationError: unexpected indent

if 1:
print("第一章")
IndentationError: 
expected an indented block after 'if' statement on line 1

if 1:
    print("我是层级1的执行语句")
    if 2:
        print("我是层级2的执行语句")
        if 3:
            print("我是层级3的执行语句")
        print("我也是层级2的执行语句")
    print("我也是层级1的执行语句")

6.3 注释

——起解释说明作用,解释器会自动忽略这部分内容

注释作用  解释说明   增加可读性

单行注释          # 注释语句 【注意 #和注释语句之间建议使用1个空格隔开】

快捷键是:ctrl + /

多行注释        以三个单引号三个双引号括起来,一般多用于函数、类、文档的说明

# 下面是例子

def fun():
    '''
    这里定义了一个函数
    函数名是:fun
    :return: 还没想好
    功能:也没想好
    '''
    pass

class Person:
    """
    这里定义了以个person类
    类属性是:...
    类方法是:...
    """
    pass

6.4 变量

python中的变量,不需要声明数据类型,根据所赋的值确定类型

变量:在程序运行过程中可以修改的量

变量定义的语法格式:变量名 = 赋值/数据

变量的数据类型:数值Number 字符串String 列表List 元组Tuple 集合Set 字典Dict

变量三要素:id 内存地址        value 值        type 类型

6.5 标识符

用于给变量、函数、类、对象等命名的符号

标识符必须符合一定的规范:

1》由字母、数字、下划线组成,严格区分大小写

2》不能以数字开头

3》不能包含关键字

4》建议使用驼峰命名法、连字符法,见名识意

驼峰命名法:MyFunName

连字符法:my_name

6.6 关键字

python中预先保留的一些具有特殊含义的单词,不能作为标识符。

关键字有这些特征:

预定义:python内置,无需外部导入

不可变:不可以重新定义或者修改

可以通过导入外部keyword库查看关键字列表

# 使用关键字import导入外部keyword关键字库
import keyword
# 调用kwlist显示所有的关键字
print(keyword.kwlist)
# 使用内置函数len可以查看关键字的个数
print(len(keyword.kwlist))

# 调用iskeyword判断你设置的标识符是不是关键字
print(keyword.iskeyword('for'))
print(keyword.iskeyword('end'))

7、数据类型【先了解】

7.1 数值型 Number

  1. int 整数 正整数、负整数、0【区别:可以处理极大极小数】
  2. float 小数、浮点数、实数 因为小数点可以移动,所以称之为浮点数
  3. complex 复数 由实部和虚部两部分组成 3j 3+4j
  4. bool 布尔值 只有两个值True 和 False【注意:首字母必须大写】
int_a = 13
print(type(int_a))

float_a = 13.14
print(type(float_a))

complex_a = 3 + 4j
print(type(complex_a))

bool_a = True
print(type(bool_a))

7.2 字符串 string

字符串就是一系列文本,使用单引号或者双引号括起来,同时可以使用 \ 进行转义字符的处理。

注意:

单引号和双引号只是字符串的标志,不是内容。

例如:"hello",这里面包含5个字符 h e l l o。

若想把单引号 双引号当作内容,如何处理呢?

使用转义字符,因为解释器、浏览器、编译器有时候不解析某些特殊符号,我们就需要使用 \ 对这些特殊符号进行转义说明。

\' 单引号                \" 双引号                \t tab制表符位

\n 回车换行                \a \b \r \\等等等

双引号中可以包含单引号

单引号中可以包含双引号

单引号中不能包含单引号

双引号中不能包含双引号

7.3 列表 list

一组数据放在  [ ] 里面,元素之间使用逗号隔开

list_a = [1, 2, 3, 4, 5]
print(type(list_a))
print(list_a)

7.4 元组 tuple

tuple_a = (1, 2, 3, 4, 5)
print(type(tuple_a))
print(tuple_a)

7.5 字典 dict

是一种映射类型,可以进行索引查看,由键值对组成

放在{ }里面,键值对用:相连,多个键值对用逗号分割

dict_a = {'人字旁':('们', '亿'), '双人旁':('徐', '行')}
print(type(dict_a))
print(dict_a)

7.6集合 set

一组数据放在 { } 里面,元素之间使用逗号隔开

set_a = {1, 2, 3, 4, 5}
print(type(set_a))
print(set_a)

8、运算符

8.1 基本运算符

算术运算符

加 +

减 -

乘 *

除 /

商 //

余(模运算) %

乘方 **

混合运算时,遵循优先级

** 高于 * / // % 高于 + -

若记不住,直接加()

赋值运算符

简单赋值 =

复合赋值运算

+=

-=

*=

/=

//=

%=

**=

复合赋值运算,先运算再赋值

例如:

a = 12

print(a)

a += 12

print(a)

比较运算符

大于>

小于

等于 ==

大于等于 >=

小于等于

不等于 !=

比较运算符的比较结果是布尔值,两个值 True 和 False

逻辑运算符

逻辑与 and

逻辑或 or

逻辑非 not

逻辑与:全真为真、遇假则假

逻辑或:全假为假、有真即真

逻辑非:非真即假、非假即真

逻辑运算的结果是布尔值,有两个:True 和 False

位运算符

二进制

位与 &

 

位或 |

异或 ^

取反 ~

左移

右移 >>

1&0=0 1&1 = 1 0&1 = 0

位与   全1为1   有0则0

1|0=1 0|1=1 0|0=0 1|1=1

位或   全0为0    有1则1

1^0=1 0^1=1 1^1=0 0^0=0

异或  相同为0    不同为1

~1=0      ~0=1

110110

110110>>2 = 00 1101  (正数右移,左侧补0;负数右移,左侧补1)

110110<<2=0110 00


问:
a = 12, 执行完 a += a*a 后,a的值是( )
i = 10, j = 10, k = 3; k*=i+j; k = ( )
# k= k * (i+j)=60

#####################################################

问:
有一个数num,如何判断它是偶数?
    分析:偶数 能被2整除的数,什么是整除呢?——余数为0是整除
    再分析:怎么知道余数为0呢?使用 % 
    num % 2 == 0
有一个数num,如何判断它是奇数?
    num % 2 != 0
有一个数num,如何判断它是5的倍数?
    num % 5 == 0                 
有一个三位数num,如何判断它是水仙花数?
    153 = 1*1*1 + 5*5*5 + 3*3*3  是水仙花数
    个位**3 + 十位**3 + 百位**3 == num
    如何求个位十位百位呢?——十进制转十进制,除10取余,逆向排列
    num = 153
    g = num % 10
    s = num // 10 % 10
    b = num // 100 % 10
    print(g, s, b)
#####################################################

问:
x = 2, y = 3, z = 4; 则表达式 x + (y > z)的值为(2 )
x = 2, y = 3, z = 4; 则表达式 x + (y > (not z))的值为(3 )
需要明白:在逻辑判断中,除了0和0.0之外其余均是真
而真True转换成int是1 假False转换成int是0

如何判断一个数num,能被3或5整除,但是不能被7整除?
    (num%3==0 or num%5==0) and num%7!=0   
如何判断一个数num,是一个三位数?
    100<=num<=999
    num>=100 and num<=999
    num>99 and num<1000
如何判断一个年份year是闰年?[四年一闰百年不闰、四百年再闰]
    (year%4==0 and year%100!=0) or year%400==0
如何判断一个年份year是平年?
    not ((year%4==0 and year%100!=0) or year%400==0)
#####################################################
位运算符:先换算成二进制,以【补码】形式参与运算
    print(25 & 13) 
    print(3 & -3)
    print(3 | -3)
    print(~(-3))
    print(3 ^ -3)
    print(3 << 1)
    print(3 >> 1)
    print(-3 << 2)
    print(-3 >> 2)
注意:
    对于左移来说,低位补0
    对于右移来说,正数高位补0,负数高位补1

8.2 运算符的优先级

()

圆括号内的表达式拥有最高优先级

**

乘方运算

*、/、%、//

算术运算符,先乘除

+、-

算数运算符,后加减

>

位运算符的左移与右移

&

位运算符的按位与

^

位运算符的按位异或

|

位运算符的按位或

> 、=、

比较运算符

and、or

逻辑运算符

=、+=等

赋值运算符优先级最低

未完待续

标签:10,num,入门,Python,补码,运算符,二进制,初识,print
From: https://blog.csdn.net/weixin_56261190/article/details/143438031

相关文章

  • 零基础3分钟快速入门MYSQL关系数据库1
    MySQL的语法规范1.不区分大小写,但建议关键字大写,表名、列名小写2.每条命令最好用分号结尾3.每条命令根据需要,可以进行缩进或换行4.注释ctrl+/单行注释:#注释文字  单行注释:--注释文字  多行注释:/*注释文字*/1.安装mysql、安装navicat2.navicat连接mysql(1)打......
  • 零基础3分钟快速入门MYSQL关系数据库2【1-6见上篇】
    1-6点此链接→  零基础3分钟快速入门MYSQL【1-6】7、数据操作1、插入数据:insertinto表名(字段名1,字段名2....) values(字段对应的值1,字段对应的值2,.......),(字段对应的值1,字段对应的值2,.......);2、修改数据:update表名set 字段名1=新的数据值,字段......
  • 4-10分钟搭建个免费的博客(个人笔记),初识wordpress
    最近几年博客的开源项目wordpress火得不行,今天借着使用宝塔的机会,快速试了一下,发现其功能确实比较全面,使用起来学习成本也非常低。把这个过程记录下来,让一个绝对的新手,按着操作,也可以搭建起来。同时也截图一下wordpress的后台,让大家通过本篇文章,对wp也有个直观的认识。为了加速......
  • 毕业设计:电影推荐系统 协同过滤推荐算法 深度学习 Python 爬虫 豆瓣电影 LSTM算法✅
    博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌>......
  • 当下最好的Java做人工智能应用的开源框架-Spring AI alibaba介绍-含免费的菜鸟入门教
    在过去,Java缺乏一个统一且高效的AI应用框架,这导致开发者在使用不同AI提供商(如OpenAI、Azure或阿里云)时需要频繁地调整代码和接口适配。现在有了Spring团队推出的springAI,他能够很好的解决上面的问题,本文会先介绍一下springai这个应用框架的核心能力和功能。 然后再用s......
  • 手把手教你安装Python解释器!
    文章目录解释器下载安装教程1、先勾选“Addpython.exetoPATH”,再点击“InstallNow”2、等待安装成功后点击“Disablepathlengthlimit”1、使用“Win键+R”呼出运行窗口并输入“cmd”在弹出的窗口中输入“python--version”并回车解释器下载https://pan.quar......
  • 基于Python+Vue开发的健身房管理系统
    项目简介该项目是基于Python+Vue开发的健身房管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的健身房管理系统项目,大学生可以在实践中学习和提升自己......
  • 从零开始的python打怪升级日记 day1
    《python基础篇》......
  • DATA 2100 Major Python Programming
    DATA2100MajorHomeworkPythonProgramming100pointsPurposeInthisassignment,studentswillapplytheir(Python)programmingskillstodevelopadataentryapplicationthatvalidatesentriesagainstadatabaseandthenrecordsvalidentriestothesamed......
  • ctfshow web入门 文件上传
    CtfshowWeb入门151 查看源代码,发现只能上传.png的文件用bp抓包.png的图片格式添加一句话木马,文件格式修改成.php   对于上传成功的后门代码,直接通过hackbar发送post包利用php内置system()函数执行  查看flag.php文件   152和上一题做题步骤一样......