Python-基础篇
·
Python-基础篇
打印
-
字符串连接
print("Hello" + " World" + "!") -
单双引号转义
print("Hello 'World' !") print('Hello "World" !') print("Hello \"'World' !\"") -
换行
print("Hello \nWorld!") -
三引号跨行字符串
print("""第一行 第二行 第三行""") -
字符串和数字一起打印
# 方法一 name = "小明" age = 18 print("姓名:" + name + ",年龄:" + str(age)) # 输出:姓名:小明,年龄:18 # 方法二 score = 95 print("分数是", score, "分") # 输出:分数是 95 分 # 方法三 num = 100 print(f"这是数字:{num}") # 输出:这是数字:100 # 还能直接在 {} 里做计算 print(f"10 + 20 = {10 + 20}") # 输出:10 + 20 = 30 # 方法四 price = 99.9 print("价格:{}元".format(price)) # 输出:价格:99.9元 # 多个占位符时按顺序传入 a, b = 3, 4 print("{} + {} = {}".format(a, b, a + b)) # 输出:3 + 4 = 7 -
其他
print("喵" * 3) # 喵喵喵
变量
hello = "Hello"
name = "王五"
print(hello + "张三")
print(hello + name)
name = "李四"
print(hello + name)
对于变量的命名:python采用下划线命名法,java用驼峰命名
运算
优先级:
- 括号()
- 乘方**
- 乘除*/
- 加减±
result = 3 ** 2
print(result) # 9
引入math函数库则有更多计算方式
import math
result = math.sqrt(4) # 也可写为 4 ** (1/2)
print(result) # 2.0
注释
# 单行注释
"""
多行注释可用三引号
"""
数据类型
# 获取数据类型
result = "slc666"
print(type(result))
# 结果:<class 'str'>
-
字符串
result = "slc666" result3 = "slc666"[2] # c result3 = result[2] # c length = len(result) # 6 # 其他类型转字符串 num = 666 print(type(num)) # <class 'int'> num = str(num) print(type(num)) # <class 'str'> -
整数
# 字符串转int(例如用户输入年龄,默认为字符串,我们就要转成int) x = input("请输入:") # 输入123 print(type(x)) # <class 'str'> x = int(x) print(type(x)) # <class 'int'> -
浮点数
print(float(x)) # 123.0(其他类型转浮点数) -
布尔
result = True # 大写 result = False -
空值
res = None print(res) # None print(type(res)) # <class 'NoneType'> -
列表
# 可理解为可变动态数组 x = [] print(x) # [] x = [1,2,3] print(x) # [1, 2, 3] x.append(4) print(x) # [1, 2, 3, 4]还有很多方法及函数
- len(x)
- x.remove()
- max(x)
- min(x)
- sorted(x)
-
元组
# 可理解为不可变数组 x = (slc,1)数组不可在字典中作为key,而元组可以
因为key要求是不可变的
-
字典
# 可理解为map x = { "slc": 666, "name": "hello", "age": 18, } print(x) # {'slc': 666, 'name': 'hello', 'age': 18}x = { # 元组作为key ("slc",1): "123", ("slc",2): "456", ("slc",3): "789" } print(x) x[("slc",4)] = "abc" # 添加/修改键值对 print(x) result = ("slc",1) in x # 判断key是否存在,存在即修改,不在则添 print(result) # True del x[("slc",1)] # 删除键值对 result = ("slc",1) in x print(result) # False x.keys() # 所有键 x.values() # 所有值 x.items() # 所有键值对
输入
x = input("请输入:")
print(x)
# 用户输入结果x默认是字符串类型
条件判断
x = int(input("请输入你的分数:"))
if x >= 60: # 冒号
print("通过") # 缩进
elif x >= 20: # 甚至可以:60 > x >= 20
print("再接再厉")
else:
print("回家吧孩子")
与或非:
- and
- or
- not
循环
- for循环
x = {
("slc",1): "123",
("slc",2): "456",
("slc",3): "789"
}
for k, v in x.items(): # key给k,value给v
print(k, v)
for y in x.items(): # y是元组,key和value作为里面的元素
print(y)
for i in range(5): # 相当于循环5次(rang(0,5))
print("hello")
x = 0
for i in range(1,101): # 赋值i从1到100
x = x + i
print(x) # 5050
# range(1,10,2) :1,3,5,7,9
#对应 起始、结束、步长
- while循环
x = 0
for i in range(1,101):
x += i
print(x) # 5050
x = 0
i = 0
while i < 101:
x = x + i
i = i + 1
print(x) # 5050
函数
def ca (x,y):
print(x+y)
return "good!"
num1 = 123
num2 = 456
ca(num1,num2) # 579
print(ca(num1,num2)) # good!
模块
首先要明确模块分为:
-
官方库
直接导入使用
-
第三方库
- 先下载(pip)
- 再导入(import)
##面向对象
class Cat:
def __init__(self, name, age):
self.name = name
self.age = age
def speak(self):
print('喵' * self.age)
cat1 = Cat('wl',3)
print(cat1.name) # wl
print(cat1.age) # 3
cat1.speak() # 喵喵喵
继承
# 定义父类
class Mammal:
def __init__(self, name, sex):
self.name = name
self.sex = sex
def breath(self):
print(self.name + "在呼吸")
def eat(self):
print(self.name + "在吃东西")
# 定义子类
class Dog(Mammal): # Dog类继承Mammal类
def __init__(self, name, sex):
super().__init__(name, sex)
self.type = "Dog"
def bark(self):
print(self.name + "在叫")
dog = Dog("旺财", "公")
dog.breath() # 即使子类Dog中没有breath方法,但因为继承,依旧可调用
dog.bark()
文件操作
- 读操作
# 相对路径
f = open("test.txt", "r", encoding="utf-8")
# 绝对路径
f1 = open("D:\\Program Files\\python\\PythonProject\\python-demo\\test.txt", "r", encoding="utf-8")
# print(f.read()) # 一次全读
# print(f.read(10)) # 调用10个字节的文件内容
# print(f.readline()) # 读一行
lines = f.readlines() # 一次全读,每行作为一个元素存入列表
for line in lines:
print(line.strip())
f.close() # 记得关闭资源
# 缩进表示文件对象f的作用域
# 结束后自动关闭资源
with open("test.txt", "r", encoding="utf-8") ad f:
print(f.read())
- 写操作
# 覆盖
with open('hello.txt', 'w', encoding='utf-8') as f:
f.write('Hello World')
# 追加
with open('hello.txt', 'a', encoding='utf-8') as f:
f.write('\nHello World!')
# Hello World
# Hello World!
或者直接在读文件时也写文件
传递参数就不传递“r”,而传递“r+”
就即可调用read,又可调用write(且写操作默认为追加)
异常处理
try:
x = int(input("请输入你的年龄:"))
except ValueError:
print("请输入数字")
except:
print("未知错误,请重试")
else: # 未异常
print("你的年龄是:", x)
finally: # 不管是否异常,都执行
print("程序结束")
测试
首先需要知道assert
assert False # assert后面的语句如果是False,则抛出AssertionError
通过这个异常,我们可以编写测试用例
# 新开一个python文件并导入测试需要的库unittest
import unittest
from demo import one
class TestOne(unittest.TestCase):
def test_one(self): # 必须以test_开头
# assert one.add_demo(1, 2) == 3
self.assertEqual(one.add_demo(1, 2), 3)
if __name__ == '__main__':
unittest.main() # 执行测试
最后直接运行这个测试的py文件即可
程序会自动搜寻所有的测试用例并执行
更多推荐



所有评论(0)