课后练习链接
登录 - HydroOJ
https://hydro.ac/d/datawhale_p2s/user/33011
笔记内容来源于Datawhale《聪明办法学Python 2nd Edition》课程,链接如下
总结
注释
- 单行注释,使用
#
开头 - 多行注释,使用
'''
或"""
包裹起来
注释的作用是提高代码可读性(对其他看代码的人也是对自己)
单行
print("Datawhale") # for the learner,和学习者一起成长
# output 输出, print 打印
多行(单引号(‘)与双引号(“)在Python中没有太大区别)
print("人生苦短,我用 Python")
'''
Python is powerful... and fast;
plays well with others;
runs everywhere;
is friendly & easy to learn;
is Open.
'''
输出
- print本质上是函数,输出的过程就是调用函数显示的过程(默认输出后换行)
# f(x) print -> f; (x) -> ("Datawhale"); x -> "Datawhale" 字符串 String
print("Datawhale") # for the learner,和学习者一起成长
- 控制结尾的参数是
end
print("Data")
print("whale")
Data
whale
print("Data", end="*")
print("whale")
Data*whale
print("",end="")相比print("")默认结尾不执行任何操作包括换行
- 控制分隔的参数是
sep
print("Data","whale") # f(x, y)
Data whale
print("Data", "whale", sep="*")
Data*whale
输出多个内容默认以空格分隔,不管有无sep
- 可以做用加和乘(没有减和除)快捷调整输出
print("p2s"*2,"data"*3, sep="/"*4)
p2sp2sdatadatadata
print("Data"+"whale"+"P2S")
DatawhaleP2S
- f-string,Python方便输出的新功能
x = 1
y = 2
print(f"一个简单的数学问题:\"{x} + {y} = ?\",答案是 {x+y}!") # f-strings
一个简单的数学问题:"1 + 2 = ?",答案是 3!
- 一次性输出多行
print("""
Python is powerful... and fast;
plays well with others;
runs everywhere;
is friendly & easy to learn;
is Open.
""")
使用单引号或双引号
错误
- 语法错误 Syntax Errors,不符合语法规范,代码根本没有开始运行
- “运行时”错误 Runtime Errors,代码在运行过程中出错,也就是常说的“崩溃”(Crash)
- 逻辑错误 Logical Errors,代码能够运行,且运行过程中没有出错,但是不是想要的结果
输入
-
input()
可以接收 Console 的输入,并以字符串的形式返回
name = input("输入你的名字:")
print("あなたの名前は", name, "です")
- 因为输出结果是字符串,所以在进行数值运算时要转换
1.x = input("输入一个数字")
x = int(x) # 类型转换 float(x)
2.x = int(input("输入一个数字:")) # f(g(x))
print(x, "的一半等于", x/2) # 对味啦
- 多个输入值的情况可以在结尾加上
split()
,默认分隔参数是空格,可以更改,如:split(",")
a, b = input().split("*")
print(f"a = {a}, b = {b}")
库
Python 中有许多强大的工具箱,我们把它们叫做**“库”(Library)**
库需要使用 import
来导入,并且使用 xx.yy
的方式来调用
以 Python 内置数学库 math
为例:
import math # 使用库前要先导入!
print(math.factorial(20000))
# Euler 常数 提取数学中常用常数
print(math.e)
# gcd 最大公约数
math.gcd(12, 36)
补充
0.1+0.2≠0.3?? 无可避免的浮点误差_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV1xq4y1D7Ep/?vd_source=28262b8bc5e1676eae7a8a3130653b22
拓展
这是一个老练的做法,我通过搜索知道literal_eval()模块被用于检测输入值的数据类型并在检测到错误时及时停止代码,提高安全性。
附上链接:
import ast
a, b = ast.literal_eval(input())