Python核心编程总结(一基础概念与语法)

Posted 生命是有光的

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python核心编程总结(一基础概念与语法)相关的知识,希望对你有一定的参考价值。

✍、脑图时刻

一、基础概念与语法

1、基本语法

1.1、注释

注释分为两类:单行注释 和多行注释

  • 单行注释:只能注释一行内容
# 注释内容     # 后面要加空格
  • 多行注释:可以注释多行内容
"""
     第一行注释
     第二行注释
     第三行注释
"""


'''
     注释1
     注释2
     注释3
'''

1.2、变量

变量名自定义,要满足标识符命名规则

my_name = 'TOM';
print(my_name)

schoolName = '林小秦';
print(schoolName)

1.2.1、标识符

  1. 由数字,字母,下划线开头

  2. 不能数字开头

  3. 不能使用内置关键字(如图)

  1. 严格区分大小写

1.2.2、命名习惯

  • 大驼峰:即每个单词首字母都大写,例如:MyName

  • 小驼峰:第二个(含) 以后的单词首字母都大写,例如:myName

  • 下划线:例如:my_name

1.3、数据类型

数据类型说明
int整型
float浮点型
bool布尔型
str字符串
list列表
tuple元组
set集合
dict字典

检测数据类型的方法:type()

a = 1
print(type(a)) # <class 'int'> -- 整型

b = 1.1
print(type(b)) # <class 'float'> -- 浮点型

c = True
print(type(c)) # <class 'bool'> -- 布尔型

d = '12345'
print(type(d)) # <class 'str'> -- 字符串

e = [10, 20, 30]
print(type(e)) # <class 'list'> -- 列表

f = (10, 20, 30)
print(type(f)) # <class 'tuple'> -- 元组

h = 10, 20, 30
print(type(h)) # <class 'set'> -- 集合

g = 'name': 'TOM', 'age': 20
print(type(g)) # <class 'dict'> -- 字典

1.4、输出

1.4.1、格式化输出

格式符号转换
%d🔥有符号的十进制整数
%f🔥浮点数
%s🔥字符串
%c字符
%u无符号十进制数
%o八进制整数
%x十六进制整数(小写ox)
%X十六进制整数(大写OX)
%e科学计数法(小写’e’)
%E科学计数法(大写’E’)
%g%f和%e的简写
%G%f和%E的简写

1.4.2、技巧

  1. %06d,表示输出的整数显示位数,不足以0补全

  2. %.2f,表示小数点后显示的小数位数

1.4.3、体验

  • 格式化字符串除了 %s,还可以写为 f'表达式' ,写起来简单
age = 18
name = 'TOM'
weight = 75.5
student_id = 1
# 我的名字是TOM
print('我的名字是%s' % name)

# 我的学号是0001
print('我的学号是%4d' % student_id)

# 我的体重是75.50公⽄斤
print('我的体重是%.2f公⽄斤' % weight)

# 我的名字是TOM,今年年18岁了了
print('我的名字是%s,今年年%d岁了了' % (name, age))

# 我的名字是TOM,明年19岁了了
print('我的名字是%s,明年%d岁了了' % (name, age + 1))

# 我的名字是TOM,明年19岁了了
print(f'我的名字是name, 明年age + 1岁了了')

1.4.4、转义字符

  • \\n : 换行
  • \\t : 制表符,一个 tab 键(4个空格) 的距离

1.4.5、结束符

在 python 中,print() 默认自带end='\\n' 这个换行结束符,所以导致每两个 print 会直接换行展示

print('输出的内容',end='\\n')
print('123') 	# 默认自带end='\\n'

1.5、输入

  • 语法input("提示信息")

  • 在 python 中,input 会把接收到数据都当作字符串处理

password = input('请输⼊入您的密码:')
print(f'您输⼊入的密码是password')

# <class 'str'>
print(type(password))

1.6、转换数据类型函数

函数说明
int(x,[base])🔥将 x 转换为一个整数
float(x)🔥将 x 转换为一个浮点数
complex(real,[imag])创建一个复数,real 为实部,imag为虚部
str(x)🔥将对象 x 转换为字符串
repr(x)将对象 x 转换为表达式字符串
eval(str)🔥用来计算在字符串中的有效 python 表达式,并返回一个对象
tuple(s)🔥将序列 s 转换为一个元组
list(s)🔥将序列 s 转换为一个列表
chr(x)将一个整数转换为 Unicode 字符
ord(x)将一个字符转换为它的 ASCII 整数值
hex(x)将一个整数转换为一个十六进制字符串
oct(x)将一个整数转换为一个八进制字符串
bin(x)将一个整数转换为一个二进制字符串

需求:input接收⽤用户输⼊入,⽤用户输⼊入“1”,将这个数据1转换成整型。

# 1. 接收⽤用户输⼊入
num = input('请输⼊入您的幸运数字:')

# 2. 打印结果
print(f"您的幸运数字是num")

# 3. 检测接收到的⽤用户输⼊入的数据类型 -- str类型
print(type(num))

# 4. 转换数据类型为整型 -- int类型
print(type(int(num)))

1.6.1、练习

# 1. float() -- 转换成浮点型
num1 = 1
print(float(num1))          # 1.0
print(type(float(num1)))    # <class 'float'>

# 2. str() -- 转换成字符串类型
num2 = 10
print(type(str(num2)))      # <class 'str'>

# 3. tuple() -- 将⼀一个序列转换成元组
list1 = [10, 20, 30]
print(tuple(list1))             # (10, 20, 30)
print(type(tuple(list1)))       # <class 'tuple'>

# 4. list() -- 将⼀一个序列转换成列表
t1 = (100, 200, 300)
print(list(t1))                     # [100, 200, 300]
print(type(list(t1)))               # <class 'list'>

# 5. eval() -- 将字符串中的数据转换成Python表达式原本类型
str1 = '10'
str2 = '[1, 2, 3]'
str3 = '(1000, 2000, 3000)'
print(type(eval(str1)))         # <class 'int'>
print(type(eval(str2)))         # <class 'list'>
print(type(eval(str3)))         # <class 'tuple'>

1.7、运算符

  • 算数运算符
  • 赋值运算符
  • 复合赋值运算符
  • 比较运算符
  • 逻辑运算符

1.7.1、算数运算符

运算符描述实例
+1 + 1 = 2
-1 - 1 = 0
*2 * 2 =4
/10 / 2 = 5
//整除9 // 4 =2
%取余9 % 4 = 1
**指数2 ** 4 = 16
()括号用来提高运算优先级

混合运算优先级顺序:() 高于 ** 高于 * / // % 高于 + -

1.7.2、赋值运算符

运算符描述实例
=赋值= 右侧的结果赋值给等号左侧的变量
  • 单个变量赋值
num = 1
print(num)
  • 多个变量赋值
num1, float1, str1 = 10, 0.5, 'hello world!'
print(num1)			# 10	
print(float1)		# 0.5
print(str1)			# hello world!
  • 多个变量赋相同的值
a = b = 10
print(a)	# 10
print(b)	# 10

1.7.3、复合赋值运算符

运算符描述实例
+=加法赋值运算符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
a = 100
a += 1
# 输出101 a = a + 1,最终a = 100 + 1
print(a)


b = 2
b *= 3
# 输出6 b = b * 3,最终b = 2 * 3
print(b)

c = 10
c += 1 + 2
# 输出13, 先算运算符右侧1 + 2 = 3, c += 3 , 推导出c = 10 + 3
print(c)

1.7.4、比较运算符

比较运算符也叫关系运算符,通常用来判断

运算符描述实例
==判断相等,如果两个操作数的结果相等,则条件结果为
真True,否则条件结果为假False
如a=3,b=3,则(a == b) 为True
!=不不等于 。如果两个操作数的结果不不相等,则条件为
真(True),否则条件结果为假(False)
如a=3,b=3,则(a == b) 为 True如
a=1,b=3,则(a != b) 为 True
>运算符左侧操作数结果是否⼤大于右侧操作数结果,
如果大于,则条件为真,否则为假
如a=7,b=3,则(a > b) 为 True
<运算符左侧操作数结果是否⼩小于右侧操作数结果,
如果小于,则条件为真,否则为假
如a=7,b=3,则(a < b) 为 False
>=运算符左侧操作数结果是否⼤大于等于右侧操作数结
果,如果大于,则条件为真,否则为假
如a=7,b=3,则(a < b) 为 False如
a=3,b=3,则(a >= b) 为 True
<=运算符左侧操作数结果是否⼩小于等于右侧操作数结
果,如果小于,则条件为真,否则为假
如a=3,b=3,则(a <= b) 为 True
a = 7
b = 5
print(a == b) # False
print(a != b) # True
print(a < b) # False
print(a > b) # True
print(a <= b) # False
print(a >= b) # True

1.7.5、逻辑运算符

运算符逻辑表达式描述实例
andx and y布尔"与":如果 x 为 False,x and y 返回
False,否则它返回 y 的值。
True and False, 返回
False。
orx or y布尔"或":如果 x 是 True,它返回 True,否则
它返回 y 的值。
False or True, 返回
True。
notnot布尔"非":如果 x 为 True,返回 False 。如果 x
为 False,它返回 True。
not True 返回 False, not
False 返回 True
a = 1
b = 2
c = 3
print((a < b) and (b < c)) # True
print((a > b) and (b < c)) # False
print((a > b) or (b < c)) # True
print(not (a > b)) # True

1.7.6、数字之间的逻辑运算

a = 0
b = 1
c = 2

# and运算符,只要有一个值为0,则结果为0,否则结果为最后一个非0数字
print(a and b) # 0
print(b and a) # 0
print(a and c) # 0
print(c and a) # 0
print(b and c) # 2
print(c and b) # 1

# or运算符,只有所有值为0结果才为0,否则结果为第一个非0数字
print(a or b) # 1
print(a or c) # 2
print(b or c) # 1

1.8、IF

1.8.1、if…else…

  1. 如果用户年龄大于等于18岁,即成年,输出"已经成年,可以上网"
# input接收的是字符串,需要转换为整型
age = int(input("请输入您的年龄:"))
if age >= 18:
    print(f"您的年龄为age,成年可以上网")
else:
    print(f"您的年龄为age,未成年无法上网")

注意:与 java 语言不同的是, if、else、while、for 后面都需要加 冒号:

1.8.1、if…elif…

  1. 中国合法工作年龄为18-60岁,如果年龄小于18的情况为童工,不合法;如果年龄在18*-60岁之间,则为合法工龄;大于60岁为法定退休年龄
# input接收的是字符串,需要转换为整型
age = int(input("请输入您的年龄:"))
if age < 18:
    print(f"您的年龄小于18,不能进行工作,属于童工")
elif 18 <= age <= 60:
    # age >= 18 and age <= 60
    print(f"您的年龄为合法年龄,可以工作")
elif age > 60:
    print(f"您的年龄不属于合法工作年龄")

1.8.2、IF嵌套

  1. 坐公交:如果有钱可以上车,没钱不能上车,上车后如果有空座,可以坐下,如果没空座,则要站着,怎么书写程序。
money = 1
seat = 0
if money == 1:
    print("有钱,请上车")
    if seat == 1:
        print("有座位,请坐")
    else:
        print("没座位,不能坐")
else:
    print("没钱,不能上车")

  1. 猜拳游戏

玩家手动出拳,电脑随机出拳

导入random模块

import 模块名

使用random模块中的随机整数功能

random.randint(开始,结束)
# random.randint(0,2)
"""
提示:0-石头,1-剪刀,2-布
1.出拳
玩家输入出拳
电脑随机出拳

2.判断输赢
玩家获胜
平局
电脑获胜
"""

# 导入random模块
import random

# 计算电脑出拳的随机数字
computer = random.randint(0, 2)

# 玩家出拳
player = int(input("请玩家出拳:  0--石头,1--剪刀,2--布"))

# 玩家胜利  p0,c1  p1,c2 p2,c0
if((player==0) and (computer==1) or ((player==1) and (computer==2)) or ((player==2) and (computer==0))):
    print(f"玩家出拳是player")
    print(f"电脑出拳是computer")
    print("玩家获胜")
elif player==computer:
    print(f"玩家出拳是player")
    print(f"电脑出拳是computer")
    print("平局")
else:
    print(f"玩家出拳是player")
    print(f"电脑出拳是computer")
    print("电脑获胜")

1.8.3、三目运算符

a = 1
b = 2
c = a if a>b else b
print(c)
# 条件成立执行的表达式 if 条件 else 条件不成立执行的表达式

1.9、循环

1.9.1、while

  1. 计算1-100的累加和
i = 1
sum = 0
while i <= 100:
    sum += i
    i += 1

print(sum)
  1. 计算1-100的偶数累加和

①:可以加入判断是否为偶数,对2取余

# 方法一:条件判断和对2取余数为0则累加计算
i = 1
sum = 0
while i <= 100:
    if i %2 ==0:
        sum += i
    i += 1

print(sum)
# 方法二:计数器控制增量为2
i = 0
sum = 0
while i <= 100:
    sum += i
    i += 2

print(sum)

1.9.2、break

  • 作用:终止此循环
i = 1
while i <= 5:
    if i ==4:
        print(f'吃饱了不吃了')
        break
    print(f'吃了第i个苹果')
    i +=1

1.9.3、continue

  • 作用:退出当前一次循环继而执行下一次循环代码
i = 1
while i <= 5:
    if i == 3:
        print(f'大虫子,第i个不吃了')
        # 在 continue 之前一定要修改计数器,否则会陷入死循环
        i += 1
        continue  # continue 退出此次循环,后面的代码就不会执行,i就不会+1
    print(f'吃了第i个苹果')
    i +=1

1.9.4、while 循环嵌套

  1. 打印星号(正方形)

分析:一行输出5个星号,重复打印5行

"""
1.打印一个星星*
2.一行5个  循环 --- 打印一个星星的代码 ,不换行
3.打印5行  循环--一行五个的代码
"""
j = 0
while j < 5:
    # 一行星星开始
    i = 0
    while i< 5:
        print("*" , end=" ")
        i += 1
    #一行星星结束:换行显示下一行
    #这里借助空的print,利用print默认结束符换行
    print()
    j += 1
  1. 打印星号(三角形)

分析:一行输出星星的个数和行数是相等的,每行:重复打印行号数字个星号,将打印行星号的命令重复执行5次实现打印5行

以上是关于Python核心编程总结(一基础概念与语法)的主要内容,如果未能解决你的问题,请参考以下文章

Python编程基础20:实例成员与类成员

掌握Python语法篇:核心编程能力基础第一阶段

java基础学习总结

并发编程之线程共享和协作

干货分享!python基础语法你了解吗?

Python核心编程总结(五多任务编程之进程与线程)