Python基础学习记录 速成一遍过 上手简单

Python 基础

概述

跟着文档来走,你将会学快速学会python基础,可以说是速成
本文中你将学到、输入输出、变量、整型、浮点型、字符串、列表、元组、字典、集合、函数、class

环境与运行

环境安装

Pycharm及python安装
python环境下载https://www.python.org/downloads/
这种教程很多不过多说明,可以参考这位博主的https://blog.csdn.net/qq_29883591/article/details/52664478

运行

Pycharm里运行:点击代码右键,出现菜单 找到 Run 点击即可,或者 快捷键输入 ctrl+shift+F10
命令模式下运行:文集目录下输入命令,如下

python demo01.py

基础知识与输入输出

创建文件demo01.py


# 控制台输出 Hello Python
print("Hello Python")

# 定义一个整型变量
num = 10
print(num)  # 输出 10

# 定义一个浮点型变量
fl = 6.66
print(fl)         # 输出 6.66
print(type(fl))   # 输出 <class 'float'>


# 定义一个字符串
my_str = "这是一个字符串"
print(my_str)  # 输出 这是一个字符串

# type() 作用:查看数据类型
print(type(num))  # 输出类型 <class 'int'>
print(type(my_str))  # 输出类型 <class 'str'>

# 计算两个数的和
x = 1
y = x + 2
print(y)  # 输出 3
print(10 - 5)  # 做减法运算输出 5
print(10 / 5)  # 做除法运算输出 2.0
print(10.5 / 5)  # 输出 2.1
print(10.5 % 5)  # 取余 输出 0.5
print(10 * 5)  # 乘法运算输出 50

# bool值 为真True 假False
bool1 = True
bool2 = False
print(bool1)
print(bool2)
print(type(bool1))  # 输出类型  <class 'bool'>

# 输入
str_list = input("请输入,输入完成后请回车:")
print("你输入了", str_list)  # 输出了你输入的内容

条件判断、循环语句

条件语句:
if
if…else
if…elif…else

创建文件demo02.py


# ## 这里需要注意一下 ":" 这个冒号,可以理解成其它语言的大括号 { } 包裹着代码块

# 判断性别  if...else
# gender = 1
gender = 0
if gender == 1:
    print("男的")
else:
    print("女的")
    
# 判断两个数的大小  if...elif...else
a = 15
b = 15
if a > b:
    print("a > b")
elif a < b:
    print("a < b")
    print('同个区域下缩进一定要相同')
else:
    print("相等")

print("手动分割线-------------------下面是循环练习")

创建文件demo03.py


for i in range(5):
    print(i, end='\t')  # 使用了制表符,i 后面这一块内容你可以不加

print('\n..............')

string = "abcd"
for i in string:
    print(i, end='\t')

print('\n..............')

arr = ['aa', 'bb', 'cc', 'bb']
for i in range(len(arr)):
    print(i, arr[i], end='\t')

print('\n......while循环........')
count = 0
while count < 3:
    count += 1  # 相当于 count = count + 1
    print("当前执行次数", count)

输出结果:

0	1	2	3	4	
..............
a	b	c	d	
..............
0 aa	1 bb	2 cc	3 bb	
......while循环........
当前执行次数 1
当前执行次数 2
当前执行次数 3

数据类型(字符串、列表、元组、字典、集合)

字符串

创建文件demo04.py

# 字符串

word = '字符串'
sentence = "这是一个句子"
paragraph = """
    这是一个段落
    可以多行
"""

print(word)
print(sentence)
print(paragraph)
# 转义 需要 完整显示 don't
my_str = 'I don\'t know'
print(my_str)

# 字符串处理

str = '客官来了!'
print(str+"点个赞再走!")  # 字符串连接
print(str[0:3])    # 下标0开始,下标3结束 。 可以用理解成数学上区间表示 [0, 3)

print(r"hello\n Word!")  # 在字符串前面加r,表示显示原始字符串,不转义

运行结果:

字符串
这是一个句子

    这是一个段落
    可以多行

I don't know
客官来了!点个赞再走!
客官来
hello\n Word!

列表

创建文件demo05.py

# 列表
# nameList = []   # 定义一个空列表
nameList = ['张三', '李四', '王五']

# testList = [1, '字符串']  # 列表中可以混合类型

print(nameList[0])  # 通过下标访问
# print(testList[1])

# 遍历列表
for i in nameList:
    print(i)   # 打印的是列表每一项

# 增 append(后面加入) insert(插入) extend(扩展)
print("增加前名单数据", nameList)
nameList.append('佬六')  # 在末尾追加一个元素
print("增加后名单数据", nameList)

a = [1, 2]
b = [3, 4]
a.append(b)   # 把 b 当作一个元素加入到 a
print("追加 a.append(b) ==>", a)      # a 的结果 [1, 2, [3, 4]]

a.insert(1, 3)   # 插入 把 3 插入下标为1的位置
print("插入 a.insert(1, 3)", a)         # a 的结果 [1, 3, 2, [3, 4]]

c = [5, 6]
d = [7, 8]
c.extend(d)   # 把 c 中的每个元素加入到 b
print("扩展 c.extend", c)      # c 的结果 [5, 6, 7, 8]


# 删
del_arr = ['零', '一', '二', '三']
print(del_arr)
del del_arr[1]   # 指定位置删除一个
print(del_arr)
del_arr.pop()   # 删除末尾元素
print(del_arr)
del_arr.remove('零')
print(del_arr)

# 改
del_arr[0] = '零零'   # 修改指定下标的元素
print(del_arr)

# 查 [in, not in]
nameList = ['张三', '李四', '王五']
if '张三' in nameList:
    print("找到张三")
    
# 查找并返回下标 结果 1 , 可以指定范围  .index(内容, 0, 2)
print(nameList.index('李四'))

#  nameList.count(内容)   出现几次
#  nameList.reverse()   反转
sort_list = [1, 2, 3, 4, 5]
#  c.sort()   排序 升序
sort_list.sort(reverse=True)   # 排序   降序
print(sort_list)

# 定义多维列表(数组)
arr = [['一', ['一.一']], ['二'], []]
print(arr[0])

运行结果:

张三
张三
李四
王五
增加前名单数据 ['张三', '李四', '王五']
增加后名单数据 ['张三', '李四', '王五', '佬六']
追加 a.append(b) ==> [1, 2, [3, 4]]
插入 a.insert(1, 3) [1, 3, 2, [3, 4]]
扩展 c.extend [5, 6, 7, 8]
['零', '一', '二', '三']
['零', '二', '三']
['零', '二']
['二']
['零零']
找到张三
1
[5, 4, 3, 2, 1]
['一', ['一.一']]

元组

创建文件demo06.py

# 定义元组
my_tuple = ('一', 2, [3], 4.1)

tuple1 = (100)  # 这个不是元组
print(type(tuple1))  # <class 'int'>
tuple2 = (100,)   # 只有一个元素后面必须带逗号
print(type(tuple2))  # <class 'tuple'>
print(my_tuple)     # 输出 ('一', 2, [3], 4.1)

# 通过下标访问
print(my_tuple[2][0])  # 输出  3
print(my_tuple[0:2])   # 输出  ('一', 2)

运行结果:

<class 'int'>
<class 'tuple'>
('一', 2, [3], 4.1)
3
('一', 2)

字典

创建文件demo07.py

# 定义字典
dic = {'a': '值1', 'b': '值2', 'c': '值3'}
print(dic)

# 通过key读取某一个
print(dic['a'])  # 输出  值1

# 通过get方法读取某一个值
print(dic.get('b'))  # 输出  值2

# 当读取一个不存在的值时,默认返回Node
print(dic.get('str'))  # 输出  None
print(dic.get('str', '不存在给个值'))  # 输出  不存在给个值

dic2 = dic
print(dic2)

# 复制字典
dic2 = dic.copy()
print(dic2)

# 获取所有键的列表
print(dic.keys())    # 输出  dict_keys(['a', 'b', 'c'])

# 获取所有值的列表
print(dic.values())  # 输出  dict_values(['值1', '值2', '值3'])

# 获取所有键值对元组组成的列表
print(dic.items())   # 输出  dict_items([('a', '值1'), ('b', '值2'), ('c', '值3')])

# 更新成员,当键不存在时相当于加入
dic.update({'d': 4})

# 删除某个成员
dic.pop('b')
print(dic)     # 输出  {'a': '值1', 'c': '值3', 'd': 4}

# 遍历
for key in dic:
    print(dic[key])

运行结果:

{'a': '值1', 'b': '值2', 'c': '值3'}
值1
值2
None
不存在给个值
{'a': '值1', 'b': '值2', 'c': '值3'}
{'a': '值1', 'b': '值2', 'c': '值3'}
dict_keys(['a', 'b', 'c'])
dict_values(['值1', '值2', '值3'])
dict_items([('a', '值1'), ('b', '值2'), ('c', '值3')])
{'a': '值1', 'c': '值3', 'd': 4}
值1
值3
4

集合

创建文件demo08.py

# 定义一个集合
set1 = {1, 2, 3, 4, 5}
# 或者使用set函数
setList = [6, 7, 8, 9, 9, 9]
set2 = set(setList)  # 或 set2 = set([])
set2.add(10)  # 添加新元素
# 去掉了重复内容,而且无序
print(set2)   # 输出  {6, 7, 8, 9, 10}
set3 = frozenset(setList)  # 固定集合
# set3.add(10)  # 报错,固定集合不能添加元素,会影响程序,可以采用错误处理解决报错带来的影响
# 错误处理
try:
    set3.add(10)  # 报错  AttributeError: 'frozenset' object has no attribute 'add'
except Exception as err:
    print(err)
    
print('程序正常运行')

运行结果:

{6, 7, 8, 9, 10}
'frozenset' object has no attribute 'add'
程序正常运行

函数

# def 来定义一个函数
def printFun():
    print("调用了函数")
    
# 调用函数
printFun()

# 定义一个无返回值函数
def voidFun(data):
    # data 表示 形参 用于接收 实参 传过来的数据
    # 需要传参 的就要写 形参
    print('hello', data)
    
# 调用函数 并且传实参 'python'
voidFun('python')

# 定义一个有返回值函数
def sumFun(x, y):
    s = x + y
    # 格式化输出 , %d ->(表示整数),%f ->(表示浮点数), %s ->(表示字符串)
    print("%d + %d = %d" % (x, y, s))
    return s

# 调用函数后把返回值赋值给 val
val = sumFun(60, 6)
print("返回值", val)

# 不定长参数
def moreFun(*params):
    print(params)  # 输出  ({'值1', 'a'}, [2], 3)
    for p in params:
        print(p)


moreFun({'a', "值1"}, [2], 3)

# 空函数
def empty():
    pass

# 调用函数
empty()

# 匿名函数
result = lambda x, y: x - y

print(result(100, 50))  # 输出  50

运行结果:

调用了函数
hello python
60 + 6 = 66
返回值 66
({'a', '值1'}, [2], 3)
{'a', '值1'}
[2]
3
50

文件读和写

open(file, mode=‘r’, encoding=“utf-8”) 打开文件
file: 要打开的文件,可以是绝对路径或相对路径
mode: 用于指定打开文件模式,默认值 r 表示文本读
encoding 文本模式下指定文件的字符编码
mode:
‘r’ 文本读取(默认)
‘w’ 文本写入,覆盖原有内容(慎用),文件不存在则创建
‘a’ 文本写,如果文件存在则在末尾追加,不存在则创建

# 打开文件
writeFile = open('./a.text', mode='w', encoding='utf-8')
# 写操作,写入文件内容
writeFile.write("写入文本")
# 手动关闭文件
writeFile.close()

# 打开文件
readFile = open('./a.text', mode='r', encoding='utf-8')
# 读操作,读取文件内容
content = readFile.read()
print(content)
# 手动关闭文件
readFile.close()

# 打开文件
adddFile = open('./a.text', mode='a', encoding='utf-8')
# 写操作,追加内容
adddFile.write("原有文本后面追加内容")   # 可以手动点击 a.text 文件查看是否追加内容了
# 手动关闭文件
adddFile.close()

面向对象

面向对象三大特性
封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式,提高复用性和安全性。
继承:一个类继承一个基类便可拥有基类的属性和方法,可提高代码的复用性。
多态:父类定义的引用变量可以指向子类的实例对象,提高了程序的拓展性。

# 定义一个类
class Zoon:
    color = '黑色'

    # 类有一个名为 __init__() 的特殊方法(构造方法),该方法在类实例化时会自动调用
    # self代表类的实例,无论构造方法还是其他方法都需要将 self 作为第一个参数
    def __init__(self, name):
        self.name = name
    # 自定义方法(函数)
    def weightFun(self, weight):
        print("昵称:" + self.name + ";重量", weight, "kg")

print("使用类里面的属性==>", Zoon.color)

# 创建对象
cat = Zoon('猫')
# 访问猫的属性
print('cat.color==>', cat.color)
# 调用方法
cat.weightFun(20)


# 继承
class Dog(Zoon):
    # 私有属性写法
    __category = '中华田园犬'
    # 私有方法
    def __run(self):
        print("外部调用不了私有方法,通过内部nameFun方法来调用")
    def nameFun(self):
        self.__run()

hotDog = Dog('热狗')
# 调用继承的方法
hotDog.weightFun(30)

# hotDog.__run() # 调用私有方法 报错
hotDog.nameFun()

运行结果:

使用类里面的属性==> 黑色
cat.color==> 黑色
昵称:猫;重量 20 kg
昵称:热狗;重量 30 kg
外部调用不了私有方法,通过内部nameFun方法来调用

最后想要继续深入学习python需要不断找文档和阅读文档、以及练习这是最重要的, 忌只看不练,是学不会的,多动手敲敲

更多参考:菜鸟教程 https://www.runoob.com/python3/python3-tutorial.html
本文本仅供学习交流

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值