您的位置:首页 > 健康 > 美食 > 潍坊网站制作网络科技_西地那非片的功效与作用_网站设计制作哪家好_深圳优化公司义高粱seo

潍坊网站制作网络科技_西地那非片的功效与作用_网站设计制作哪家好_深圳优化公司义高粱seo

2025/3/30 22:49:48 来源:https://blog.csdn.net/2203_75882263/article/details/146454911  浏览:    关键词:潍坊网站制作网络科技_西地那非片的功效与作用_网站设计制作哪家好_深圳优化公司义高粱seo
潍坊网站制作网络科技_西地那非片的功效与作用_网站设计制作哪家好_深圳优化公司义高粱seo

Python学习笔记(2)

  • 第5节课 进制转换
    • 5.1 十进制与二进制互转
    • 5.2 十进制与八进制互转
    • 5.3 十进制与十六进制互转
    • 5.4 N进制与M进制互转
    • 5.5 进制转换内置函数
  • 第6节课 输入输出函数
    • 6.1 print()函数详解
    • 6.2 input()函数详解
    • 6.3 初识异常处理
  • 第7节课 基本运算
    • 7.1 算数运算符
    • 7.2 位运算符
    • 7.3 赋值运算符
  • 第8节课 【基础语法编程练习】
    • 程序员的自我修养
    • 练习01 摄氏温度转化为华氏温度
    • 练习02 计算圆柱体的体积
    • 练习03 对一个整数中的各位数字求和
    • 练习04 计算三角形的面积
    • 练习05 显示当前时间
    • 练习06 最小数量的硬币

第5节课 进制转换

5.1 十进制与二进制互转

(1)十进制 转 二进制

将131转二进制

131 ÷ 2 = 65 mod 1

65 ÷ 2 = 32 mod 1

32 ÷ 2 = 16 mod 0

16 ÷ 2 = 8 mod 0

8 ÷ 2 = 4 mod 0

4 ÷ 2 = 2 mod 0

2 ÷ 2 = 1 mod 0

1 ÷ 2 = 0 mod 1

二进制为 10000011

(2)二进制 转 十进制

将 10000011 转 十进制

1 × 20 + 1 × 21 + 0 × 22 + 0 × 23 + 0 × 24 + 0 × 25 + 0 × 26 + 1 × 27

1 + 2 + 128 = 131

(3)二进制特点规律

二进制十进制
00
11
102
113
1004
1015
1106
1117
10008
10102 + 8 = 10

一个二进制为 为bit 比特 表示两种数据 0 、1

8个bit 的二进制 10101101 为 1字节 byte (1b)

1kb = 1024b

1mb = 1024kb

1gb = 1024mb

1tb = 1024gb

5.2 十进制与八进制互转

(1)十进制 转 八进制

将 131 转 八进制

131 ÷ 8 = 16 mod 3

16 ÷ 8 = 2 mod 0

2 ÷ 8 = 0 mod 2

八进制为 203

(2)八进制 转 十进制

将八进制 203 转十进制

3 × 80 + 0 × 81 + 2 × 82

3 + 128 = 131

十进制 131

5.3 十进制与十六进制互转

0~9 A~F

(1)十进制 转 十六进制

444 ÷ 16 = 27 mod 12 (C)

27 ÷ 16 = 1 mod 11 (B)

1 ÷ 16 = 0 mod 1

十六进制为 1BC

(2)十六进制 转 十进制

十六进制的 1BC 转 十进制

12 × 160 + 11 × 161 + 1 × 162

12 + 176 + 256 = 444

十进制为 444

5.4 N进制与M进制互转

(1)通用思路

有一个 五进制 1024 转 七进制 以十进制为桥梁

五进制 转 十进制

4 × 50 + 2 × 51 + 0 × 52 + 1 × 53

4 + 10 + 125 = 139

十进制 转 七进制

139 ÷ 7 = 19 mod 6

19 ÷ 7 = 2 mod 5

2 ÷ 7 = 0 mod 2

七进制为 256

(2)特殊情况

如果是二进制、四进制、八进制、十六进制 之间相互转换的化

二进制 10101101 转 四进制 10-10-11-01 = 2231 反之亦然

二进制 10101101 转 八进制 010-101-101 = 255 反之亦然

二进制 10101101 转 十六进制 1010-1101 = AD 反之亦然

5.5 进制转换内置函数

(1)bin()函数

转二进制

num = 10
print(bin(num))
# 0b1010 字符串形式

(2)oct()函数

转八进制

num = 10
print(oct(num))
# 0o12 字符串形式

(3)hex()函数

转十六进制

num = 10
print(hex(num))
# 0xa 字符串形式

第6节课 输入输出函数

6.1 print()函数详解

(1)基本用法

print() 函数主要用于将数据对象打印到控制台(默认,后续也可以将数据对象打印到文件中)

函数的原型:

print(*objects, sep = " ", end = "\n", file = sys.stdout, flush = False)
  • *objects:就是要打印的数据对象,*可以存在打印多种数据对象
  • sep = " ":指的就是数据之间的分隔符,默认为空格
  • end = “\n”:指的是打印完数据之后,以那个字符串为结尾,默认为"\n" 换行
  • file = sys.stdout:输出的文件,默认为控制台,了解即可
  • flush = False : 是否强制刷新输出缓冲区,默认是 False,了解即可
print("Hello", "Python", "World", 123, 3.14)
# 输出:Hello Python World 123 3.14
print("Hello", "Python", "World", sep = "#")
# 输出:Hello#Python#World
print("Hello", "Python", "World", sep = "#", end = "妙妙屋")
print("Hello", "Python", "World", sep = "#", end = "米老鼠")
# 输出:Hello#Python#World妙妙屋Hello#Python#World米老鼠

(2)格式化输出

主要负责将变量和字符串进行拼接进行输出,同时也可以进行对齐、截取小数点等操作

旧式字符串格式化,它和C语言当中的输出很像 printf("有一个数字为:%d",num)

name = "张三"
age = 30
height = 1.8578901
print("我叫 %s,今年 %d 岁,身高 %.2f 米" % (name, age, height))

新式字符串格式化,使用 {}作为占位符,通过format()函数传入参数

name = "张三"
age = 30
height = 1.8578901
# {:.2} 存在四舍五入
# 位置参数
print("我叫 {} ,今年 {} 岁,身高 {:.2} 米".format(name, age, height))
# 关键字参数
print("我叫 {name} ,今年 {age} 岁,身高 {height:.2} 米".format(name = "李四", age = 18, height = 1.2789))
print("我叫 {name} ,今年 {age} 岁,身高 {height:.2} 米".format(name = name, age = age, height = height))
# 索引参数
print("我叫 {1} ,今年 {2} 岁, 身高 {0:.2f} 米".format(height, name, age))

f-字符串,就是在字符串之前加一个f 或 F,在 {}中直接使用变量名即可

name = "张三"
age = 30
height = 1.8578901
print(f"我叫{name},今年{age}岁,身高{height:.2f}米")# 对齐操作
fruit = "banana"
print(f"【{fruit:10}】") # 左对齐 宽度为10
print(f"【{fruit:>10}】")# 右对齐 宽度为10
print(f"【{fruit:^10}】")# 居中 宽度为10

6.2 input()函数详解

(1)基本用法

input()函数的基本功能就是暂停程序的运行,等待用户输入一行数据,然后将用户输入的内容 作为字符串返回,意味着所有的输入内容 均为 字符串!

num = input()
# input(提示信息)
num = input("请输入一个数字:")
num = int(num)
print(type(num))# 可以一句话解决
num = int(input("请输入一个数字:"))

需要注意的是,输入的是字符串,后续该得需要将字符串转为所需要的数据类型

(2)多值输入处理

多值输入的第一个解法,一个一个输入

num1 = int(input("请输入第一个数字:"))
num2 = int(input("请输入第二个数字:"))
print(num1 + num2)

多值输入都在同行,得进行分割,用的是split(分割符)函数

# "1,2,3"  => ["1" ,"2" ,"3"] => 数组
# 比较灵活 可以任意匹配分隔符
num1, num2, num3 = input("请输入三个数字:").split("#")
num1 = int(num1)
num2 = int(num2)
num3 = int(num3)
print(num1 + num2 + num3)

目前为止,每个数据都要进行转换,比较麻烦,可以使用 map()函数来进行统一的操作

num1, num2, num3 = map(int, input("请输入三个数字:").split(" "))
print(num1 + num2 + num3)
# map的含义是 把分割好的字符串们,统一进行 int 操作

(3)eval()函数(谨慎使用)

eval()函数可以将字符串作为Python表达式进行求值。结合input()函数使用,可以达到多值输入的目的。

# eval 可以将字符串转为Python代码 并执行了
num = eval("1 + 2 + 3")
print(num)
eval("print('hello world!')")# 输入的数据只能以英文的逗号 , 做分隔符
a, b, c = eval(input("请输入三个数字:"))
print(a + b + c)

为甚谨慎使用,因为它可以执行代码

# 输入 exit()
a, b, c = eval(input("请输入三个数字:"))
print(a + b + c)

6.3 初识异常处理

(1)异常概念

所谓的异常,就是在代码的编译期间和运行期间出现的一些错误,会导致程序终止运行。

异常处理的目的就是提前捕获可能出现的问题,再提供一些备选的方案,尽量让程序正常运行。

(2)try-except 语句

# 尝试 将可能出现问题的代码 写到 try语句中
try:num1 = int(input("请输入一个数字:"))num2 = int(input("请输入一个数字:"))print(num1 / num2)
# 捕获异常 可以针对不同的问题来进行不同的处理
except ValueError: print("输入数据错误")
except ZeroDivisionError:print("分母不能为0")

前期为了方便使用,可以不用捕获具体的异常错误

# 尝试 将可能出现问题的代码 写到 try语句中
try:num1 = int(input("请输入一个数字:"))num2 = int(input("请输入一个数字:"))print(num1 / num2)
# 捕获异常 可以针对不同的问题来进行不同的处理
except:print("输入数据错误")

(3)try-except-else 语句

try:num1 = int(input("请输入一个数字:"))num2 = int(input("请输入一个数字:"))print(num1 / num2)
except:print("输入数据错误")
else:print("没有发生异常,执行else的内容")

(4)try-except-finally 语句

try:num1 = int(input("请输入一个数字:"))num2 = int(input("请输入一个数字:"))print(num1 / num2)
# except 和 else 其实互斥的
except:print("输入数据错误")
else:print("没有异常,执行else")
# 绝对执行的
finally:# 一般是用于关闭资源、进程、其他占用内存的代码的print("不管有没有发生异常,都执行finally的内容")

第7节课 基本运算

7.1 算数运算符

(1)加法运算符 +

  • 如果是对两个数值类型进行加法,数学加法
  • 如果是对两个序列类型进行加法,拼接
num1 = 3
num2 = 4
print(num1 + num2)
s1 = "Hello"
s2 = "迪丽热巴"
print(s1 + s2) # 拼接
print(num1 + s2) # TypeError: unsupported operand type(s) for +: 'int' and 'str'

(2)减法运算符 -

  • 如果是对两个数值类型进行减法,数学减法
  • 如果是对两个集合进行减法,求差集
num1 = 3
num2 = 4
print(num1 - num2)
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
# 差集 set1中存在但set2中不存在的数据
print(set1 - set2)
print(set2 - set1)

(3)乘法运算符 *

  • 如果是对两个数值类型进行乘法,数学乘法
  • 如果是序列和数值类型,重复
num1 = 3
num2 = 4
print(num1 * num2)
s = "Hello"
print(s * 5)
print(s * s) # TypeError: can't multiply sequence by non-int of type 'str'

**(4)除法运算符 /// **

  • /:除法运算,结果为小数
  • //:除法运算,结果为整数,商;如果存在小数,结果为整小数
print(3 / 2)
print(4 / 2)
print(3 // 2)
print(4 // 2)
print(4.0 // 2)
print(4 // 2.0)
print(4.2 // 2.2)

(5)取余运算符 %

就是求余数

print(10 % 3)
print(9 % 3)

(6)幂运算符 **

print(2 ** 3) # 2^3
print(16 ** 0.5) # 16开平方

注意,注意,注意

Python当中 不存在 ++ –

int i = 1;

i++;

7.2 位运算符

主要用于对整数进行二进制的运算

(1)按位与运算符 &

两个整数,对二进制为进行 与 运算;全真则真,有假则假

print(13 & 6)
"""
1101
0110 &
0100 = 4
"""

(2)按位或运算符 |

两个整数,对二进制为进行 或 运算;全假则假,有真则真

print(13 | 6)
"""
1101
0110 |
1111 = 15
"""

(3)按位异或运算符 ^

两个整数,对二进制为进行 异或 运算;相同为假,不同为真

print(13 ^ 6)
"""
1101
0110 ^
1011 = 11
"""

(4)按位取反运算符 ~

将二进制1变0,0变1。在Python中,整数是有符号的,结果 -(x + 1)

num = 13
"""
01101
~
10010 -16 + 2 = -14
"""
num = 21
print(bin(21))
"""
010101
~
101010 -32 + 8 + 2 = -22
"""
print(~num) # -22

(5)左移运算符 <<

就是给二进制右边加若干个0

num = 3
"""
11
<< 3
11000
"""
print(num << 3) # num * 2 ** 3

(6)右移运算符 >>

就是给二进制右边去掉若干个bit

num = 37
print(bin(num))
"""
100101
>> 3
100
"""
print(num >> 3) # num / (2 ** 3)

位运算的的主要应用场景:

(1)乘除:以2的次幂为目标

(2)图形计算:矩阵计算

(3)Linux权限

7.3 赋值运算符

n += 1 # n++n -= 1 # n--

(1)加法赋值运算符 +=

将变量的值加上右侧表达式的值,然后将结果重新赋给该变量。

num = 10
num += 4 # num = num + 4
print(num)

(2)减法赋值运算符 -=

将变量的值减去右侧表达式的值,然后将结果重新赋给该变量。

num = 10
num -= 4
print(num)  

(3)乘法赋值运算符 *=

将变量的值乘以右侧表达式的值,然后将结果重新赋给该变量。对于字符串、列表等可迭代对象则是进行重复操作。

# 数字相乘
num = 6
num *= 2
print(num)  # 字符串重复
str1 = "abc"
str1 *= 3
print(str1)  

(4) 除法赋值运算符 /=

将变量的值除以右侧表达式的值,然后将结果(浮点数)重新赋给该变量。

num = 15
num /= 3
print(num)  

(5)整除赋值运算符 //=

将变量的值除以右侧表达式的值,取整后将结果重新赋给该变量。

num = 15
num //= 4
print(num)  

(6)取模赋值运算符 %=

将变量的值除以右侧表达式的值,取余数后将结果重新赋给该变量。

num = 15
num %= 4
print(num)  

(7)幂赋值运算符 **=

将变量的值进行右侧表达式指定次幂的运算,然后将结果重新赋给该变量。

num = 2
num **= 3
print(num)  

(8)按位与赋值运算符 &=

对变量和右侧表达式的值进行按位与运算,然后将结果重新赋给该变量。

a = 5  # 二进制: 0101
b = 3  # 二进制: 0011
a &= b
print(a)  # 二进制: 0001,十进制: 1

(9)按位或赋值运算符 |=

对变量和右侧表达式的值进行按位或运算,然后将结果重新赋给该变量。

a = 5  # 二进制: 0101
b = 3  # 二进制: 0011
a |= b
print(a)  # 二进制: 0111,十进制: 7

(10)按位异或赋值运算符 ^=

对变量和右侧表达式的值进行按位异或运算,然后将结果重新赋给该变量。

a = 5  # 二进制: 0101
b = 3  # 二进制: 0011
a ^= b
print(a)  # 二进制: 0110,十进制: 6

(11)左移赋值运算符 <<=

将变量的值向左移动右侧表达式指定的位数,然后将结果重新赋给该变量。

num = 2  # 二进制: 0010
num <<= 2
print(num)  # 二进制: 1000,十进制: 8

(12)右移赋值运算符 >>=

将变量的值向右移动右侧表达式指定的位数,然后将结果重新赋给该变量。

num = 8  # 二进制: 1000
num >>= 2
print(num)  # 二进制: 0010,十进制: 2

第8节课 【基础语法编程练习】

程序员的自我修养

(1)遇到一个编程问题,一定要仔细阅读题目,找出关键的数据和具体的操作流程

(2)一定要先分析题目的求解过程,千万不要直接上来写代码开干。

(3)必须写注释,将求解的过程以注释的形式先列出来。

Python当中有单行注释,主要以#开头,直到换行为止都为注释内容

# 这是一个注释内容
num = 3 # 定义一个变量 存储 整数 3

Python中其实没有对于多行注释的定义,但是我们可以使用三引号字符串的形式充当多行注释。

也可以看做是文档说明

"""
这是一个多行注释(文档说明 代码的说明书)
定义一个变量num存储整数3
打印这个变量
"""
num = 3
print(num)
# 提取文档注释中的内容
print(__doc__)

(4)对变量、函数、类起名时,一定要有意义,最好用英文单词、英文简写来表示,实在不行就拼音

(5)编码规范

  • 遇到运算符的时候,记得给运算符的两边加空格
  • 在序列或者多数据情况下,会用逗号,进行分割,逗号后面也加空格
  • 由于Python中不用{}表示层级,而是用缩进来表示,所以一定要注意代码的从属问题,缩进最好用tab键去写,不要用空格

练习01 摄氏温度转化为华氏温度

题目描述

输入一个摄氏温度的值,将它转变为华氏温度,并将结果输出

转换的公式为如下:
f a h r e n h e i t = ( 9 / 5 ) ∗ c e l s i u s + 32 fahrenheit=(9/5)*celsius+32 fahrenheit=(9/5)celsius+32
输入输出描述

输入一个值表示摄氏温度celsius

输出华氏温度fahrenheit ,结果保留一位小数点

示例

输入:

43

输出:

109.4

"""
数据:cel 摄氏度 fah 华氏度
操作:
1. 输入 cel
2. 根据提供的公式 计算 fah
3. 输出fah 保留一位小数点
"""
cel = float(input())
fah = (9 / 5) * cel + 32
print(f'{fah:.1f}')

练习02 计算圆柱体的体积

题目描述

输入圆柱的半径和高,并利用如下公式计算圆柱体的底面积和体积。
a r e a = r a d i u s ∗ r a d i u s ∗ π area=radius*radius*π area=radiusradiusπ

v o l u m e = a r e a ∗ l e n g t h volume=area*length volume=arealength

输入输出描述

分别输入圆柱的半径radius和高度length,两个数据之间用空格分隔

输出两行,第一行为圆柱底面积area,第二行为圆柱体积volume,结果保留两位小数点

示例

输入:

5.5 12

输出:

95.03

1140.41

import math
# 1.输入半径和高
radius, length = map(float, input().split(" "))
# 2.计算底面积
area = math.pi * radius ** 2
# 3.计算体积
volume = area * length
# 4.输出底面积和体积
print(f'{area:.2f}')
print(f'{volume:.2f}')

练习03 对一个整数中的各位数字求和

题目描述

读取一个0到1000之间的整数,并计算它各位数字之和

输入输出描述

输入一个(0,1000)之间的整数

输出该数字的各位数字之和

示例1

输入:

999

输出:

27

解释:

999各位数之和为9 + 9 + 9 = 27

示例2

输入:

12

输出:

3

"""
123 % 10 = 3
12 % 10 = 2
1 % 10 = 1
"""
try:# 1.输入一个[1,999]的数字num = int(input())
except:print("输入非法数据,必须1~999")
else:# 2.取个位数gewei = num % 10# 3.取十位数num //= 10shiwei = num % 10# 4.取百位数baiwei = num // 10# 5.相加result = gewei + shiwei + baiwei# 6.输出相加结果print(result)

练习04 计算三角形的面积

题目描述

输入三角形的三个顶点坐标,并计算其面积,计算公式如下
s = ( s i d e 1 + s i d e 2 + s i d e 3 ) / 2 a r e a = s ( s − s i d e 1 ) ( s − s i d e 2 ) ( s − s i d e 3 ) s=(side1+side2+side3)/2 \\ area = \sqrt{s(s-side1)(s-side2)(s-side3)} s=(side1+side2+side3)/2area=s(sside1)(sside2)(sside3)
输入输出描述

输入六个数据,分别表示三角形三个顶点的坐标x1、y1、x2、y2、x3和y3,数据之间用空格分隔

输出三角形的面积,结果保留一位小数

示例

输入:

1.5 -3.4 4.6 5 9.5 -3.4

输出:

33.6

# 1.输入三个点的坐标
x1, y1, x2, y2, x3, y3 = map(float, input().split(" "))# 2.计算三边
side1 = ((x1 - x2) ** 2 + (y1 - y2) ** 2) ** 0.5
side2 = ((x1 - x3) ** 2 + (y1 - y3) ** 2) ** 0.5
side3 = ((x3 - x2) ** 2 + (y3 - y2) ** 2) ** 0.5# 3.计算半周长
s = (side1 + side2 + side3) / 2# 4.计算面积
area = pow(s * (s - side1) * (s - side2) * (s - side3), 0.5) # 5.输出面积
print(f'{area:.1f}')

练习05 显示当前时间

题目描述

输入你所在的时区,并输出当前的时间

输入输出描述

输入时区,如东八区为8,西五区为-5

输出二十四小时制的时间,格式为 时:分:秒

示例

输入:

8

输出:

21:43:12

import time
# 0.获取时区数字
zone = int(input())
# 返回的是UNIX时间点
# 从1970年1月1日 00:00:00 开始至今的秒数
# 1.获取所有的秒数
total_seconds = int(time.time())# 2.计算当前的秒数
current_seconds = total_seconds % 60# 3.计算所有的分钟数
total_minutes = total_seconds // 60# 4.计算当前的分钟数
current_minutes = total_minutes % 60# 5.计算所有的小时数
total_hours = total_minutes // 60# 6.计算当前的小时数
current_hours = total_hours % 24
current_hours = (current_hours + zone) % 24
# 7.拼接输出 hh:mm:ss
print(f'{current_hours}:{current_minutes}:{current_seconds}')

练习06 最小数量的硬币

题目描述

假设硬币种类分为:一元硬币、两角五分硬币、一角硬币、五分硬币、一分硬币

输入总金额,并将总金额兑换成若干个硬币,并保证所兑换的硬币个数最少

输入输出描述

输入总金额

输出每种硬币的个数

示例

输入:

11.56

输出:

11个一元硬币

2个两角五分硬币

0个一角硬币

1个五分硬币

1个一分硬币

# 1.输入总金额
money = float(input())# 2.换算成分
total_fen = int(money * 100)# 3.计算一元硬币个数 100分
yiyuan = total_fen // 100# 4.计算两角五分个数 25分
total_fen = total_fen % 100
liangjiaowufen = total_fen // 25# 5.计算一角个数 10分
total_fen = total_fen % 25
yijiao = total_fen // 10# 6.计算五分个数 5分
total_fen = total_fen % 10
wufen = total_fen // 5# 7.计算1分个数 1分
total_fen = total_fen % 5
yifen = total_fen# 8.输出
print(yiyuan)
print(liangjiaowufen)
print(yijiao)
print(wufen)
print(yifen)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com