Python入门学习

一、软件的安装

1.Python解释器的下载

Python解释器是一款用于解释、执行Python代码的应用程序
官网网址:https://www.python.org/
Python解释器的使用测试

注意事项: print(20)中的小括号是英文状态下的小括号

2.PyCharm的简介

PyCharm是一款Python的集成开发环境
在Windows、Mac OS和Linux操作系统中都可以使用
带有一整套可以帮助用户在使用Python语言开发时提
高效率的工具

3.Pycharm的优势

Pycharm的优势

4.PyCharm的版本

PyCharm的版本
官网网址:https://www.jetbrains.com/pycharm/download/#section=windows

二、Python编程基础

1.程序设计语言

机器语言:
是一种二进制语言,它直接使用二进制代码表达指令,是计算机硬件可以直接识别和执行的程序设计语言

汇编语言:
使用方便助记符与机器语言中的指令一一对应

高级语言:
是接近自然语言的一种计算机程序设计语言Python、Java都是高级语言。

2.编译与解释

编译型是指将源代码转换成目标代码的过程,通常源代码是高级语言代码,目标代码是机器语言代码,执行编译的计算机程序称为编译器(Compiler)
编译
解释型是指将源代码逐条转换成目标代码同时逐条运行目标代码的过程,执行解释的计算机程序称为解释器(Interpreter)
解释

3.Python语言简介

Python语言的发明人一吉多.范罗苏姆(荷兰人)
Python语言的设计非常优雅、明确、简单
Python语言具有丰富和强大的库,能够把使用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起

4.Python语言的发展

Python语言是在1989年诞生的,但是最早的可用版本诞生于1991年,在之后的近20年间又经历了Python2Python3的演化过程。
2000年10月,Python2.0版本发布,开启了Python广泛应用的新时代。
2010年,Python2.x系统发布了最后一个版本,主版本号为2.7,用于终结2.x系列版本的的发展,并且不再进行重大改进。
2008年12月,Python3.0版本发布,这个版本的解释器内部完全采用面向对象方式实现,在语法层面做了很多重大改进。
2016年,所有Pvthon重要的标准库和第三方库都已经在Pvthon3.x版本下进行演进和发展Python语言版本升级过程宣告结束。

5.Python语言的特点

Python语言的特点

6.Python的应用领域

Python的应用领域
Python的应用领域

7.Python的开发工具

Python自带的集成开发学习环境IDLE
(Integrated Development Learning Environment)
Python的开发工具
Python的开发工具

注意事项:print()中的引号为英文状态下的引号,print后面的小括号也为英文状态下的小括号

8.IPO程序编写方法

IPO程序编写方法

9.基本的输出函数print

语法结构:

print(输出内容)

print()函数完整的语法格式:

print(value,...,sep='',end='\n',file=None)
a=100 # 变量a,值为100
b=50
print(90)
print(a) # 输出的是变量的值,a的值是100
print(a*b) # 输出a*b的运算结果,运算结果为5000

print('北京欢迎你!')
print("北京欢迎你!")
print('''北京欢迎你!''')
print("""北京欢迎你!""")
print(a,b,'要么出众,要么出局!!!')

print(b) # 直接输出了b
print(chr(98)) # 也输出了b 使用chr()将98转换成ASCII表中的字符
# 中文编码的范围是[u4e00-u9fa5]
print(ord('北'))
print(chr(21271))

fp=open('note.txt','w') # 打开文件 w-->write
print('北京欢迎你',file=fp) # 将"北京欢迎你" 输出(写入)到note.txt 文件中
fp.close() # 关闭文件

print('北京',end='-->')
print('欢迎你') # 没有修改 结束符,所以,print之后会有一个空格

print('北京欢迎你'+'2023')
# print('北京欢迎你'+2023) # TypeError:can only concatenate str(not "int") to str

10.基本的输入函数input

语法结构:

x=input('提示文字')

注意事项:无论输入的数据是什么,x的数据类型都是字符串类型

num=input('请输入您的幸运数字:')
print('您的幸运数字是:'+num) # 连接成功,说明num是字符串类型
num=int(num) # 使用内置函数int将num转成整数类型
print('您的幸运数字是:',num)

11.Python中的注释

注释:
程序员在代码中对代码功能解释说明的标注性文字
可以提高代码的可读性
注释的内容将被Python解释器忽略,不被计算机执行
单行注释、多行注释和中文声明注释

# coding=utf-8
# 中文声明注释,一定要写在第一行
'''
版权所有:xxx
文件名:xxx
创建人:zimin
'''

"""
版权所有:xxx
文件名:xxx
创建人:zimin
"""

12.代码缩进

指每行语句开始前的空白区域
用来表示Python程序间的包含和层次关系
类定义、函数定义、流程控制语句以及异常处理语句等行尾的冒号下一行的缩进表示一个代码块的开始,而缩进结束,则表示一个代码块的结束
通常情况下采用4个空格作为一个缩进量

# 一般代码 不需要缩进
# 类的定义
class Student:
	pass

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

13.习题

  1. Python是一种(B)类型的编程语言
    A.机器语言
    B.解释
    C.编译
    D.汇编语言

  2. Python语句print(“中国,你好”)的输出是(C)
    A.(“中国,你好”)
    B.“中国,你好”
    C.中国,你好
    D.运行结果出错

  3. 以下不是IPO模式的是(B)
    A.input
    B.program
    C.process
    D.output

  4. Python语言通过(C)来体现语句之间的逻辑关系
    A.{}
    B.()
    C.缩进
    D.自动识别逻辑

  5. Python解释器在语法上不支持(D)编程方式
    A.面向过程
    B.面向对象
    C.语句
    D.自然语言

  6. 实战一:输出“人生苦短,我用Python”
    需求:使用print()函数将 “人生苦短,我用Python” 输出到文本文件text.txt中

fp=open('text.txt','w') # 打开文件
print('人生苦短,我用Python',file=fp) # 输出内容到文件
fp.close() # 关闭文件
  1. 实战二:输出个人自我介绍
    需求:使用input()函数从键盘输入姓名、年龄,座右铭,并使用print()
    函数输出到控制台
name=input('请输入您的姓名:')
age=input('请输入您的年龄:')
motto=input('请输入您的座右铭:')
print('----------自我介绍----------')
print('姓名:',name)
print('年龄:',age)
print('座右铭:',motto)

三、数据类型和运算符

1.保留字与标识符

指在Python中被赋予特定意义的一些单词,在开发程序时,不可以把这些保留字作为变量、函数、类、模块和其他对象的名称来使用
保留字

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

true='真'
True='真' # True是Python中的保留字

Python标识符的命名规则
可以是字符(英文、中文)、下划线 “_” 和数字,并且第一个字符不能是数字
不能使用Python中的保留字
标识符严格区分大小写
以下划线开头的标识符有特殊意义,一般应避免使用相似的标识符
允许使用中文作为标识符,但不建议使用

Python标识符的命名规范
模块名尽量短小,并且全部使用小写字母,可以使用下划线分隔多个字母。例如:grame_main
包名尽量短小,并且全部使用小写字母,不推荐使用下划线。例如:com.python ,不推荐使用com_python
类名采用单词首字母大写形式(Pascal风格)。例如:MyClass
模块内部的类采用 “_” +Pascal 风格的类名组成,例如:在MyClass中的内部类_InnerMyClass
函数、类的属性和方法的命名,全部使用小写字母,多个字母之间使用下划线分隔
常量命名时采用全部大写字母,可以使用下划线

使用单下划线 “_” 开头的模块变量或函数是受保护的,在使用“from xxx import *” 语句从模块中导入时,这些模块变量或函数不能被导入
使用双下划线 “__” 开头的实例变量或方法是类私有的
以双下划线开头和结尾的是Python的专用标识,例如:_init_()表示初始化函数

2.变量与常量

变量的语法结构:
变量名=value

luck_number=8 # 创建一个整型变量luck_number,并为其赋值为8

my_name='zimin' # 字符串类型的变量

print('luck_number的数据类型是:',type(luck_number))

# Python动态修改变量的数据类型,通过赋不同类型的值就可以直接修改
luck_number='北京欢迎你'
print('luck_number的数据类型是:',type(luck_number)) # <class 'str'>

# 在Python中允许多个变量指向同一个值
no=number=1024 # no与number都指向了1024这个整数值
print(id(no)) # id()查看对象的内存地址的

变量内存示意图
变量命名应遵循以下几条规则
变量名必须是一个有效的标识符
变量名不能使用Python中的保留字
慎用小写字母I(挨)和大写字母O
应选择有意义的单词作为变量名

常量
常量就是在程序运行过程中,值不允许改变的量
全部使用大写字母和下划线命名

pi=3.1415926 # 定义了一个变量
PI=3.1415926 # 定义了一个常量

3.数值类型

整数类型表示的数值是没有小数部分的数值,包含正整数、负整数和0
数值类型

num=987 # 默认是十进制,表示整数
num2=0b1010101 # 使用二进制表示整数
num3=0o765 # 使用八进制表示整数
num4=0x87ABF # 是用十六进制表示整数

浮点数类型表示带有小数点的数值,由整数部分和小数部分组成
注意事项:
两个浮点类型的数在进行运算时,有一定的概率运算结果后增加一些“不确定的”尾数
Python中的复数与数学中的复数形式完全一致,由实部虚部组成
j=√-1
在Python中实数部分使用.real表示,虚数部分使用.imag表示

height=187.6 # 身高
print(type(height)) # type()查看height这个变量的数据类型

x=10
y=10.0
print('x的数据类型:',type(x)) # int
print('y的数据类型:',type(y)) # float

print(0.1+0.2) # 不确定的尾数问题
print(round(0.1+0.2,1)) # 0.3

4.字符串类型

字符串类型连续的字符序列,可以表示计算机所能识别的一切字符
字符串的界定符:单引号、双引号、三引号
字符串类型
原字符:使转义字符失效的字符,r或R

# 多行字符串
info=‘’‘地址:xxx
	收件人:xxx
	手机号:xxx
’‘’
info2="""地址:xxx
	收件人:xxx
	手机号:xxx
"""

print('北京\n欢迎你') # 遇到\n即换行,可以连续换多行
print('hello\toooo') # hello是5个字符,一个制表位是8个字符 8-5=3

# 原字符,使转义字符失效的符号r或R

字符串又被称为有序的字符序列,对字符串中某个字符的检索称为索引
索引
对字符串中某个子串区间检索称为切片
切片的语法结构
字符串或字符串变量[N:M]

s='HELLOWORLD'
print(s[0],s[-10]) # 序号0和序号-10表示的是同一个字符
print('北京欢迎你'[4]) # 获取字符串中索引为4
print(s[2:7]) # 从2开始到7结束不包含7 正向递增
print(s[-8:-3]) # 反向递减
print(s[:5]) # 默认N从 0开始
print(s[5:]) # 默认是切到字符串的结尾

常见的字符串操作:
常见的字符串操作

x='2022年'
y='北京冬奥会'
print(x+y) # 连接两个字符
print(x*10) # 对x这个字符串的额内容复制10次

print('北京' in y) # True
print('上海' in y) # False

5.布尔类型

用来表示“”值或“”值的数据类型
在Python中使用标识符TrueFalse表示布尔类型的值
True表示整数1False表示整数0
布尔值为False的情况如下
False 或者是None
数值中的0,包含0,0.0,虚数0
空序列,包含空字符串、空元组、空列表、空字典、空集合
自定义对象的实例,该对象的_bool_()方法返回False或_len_()方法返回0

x=True
print(x+10) # 11 --->1+10
print(False+10) # 10 -->0+10

print(bool(18)) # 测试一下整数18的布尔值 True
print(bool(0)bool(0.0)) # False
# 总结,非0的整数的布尔值都是True
print(bool('北京欢迎你')) # True
print(bool('')) # False
# 所有非空字符串的布尔值都是True
print(bool(False)) # False
print(bool(None)) # False 

6.数据类型之间的转换

数据类型之间的转换

x=10
y=3
z=x/y # 在执行除法运算的时候,将运算的结果赋值给z
print(z,type(z)) # 隐式转换,通过运算隐式的转了结果的类型

# float类型转成int类型,只保留整数部分
# 将int转成float类型
# 将str转成int类型
# 将字符串转成int或float时报错的情况
# print(int('18a')) # ValveError: invalid literal for int() with base 10: '18a'
# print(int('3.14')) # ValveError: invalid literal for int() with base 10: '3.14'
# print(float('45a.987')) # ValveError: could not convert string to float: '45a.987'

# chr()ord()一对
print(ord('杨')) # 杨在unicode表中对应的整数值
print((chr(26472))) # 26472整数在unicode表中对应的字符是什么

# 进制之间的转换操作,十进制与其它进制之间的转换

7.eval函数

Python中的内置函数
用于去掉字符串最外侧的引号,并按照Python语句方式执行去掉引号后的字符串
eval()函数经常和input()函数一起使用
eval的语法格式
变量=eval(字符串)

s='3.14+3'
x=eval(s) # 使用eval函数去掉s这个字符串中左右的引号,执行加法运算

# eval函数经常与input()函数一起使用,用来获取用户输入的数值
age=eval(input('请输入您的年龄:')) # 将字符串类型转成了int类型,相当于int(age)

8.算术运算符

用于处理四则运算的符号
算术运算符

print('幂运算:',2**4) # 2*2*2*2
print(10/0) # ZeroDivisionError: division by zero

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

9.赋值运算符

赋值运算符

x=20 # 直接赋值:直接将20赋值给左侧的变量x
y=10
x=x+y # 将x+y的和赋值给x,x的值为30
print(x) # x的值是30
X+=y # 40 相当于x=x+y
x-=y # 相当于x=x-y
print(x) # 30
x*=y
print(x) # 300
x/=y
print(x) # 30.0 发生了类型转换 x的数据类型为float类型
print(type(x)) # <class 'float'>
x%=2 # 相当于 x=x%2
print(x) # 0.0
z=3
y//=z # 相当于y=y//z
print(y) # 3
y**=2 # 相当于 y=y**2
print(y) # 9

# Python支持链式赋值
a=b=c=100 # 相当于执行a=100 b=100 c=100

# Python支持系列解包赋值
a,b=10,20 # 相当于执行了a=10 b=20
a,b=b,a # 将b的值赋给a,将a的值赋给b

10.比较运算符

比较运算符

11.逻辑运算符

逻辑运算符

print(8>7 and 6>5) # True
print(8>7 and 6<5) # False
print(8<7 and 10/0)# False,10/日并没有运算,当第一个表达式的结果为False,直接得结果,不会计算 and右侧的表达式了

print(False or False) # False
print(8>7 or 10/0) # True ,左侧的表达式结果为True时,or的右侧表达式根本不执行运算符

print( not True ) # False
print( not False) # True
print( not (8>7))) # False

12.位运算符

位运算符把数字看作二进制数来进行计算的
位运算符
位运算符
**“左移位”运算 (<<)**是将一个二进制数向左移动指定的位数,左边(高位端)溢出的位被丢弃,右边(低位端)的空位用0补充。
“左移位”运算

print('左移位:',2<<2) # 8,表示的是2向左移动两位 2*2*2
print('左移位:',2<<3) # 相当于 2*2*2*2

**“右移位”运算(>>)**是将一个二进制数向右移动指定的位数,右边(低位端)溢出的位被丢弃,左边(高位端)的空位端,如果最高位是0(正数)左侧空位填0,如果最高位是1(负数),左侧空位填1。
“右移位”运算

print('右移位:',8>>2) # 8向右移动两位相当于8//2,4//2
print('右移位:;,-8>>2) # -2

13.运算符的优先级

运算符的优先级

14.习题

  1. 以下哪项不是Python语言的保留字(C
    A. False
    B. and
    C. true
    D. if

  2. x=5,y=3,执行x,y=y,x之后,x和y的值分别是什么?(B
    A. 5,3
    B. 3,5
    C. 3,3
    D. 5.5

  3. 以下变量名不合法的是(A
    A. for
    B. _my
    C. a_int
    D. c888

  4. “世界那么大,我想去看看”[7:-3](D
    A. 我想去
    B. 想去
    C. 我想
    D. 想

  5. 与0xf2值相等的是(B
    A. 342
    B. 242
    C. 0b11010010
    D. 0o362

  6. 以下不是Python内置数据类型的是(A
    A. char
    B. int
    C. float
    D. str

  7. 以下是print( ‘\nPython’ )语句运行结果是(A
    A. 在新的一行输出:Python
    B. 直接输出’ \nPython’
    C. 直接输出\nPython
    D. 先输出n,然后新一行输出设Python

  8. 以下选项中,关于Python字符串的描述错误的是(D
    A. 字符串是用一对双引号""或者一对单引号’'括起来的零个或者多个字符串
    B. 字符串是字符的序列,也是序列类型的一种
    C. 字符串使用[]进行索引和切片
    D. Python字符串的切片方式是[N,M],包括M

  9. 关于赋值语句,以下选项中描述错误的是(B
    A. 赋值语句采用符号 “=” 表示
    B. 赋值与二元操作符可以组合,例如&=
    C. a,b=b,a可以实现a和b值的互换
    D. a,b,c=b,c,a是合法的

  10. 实战一:从键盘获取一个4位整数,分别输出个位、十位、百位、千位上的数字。
    需求:可以使用eval()函数或者int()函数将从键盘获取的数字串转成int类型,通过整除和取余操作分别获取数字。

num=eval(input('请输入一个四位整数:'))
print('个位上的数:',num%10)
print('十位上的数:',num//10%10)
print('百位上的数:',num//100%10)
print('千位上的数:',num//1000)

num=input('请输入一个四位的整数:') # num是一个字符串类型
print('个位上的数:',num[3])
print('十位上的数:',num[2])
print('百位上的数:',num[1])
print('千位上的数:',num[0])
  1. 实战二:根据父母身高预测儿子的身高
    需求:从键盘输入父母的身高,并使用eval()或float()转换输入的数据类型。计算公式:儿子身高=(父亲身高+母亲身高)*0.54。
father_height=eval(input('请输入爸爸的身高:'))
mother_height=eval(input('请输入妈妈的身高:'))
son_height=(father_height+mother_height)*0.54
print('预测儿子的身高:',son_height)

四、程序的流程控制

1.程序的描述方式

自然语言就是使用人类语言、直接描述程序
程序的描述方式
流程图是用一系列图形、流程线和文字说明描述程序的基本操作和控制流程
主要适用于较短的算法
流程图
流程图
伪代码是介于自然语言和编程语言之间的一种算法描述语言,如果程序比较小,可以直接使用代码描述

伪代码

2.程序的组织结构

程序的组织结构

3.顺序结构

顺序结构按程序语句的自然顺序,从上到下,依次执行每条语句的程序
顺序结构

# 赋值运算符的顺序 从右到左
name='张三'
age=20
a=b=c=d=100 # 链式赋值
a,b,c,d='room' # 字符串分解赋值
print('----输入/输出语句也是典型的顺序结构----')

4.选择结构

选择结构也称分支结构,是按照条件选择执行不同的代码段
单分支结构if的语法结构
if 表达式:
  语句块
执行流程
如果表达式的值为True执行语句块,如果表达式的值为False跳过语句块,继续执行后面的代码
单分支结构

number=eval(input('请输入您的6位中奖号码:'))
# 使用if语句
if number==987654: # 等值判断
	print('恭喜您,中奖了!')
if number!=987654:
	print('您未中本期大奖')
print('-------以上1f判断的表达式,是通过比较运算符计算出来的,结果是布尔值类型----')

n=98 # 赋值操作
if n%2: # 98%2的余数是0,0的布尔值是False,非0的布尔值为True
	print(n,'是奇数') # 由于98%2的余数是0,所以该行代码不执行
if not n%2: # 98%2的余数是0,日的布尔值是False, not False 的结果为True
	print(n,'为偶数')

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

print('-表达式也可以是一个单纯的布尔型变量-')

print('-------使用if语句时,如果语句块中只有一句代码,可以将语句块直接写在冒号的后面-----')
a=10
b=5
if a>b:max=a # 语句块只有一句,赋最大值

双分支结构if…else…语法结构
if 表达式:
  语句1
else:
  语句2
执行流程
如果表达式的值为True
行语句1,否则就执行语句2
双分支结构

number=eval(input('请输入您的6位中奖号码:'))
# if...else
if number==987654:
	print('恭喜您中奖了!')
else:
	print('您未中本期大奖!')
print('----以上代码可以使用条件表达式进行简化---')
result='恭喜您中奖了!' if number==987654 else'您未中本期大奖!'

多分支结构语法结构
if 表达式1:
  语句块1
elif 表达式2:
  语句块2
elif 表达式n:
  语句块n
else:
  语句块n+1

多分支结构语法结构
单分支结构、双分支结构和多分支结构在实际开发中是可以互相嵌套使用的,内层的分支结构将作为外层分支结构的语句块使用
选择结构

answer=input('请问,您喝酒了吗?')
if answer=='y': # answer的值为y表示喝酒了
	proof=eval(input('请输入酒精含量:'))
	if proof<20:
		print('构不成酒驾,祝您一路平安')
	elif proof<80: # 20<=proof<80
		print('已构成酒驾,请不要开车')
	else:
		print('已达到了醉驾标准,请千万不要开车')
else:
	print('你走吧,没你啥事儿!')

在使用and连接多个条件判断时,只有同时满足多个条件,才能执行if后面的语句块。
选择结构
使用or连接多个判断条件时,只要满足多个条件中的一个,就可以执行if后面的语句块
选择结构

5.Python3.11新特性——模式匹配

score=input('请输入成绩等级:')
match score:
	case 'A':
		print('优秀')
	case 'B':
		print('良好')
	case 'C':
		print('中等')
	case 'D':
		print('及格')
	case 'E':
		print('不及格')

6.循环结构

在Python中循环结构分两类,一类是遍历循环结构for,一类是无限循环结构while
遍历循环for的语句结构:
for 循环变量 in 遍历对象:
  语句块
for…else…结构:
for 循环变量 in 遍历对象:
  语句块1
else:
  语句块2
循环结构

# 遍历字符串
for i in 'hello':
	print(i)
# range()函数,Python中的内置函数,产生一个[n,m)的整数序列,包含n,但是不包含m
for i in range(1,11):
	# print(i)
	if i%2==0:
		print(i,'是偶数')
# 计算1-10之间的累加和
s=0 # 用于存储累加和
for i in range(1,11):
	s+=1 # 相当于 s=s+i
print('---100到999之间的水仙花数---')
'''
153=3x3x3+5%5*5+1*1*1
'''
for i in range(100,1000):
	sd=i%10 # 获取个位上的数字 假设 153%10 -->3
	tens=i//10%10 # 获取十位上的数字 153//10-->15 15%10-->5
	hundred=i//100 # 获取百位上的数字 153//100-->1
	# 判断
	if sd**3+tens**3+hundred**3==i:
		print(i)

无限循坏while的语句结构:
while 表达式:
  语句块
while循环的四个步骤:
1)初始化变量
2)条件判断
3)语句块
4)改变变量
while…else…结构:
while 表达式:
  语句块1
else:
  语句块2
无限循坏while的语句结构

#(1)初始化变量
answer=input('今天要上课吗?y/n')
while answer=='y': # (2)条件判断
	print('好好学习,天天向上') # (3)语句块
	#(4)改变变量
	answer=input('今天要上课吗?y/n')

# 1-100之间的累加和
s=0 # 存储累加和
i=1 # (1)初始化变量
while i<=100: # (2)条件判断
	s+=i # (3)语句块
	#(4)改变变量
	i+=1 # 相当于i=i+1
else:
	print('1-100之间的累加和:',s)


7.

8.

五、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值