JJJ:python学习笔记1

p4

在这里插入图片描述

在这里插入图片描述
没有编译的过程
源码和输入得到输出

静态语言:编译型
脚本语言:解释型

p5

又叫做胶水语言
在这里插入图片描述

在这里插入图片描述

p7

在这里插入图片描述

p8

在这里插入图片描述

p10

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
上面的单引号''之间的内容:可以是字符,也可以是字符串

在这里插入图片描述

p12

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

p13

在这里插入图片描述

python是动态语言
变量的类型可以改变

在这里插入图片描述

p14

在这里插入图片描述
上面的这些各种进制的数,使用print打印时,默认都是以10进制来显示结果
整数类型是python中的不可变数据类型

在这里插入图片描述

在这里插入图片描述

p15

在这里插入图片描述

第二章

print函数

#print的完整格式为:print(value, ..., sep = '', end = '\n', file=None)

a=100
b=50

#直接输出变量
print(a)
print(b)

#输出字符串
print("aaaa")
#也可以是单引号,或者三个单引号或者三个双引号
print('aaaa')
print('''aaaa''')
print("""aaaa""")

#使用逗号实现同一行输入
print(a, b, "aaabbb")
#会发现a, b, 和字符串"aaabbb" 之间是以空格为间距的
#print的完整格式为:print(value, ..., sep = '', end = '\n', file=None)
#逗号之间的间隔符由sep指定,可以为空'',结束符由end指定,file指定要写入的文件
#linux下python文件无法包含中文解决方法:在代码开头加上 # -*- coding: utf-8 -*-


#使用ascii码输出字符,需要用到内置函数chr
print('b')
print(chr(98))
#chr()的逆函数ord()
print(ord('b'))
print(chr(ord('D')))
#chr()和ord()可以完成
#1、acsii字符和码的转换
#2、汉字unicode字符和码的转换
print(chr(ord('江')), chr(ord('苏')), sep = '=')

#将数据输出到文件当中
#借助open, print两个内置函数
fp = open('note.txt', 'w') #打开文件,w是写的意思
print('123456zz', file = fp)
fp.close() #关闭文件

#使用连接符 + 来连接两个字符串(字符串和数字不能连,只能连两个字符串)
print('abc' + '123')

input函数

'''
语法结构:
x = input('提示文字')
无论输入的数据是什么,input返回的数据类型都是字符串型
'''
name = input('请输入您的姓名:')
print('我叫' + name)

'''
如果想要接收整数类型,并把它保存到变量中,需要使用内置函数 int()
'''
num = input('输入数字:')
print('数字为:' + num)
print('数字为:' + int(num)) #此处会报错,因为+只能连接字符串,int(num)已经是整数了

注释

#单行注释

'''
多行注释1
多行注释2
'''

"""
多行注释1
多行注释2
"""

缩进

通过缩进来体现语句之间的逻辑关系

# 类的定义
class student:
    pass

# 函数的定义
def fun():
    pass

第三章 数据类型和运算符

保留字和标识符 p12

保留字

具有特殊意义的单词,

不可以做为变量、函数、类、模块或其他对象名来使用

使用keyword函数来查看保留字

import keyword
print(keyword.kwlist) # 获取保留字的列表
print(len(keyword.kwlist)) # 获取保留字的个数

保留字严格区分大小写

标识符

就是一个名字
主要给变量、函数、类、模块或其他对象名来使用

标识符不能使用保留字

由字符(英文、中文)、下划线、数字组成;
不能由数字开头
尽量不要使用下划线开头,一般是有特殊意义的才用

区分大小写

包名全小写,不要使用下划线

类名采用单词首字母大写形式(Pascal风格),如MyClass

模块内部的类采用下划线 + Pascal风格的类名组成,如 _InnerClass

常量命名全大写,可以下划线

下面三条先了解
使用单下划线开头的模块、变量、函数是受保护的,不能被import导入
使用双下划线开头的实例变量或方法是类私有的
使用双下划线开头和结尾是Python的专用标识,如__init__()表示初始化函数

变量和常量 p12

变量

变量的类型是可以变化:可以先赋值一个int型,后面也可以赋值一个字符串给它
因此python叫动态语言

a=100 # 创建一个整型变量a,并赋值为8
print(a)
a='123aaa'
print(a)

使用内置函数type()来确定变量的类型

a=100 # 创建一个整型变量a,并赋值为8
print(a)
b='123aaa' # 创建一个字符串变量b,并赋值为
print(b)
# 借助内置函数type() 来确定一个变量的类型
print('a的数据类型是',type(a), type(b))
print('a的数据类型是'+type(a)) # 此行会报错,可见type()返回不是字符串类型

python如何动态修改数据类型?
很简单。赋给同一个变量不同的值就可以
代码块见上两个

python中允许连等号

a=b=1024

通过内置函数id()查看变量的内存地址

a=b=1024
print('a:',id(a))
print('b:',id(b))
# 可以看到两个内存地址是一样的

a=666
print(b)
print(id(a),id(b)) # 此时b还是原值1024,并且a,b的内存地址不一样了

变量是标识符的一种,
因此命名首先要遵循标识符的规范
不能使用保留字
尽量别用大写字母I和字母o
选择有意义的单词做为变量名

常量

python中,没有专门定义常量的关键字
只要在变量命名时,所有字母都是大写(可以有下划线),就认为它是常量
常量约定定义完了就不要去改它的值,硬要改也可以

数值类型 p13

整数类型,浮点数类型,复数类型

整数类型

没有小数部分的数
包含:正整数,负整数和0

进制种类引导符号描述
十进制123,1024
二进制0b或者0B由字符0和1组成,0b101
八进制0o或者0O由字符0到7组成,如0o127456
十六进制0x或0X由字符0-9, a-f, A-F组成,0x10f

数值型、整数类型时不可变数据类型(详见后面)

代码示例

num=987 # 十进制
num2=0b10101101
num3=0o765
num4=0xabf
print(num)
print(num2)
print(num3)
print(num4)
# 可以看到默认是以十进制输出的
浮点数类型

表示有小数点的数值,由整数部分和小数部分组成

10是整数类型,10.0是浮点数类型

代码示例:

# 使用type内置函数来查看变量的数据类型
height=187.6
print(height, type(height))

x=1
y=1.0
print('x的数据类型:',type(x))
print('y的数据类型:',type(y))

两个浮点数类型的数在进行运算时,有一定的概率运算结果后增加一些不确定的尾数

print(0.1+0.2)
print(round(0.1+0.2, 1))

round()是python自带的一个函数,用于数字的四舍五入。
使用方法:round(number,digits)

digits>0,四舍五入到指定的小数位
digits=0, 四舍五入到最接近的整数
digits<0 ,在小数点左侧进行四舍五入
如果round()函数只有number这个参数,等同于digits=0

科学计数法

x=1.99E141
print('科学计数法:',x,' x的数据类型:',type(x))
# 依然是浮点数类型
复数

由实部和虚部组成

x=123+456j
print('实数部分:',x.real,type(x.real))
print('虚数部分:',x.imag,type(x.imag))
# 实数和虚数部分默认都是float类型
常用的数值类型转换函数

int() :把浮点数、字符串(串内并须是整数的字符表示,否则int会报错)转成整型
float():链接
str():str( )函数能将int类型、float类型的数据转换成字符串类型。 str(100) 、str(100.0)

字符串类型 p15

连续的字符序列

包括计算机所能识别的一切字符

字符串的界定符:单引号、双引号、三引号

# 单引号、双引号、三三引号、三双引号
city='天津'
addr="大街3号"
num='''200a'''
age="""18"""
print(city)
print(addr)
print(num)
print(age)

字符串类型也是不可变数据类型

多行字符串使用三个单引号或者三个双引号表示

info='''aaa
bbb
ccc
'''

info2="""aaa
bbb
ccc
"""
转义字符
转义字符描述说明
\n换行符
\ttab键相当于是
\"双引号
\’单引号
\\一个反斜杠
print('北京')
print('欢迎您')

print('北京\n欢迎您')

输出单引号、双引号、斜杠

print('\'') # 输出单引号
print('\"') # 输出双引号
print('\\') # 输出斜杠

使转义字符失效的字符:r或者R

print(r'北\n京\n欢\n迎\n你')
print(R'北\n京\n欢\n迎\n你')
索引

对字符串中某个字符的检索称为索引

两种下标记法:
1、从最左边开始:0,1,2,3,…
2、从最右边开始:…,-4,-3,-2,-1

s='HELLOWORLD'
print(s[0],s[-10]) # 都表示字符H
print('北京欢迎你'[4]) # 直接把上面的s替换成字符串
print('北京欢迎你'[-1]) # 下标为负数,从最左边开始检索,为你
切片

对字符串中某个子串或区间的检索

s='HELLOWORLD'
# 注意,包含2,不包含7
print(s[2:7]) # 从2开始到7结束  LLOWO
print(s[-8:-3]) # 从右向左切片,注意还是不包含右边的,从-4开始,还是LLOWO

print(s[:5]) # 不加开始,默认从0开始
print(s[1:]) # 不加末尾,默认到最后结束
常用的字符串操作
操作符描述说明
x+y将字符串x和y连接起来
xn 或 nx赋值n次字符串x
x in s若x是s的子串,返回True,否则返回False
x='2022年'
y='北京冬奥会'

print(x+y)
print('北京' in y)
print('上海' in y)
print(x*10)

布尔类型 p16

使用保留字True和False来表示真和假

x='2022年'
y='北京冬奥会'

print(x+y)
print('北京' in y)
print('上海' in y)
print(x*10)

使用内置函数bool()去测试一个对象的布尔值

#非0的数值都是True
print(bool(18))
print(bool(-1))
print(bool(0))
print(bool(0.1))

#非空字符串的布尔值是True
print(bool('北京欢迎你'))
print(bool(''))

#False和None的布尔值是Flase
print(bool(False))
print(bool(None))

布尔值为False的情况如下:
1、Flase 或者 None
2、数值中的0,0.0,虚数0
3、空序列,包含字符串、空元素、空列表、空集合
4、自定义对象的实例 bool()返回Flase,或者 len()返回0的

eval函数 p18

内置函数(不需要使用任何前缀,直接使用)

用于去掉字符串最外侧的引号,并按照Python语句方式执行去掉引号后的字符串

一般和input函数一起使用

s='3.14+3'
print(type(s))
x=eval(s)  # 此时,变量x就表示  3.14+3
print(x,type(x))

# eval()函数一般与input()一起使用,用来获取用户输入的数值型
age=eval(input('请输入您的年龄:'))
print(age,type(age))


hello='北京欢迎你'
print(hello)
print(eval('hello'))
print(eval('北京欢迎你'))  # 此处会报错,因为去掉引号后,变成 打印 北京欢迎你,系统将其视为变量,但此变量未背定义

算术运算符 p19

用于处理四则运算的符号

运算符描述说明示例结果
+加法1+12
-减法1-10
*乘法2*36
/除法(结果是浮点型)10/25.0
//整除(结果是整型)10//33
%取余10%31
**幂运算2**416

运算优先级由高到低:
第一级:**
第二级:*、/、%、//
第三级:+、-

赋值运算符 p20

为变量进行赋值操作

=

延申:+=、-=、*=、/=、//=、…

x=20 # 直接赋值
y=10

x=x+y # 等效于 x+=y
print(x)

x+=y # 40
print(x) # x变为40

x-=y # 30

X*=y # 300

x/=y #注意此时x变为30.0,发生了类型转换,变为float类型

x%=2 # 0.0  30.0和2取余,是0.0

Python支持链式赋值

a=b=c=100

字符串分解赋值 p26

a,b,c,d='room' # 字符串分解赋值
# 等效于下面
a='r'
b='o'
c='o'
d='m'

Python支持系列解包赋值

a,b=10,20 # 相当于执行了a=10, b=20

利用系列解包赋值 交换两个变量的值

a,b=b,a
a,b,c=b,c,a # 也是可以的

比较运算符 p21

又叫关系运算符

比较的结果是True或False

==
!=
>
<
>=
<=
(上面这几个用法和c差不多)

逻辑运算符 p22

对真和假两种布尔值再进行运算,结果依然是一个布尔值

运算符描述说明用法结合方向
and逻辑与表达式1 and 表达式2从左到右
or逻辑或表达式1 or 表达式2从左到右
not逻辑非not 表达式从右到左
print(True and True)
print(True and False)
print(not False)

print('-'*40)

print(8>7 and 7>6)
print(8<7 and 10/0) # 当第一个表达式报错时,and的第二个表达式就没必要计算了

位运算和运算符的优先级 p23

位运算

位运算符把数字看作二进制数来计算

进行位运算时需要先把两个数转换成2进制

按位与计算 (&0000 0000 0000 1100
&	0000 0000 0000 1000
------------------------
	0000 0000 0000 1000

按位或运算 (|0000 0000 0000 0100
|	0000 0000 0000 1000
-------------------------
	0000 0000 0000 1100


按 位异或 运算 (^)  对应位置上的数,相同为0,相异为1
	0000 0000 0001 1111
^	0000 0000 0001 0110
------------------------
	0000 0000 0000 1001

按 位取反 运算 (~~ 	0000 0000 0111 1011
----------------------
	1111 1111 1000 0100

左移位运算 (<<)
将一个二进制数向左移动指定的位数,左边(高位端)溢出的位被丢弃,右边(低位端)的空位用0补充


右移位运算 (>>)
将一个二进制数向右移动指定的位数,右边(低位端)溢出的位被丢弃;左边(高位端)的空位端,若最高位是0(正数)左侧空位填0,若最高位是1(负数),左侧空位填1
print('按位与运算:',12&8)
print('按位或运算:',4|8)
print('按位异或运算:',31^32)
print('按位取反运算:',~123)
print('左移位运算',2<<3) # 表示2向左移动3位
print('右移位运算',8>>2)
print('右移位运算', -8》》2) # -2

补码相关运算:
负数的反码=其自身的原码除符号位以外取反
负数的补码=其自身的反码+1

一个数的补码的补码还是自己

运算符的优先级
运算符描述说明
**幂运算
~、+、-取反、正号、负号
*、/、//、%算术运算符
+、-算术运算符
<<、>>移位运算符
&按位与
^按位异或
|按位或
<、<=、>、>=、!=、==比较运算符
=赋值运算符

第4章 程序的流程控制 p25

程序的描述方式 p25

程序有三种描述方式:
1、自然语言:
使用人类语言,直接描述程序

2、流程图
图形体现:流程

3、伪代码
介于自然语言和编程语言之间的一种算法描述语言

程序的组织结构:
1、顺序结构
截图待补充

2、选择/分支结构
截图待补充

3、循环结构
截图待补充

顺序结构 p26

从上到下,依次执行

# 赋值运算符的顺序 从右到左
name='张三'
age=20
a=b=c=d=100 # 链式赋值
a,b,c,d='room' #字符串分解赋值
print(a)
print(b)
print(c)
print(d)

选择结构 p27

又叫做分支结构

按照条件选择执行不同的代码段

单分支结构

格式

# 冒号和缩进至关重要
if 表达式:
	语句块

代码实例:

number=eval(input('请输入您的六位中奖号码:'))

if number==987654:
    print('中奖了')

if number!=987654:
    print('没中奖')

if 后面可以是布尔型,也可是其他值

if a%2:
	print

注意 if not 表达式: 用法

n=98
if n%2:
    print(n,'为奇数')

if not n%2:
    print(n,'为偶数')

判断是否是空字符串:

x=input('请输入一个字符串:')
if x: # 在Python中一切皆对象,每个对象都有一个布尔值。非空字符串的布尔值是True,空字符串的布尔值是False
    print(x,'为非空字符串')

在使用if语句时,若语句块中只有一句代码,可以将语句块直接写在冒号后面:

n=98
if n%2:print(n,'为奇数')
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值