【Python】Python基础与进阶

本文详细介绍了Python的基本语法,包括注释、变量、数据类型、输入输出、算术运算符、逻辑运算符、控制结构如if语句,以及函数和模块的使用。此外,还讲解了print的增强功能和随机数的生成。通过实例演示了如何进行变量的格式化输出及使用关键字和循环结构。
摘要由CSDN通过智能技术生成

Python

基础

基本语法

① 注释:# 或者 三个单引号或三个双引号(多行注释)

② 语句最后不用分号(😉

③ 使用变量不用定义类型,直接a=0

④ 单引号(‘’)等同于双引号(“”)

⑤ 输出:print

转义字符

  • 换行 \n

  • 水平制表符 \t

  • image-20220502184803221
    • 输出文本时垂直方向对齐

      • print("1\t2\t3\t")
        print("10\t20\t30\t")
        # 输出
        # 1  2  3
        # 10 20 30
        
  • 回车 \r

  • 退格 \b

  • 取消转义 r®

image-20230112003317119

数据类型

  • 整型 int
  • 浮点型 float
  • 字符型 str(字符串)
  • 布尔型 True,False

强制类型转换

  • int()

  • float()

    • image-20220503111009311
  • str()

    • print('我叫‘+name+’,今年‘+str(age)+‘岁’)

    注:小数不能转成int,error

输入 input()

  1. input一般和赋值语句连用

  2. 接收的是str类型,如有需要须进行类型转换

    name = input('你叫啥')
    print(name)
    
    age1=input('年龄1')
    age2=input('年龄2')
    print('总年龄为',age1+age2)
    

算术运算符

  • 整除 //

    • 一正一负向下取整,e.g 9//-4 → -3
  • 幂运算 **

  • 取余 %

    • 一正一负按公式,余数=被除数-除数×商(整数商)

      ​ e.g 9%-4 → 9-(-4)×(-3)=-3

字符串的拼接

  • image-20220503111141081

  • image-20220503111210798

变量的格式化输出

  • image-20220503111250209
  • # 定义字符串变量 name,输出 我的名字叫 小明,请多多关照!
    name = "小明"
    print("我的名字叫 %s,请多多关照!" % name)
    
    # 定义整数变量 student_no,输出 我的学号是 100
    student_no = 100
    print("我的学号是 %06d" % student_no)
    
    # 多个变量的输出
    name = "小明"
    age = 18
    print("我叫%s,我今年%d岁了" % (name,age))
    
    # 定义一个小数 scale,输出 数据比利时 80.00%
    scale = 0.8
    print("数据比利时%.2f%%" % (scale*100))  # 注意括号,不然就变成字符串的拼接
    

关键字

可以通过以下命令查看python中的关键字

import keyword
print(keyword.kwlist)

if语句

if 条件:
	条件满足要执行的事情
elif 条件:
    条件满足要执行的事情
else:
    条件满足要执行的事情
    
# if (() 
# 		or () 
# 		or ()):

逻辑运算符

  • 与 and
  • 或 or
  • 非 not
    • 可以和 if 连用 if not

区分C中的 &&,||

随机数

import random  # 导入随机数工具包

random.randint(1, 10)  # 生成1到10的随机数

while循环

i = 0  

while i <= 4:
	print("Hello Python!")
	i += 1

# 效果就是c中的for循环

break和continue

  • break 某一条件满足时退出当前循环

  • continue 某一条件满足时,不执行剩下语句

    • i = 0
      
      while i <= 10if(i == 3)
          	i += 1  # 用continue注意修改条件值
              continue  
      	print(i)
      	
      	i+=1
      

print的增强

  • 在默认情况下,print输出内容后会在内容末尾增加换行

  • 如果不想换行,可以在print输出内容的后面增加,end=“”

  • 其中""中间可以指定print输出内容之后继续希望显示的内容

  • # 输出内容后不会换行
    print("*", end="")
    print("*")  # 输出 **
    
    # 单纯换行
    print("")  # 相当于c中的printf("\n")
    

函数

# 定义
def 函数名():
	函数封装的代码

# 调用
函数名()

# 注释


def 函数名():  # 函数定义的上方要空两行
    '''注释内容'''
# Ctrl+Q 可以查看函数的注释内容(光标要在函数名位置)
  • 与c一样,函数也可以进行参数的传递返回值

    • def sum_2_num(num1 , num2):
      	return num1 + num2
      
      result = sum_2_num(1,2)
      print(result)
      
  • 将光标指向函数名在小灯泡处可以选择插入形参注释,注释完按 Ctrl+Q 可以查看注释

模块

  • 可以 在一个python文件 中定义 变量或者函数
  • 然后在 另外一个文件 中使用 **import **导入这个模块
  • 导入后可以使用 模块名.变量 / 模块名.函数 的方式调用这个模块中的资源

进阶

高级变量

列表(数组 list )
  • 用 [ ] 定义

  • 在 ipython 中定义一个列表,然后输 列表名. +Tab 会提示列表能够使用的方法

    • 序号分类关键字 / 函数 / 方法说明
      1增加列表.append(数据)末尾追加
      列表.insert(索引,数据)插入
      列表.extend(列表2)列表拼接
      2删除列表.remove(数据)删除数据
      列表.pop(索引)删除指定位置数据
      列表.clear()删除全部
      del 列表[索引]从内存删除
      3统计len()查看列表长度
      列表.count(数据)数据出现次数
      4排序列表.sort()升序
      列表.sort(reserve=True)降序
  • name_list = ["zhangsan", "lisi""wangwu"]
    
    # 1.取值取索引
    # list index out of range  列表索引超出范围
    print(name_list[2])
    
    # 知道数据的内容,想确定数据在列表中的位置
    print(name_list.index("wangwu"))
    
    # 2.增加
    # append 方法可以向列表的末尾追加数据
    name_list.append("zhaoliu")
    # insert 方法可以在列表的指定位置插入
    name_list.insert(1, "xiaoming")
    # extend 方法可以追加一个列表
    temp_list = ["gaoshu", "xiandai", "dianfen"]
    name_list.extend(temp_list)
    
    # 3.删除
    # remove 方法可以从列表中删除指定的数据
    name_list.remove("wangwu")
    # pop 方法默认删除最后一个数据
    name_list.pop()
    # pop 方法也可以删除指定位置数据
    name_list.pop(1)
    # clear 方法可以清空列表
    name_list.clear()
    # del 命令(delete) 删除指定位置数据
    del name_list[1]
    # del 本质上是把变量从内存中删除
    
    # 4.len() 函数查看列表长度
    # 5.count 方法统计列表中一个数据出现次数
    count = name_list.count("zhangsan")
    
    # 6.排序
    # 升序
    name_list.sort()
    num_list.sort()
    # 降序
    name_list.sort(reverse=True)
    num_list.sort(reverse=True)
    # 逆序
    name_list.reverse()
    
  • 迭代遍历

    • name_list = ["gaoshu", "xiandai"]
      
      for name in name_list:
          print("我的名字是 %s" % name)
      
元组 (tuple)
  • 与列表的区别是:元组定义了之后不能修改,类似c中的结构体
# 1.定义
info_tuple = ("zhangsan", 18, 175)
# 2.取值
info_tuple[1]
# 3.定义只包含一个元素的元组
single_tuple = (5,) # 如果不加逗号,则 type(single_tuple) 为 int

# 两个方法

# 1.取索引
info_tuple.index("zhangsan")
# 2.统计
info_tuple.count("zhangsan")
  • 应用场景

    • 函数返回值,可以返回多个值

    • 格式化字符串以及字符串拼接

      • info_tuple = ("小明", 18, 1.75)
        print("%s今年 %d岁,身高 %.2f" % info_tuple)
        
        info_str = "%s今年 %d岁,身高 %.2f" % info_tuple
        print(info_str)
        
    • 把列表转化成元素,保护数据

      • # 元组与列表的相互转化
        tuple(列表)
        list(元组)
        
字典 (dictionary)
  • 无序对象的集合 (列表是有序)
  • 使用 键值对 存储数据
    • key 是索引,必须是唯一的,只能使用 字符串、数字或元组
    • value 是数据,可以是任何数据类型
# 1.定义
xiaoming = {"name": "小明",
            "age": 18,
            "height": 1.75}

# 2.取值
print(xiaoming["name"])

# 3.增加/修改
xiaoming["gender"] = True  # key不存在,增加
xiaoming["name"] = "xiaogang"  # key存在,修改

# 4.删除
xiaoming.pop("name")  # 使用pop方法

# 5.统计键值对数量
print(len(xiaoming_dict))

# 6.合并字典
temp_dic = ("height":1.75,
            "age":20)
# 7.注,如果被合并的字典中包含也已经存在的键值对,会覆盖原有的键值对
xiaoming_dict.update(temp_dict)

# 8.清空字典
xiaoming_dict.clear

# 9.迭代遍历字典
# 变量k是每一次循环中,获取到的键值对的key
for k in xiaoming_dict: 
    print("%s - %s" % (k, xiaoming[k]))
    
# 10.字典与列表的组合
card_list = [
    {},
    {}
]

字符串

  • 双引号,单引号都可以定义
  • 看做C中的数组
str1 = "hello hello"
print(str1[0])

for c in str1:
    print(c)
    
# 1.统计字符串的长度
print(len(str1))

# 2.统计某一个小(子)字符串出现的次数
print(strl.count("llo"))

# 3.某一个子字符串出现的位置
print(str1.index("llo"))
# 注,如果使用index方法传递的子字符串不存在,程序会报错
  • 方法(可用ipython查看)

    • image-20220710102009147image-20220710102048883

    • image-20220710102131807

    • image-20220710102227974

    • 说明

      • 1.1 isspace方法还可以判断空白字符,\t\n\r

      • 1.2 isdecimal、isdigit、isnumeric都不能判断小数

      • 2.1 find方法指定的字符串不存在会返回 -1

      • 5.1 在网络中抓取的文本,可以先用strip方法去除空白字符,再用center居中文本

      • 6.1

        • # 1.拆分字符串
          poem_list = poem_str.split()
          
          # 2.合并字符串
          result = " ".join(poem_list)
          print(result)
          
  • 字符串的切片

    • str[开始位置:结束位置:步长] # 不包含结束位置的那个字符

    • num_str = "0123456789"
      
      num_str[2:6] # 截取2到5位置的字符串
      num_str[2:] # 截取2到末尾的字符串
      num_str[:] # 截取完整字符串
      num_str[0::2] # 从开始位置每隔一个取一个 Out:02468
      num_str[-1] # 倒叙 倒数第一个字符 Out:9
      num_str[-2:] # 截取字符串末尾两个字符 Out:89
      num_str[-1::-1] #逆序 -1可以省略 步长-1表示向左开始切
      

公共方法

Python的内置函数
函数描述备注
len(item)计算容器中元素的个数
del(item)删除变量del 有两种方法
max(item)返回容器中元素的最大值如果是字典,只针对 key 比较
min(item)返回容器中元素的最小值同上
cmp(item1,item2)比较两个值,-1小于/0相等/1大于Python 3 取消了 cmp函数,可以用比较运算符比较
  • 列表元组可以比较大小,字典不可以
  • 字符串 比较符合以下规则: “0” < “A” < “a”
切片
  • 字符串""、列表[]、元组() 都支持切片,字典不支持
运算符
运算符Python 表达式结果描述支持的数据类型
+[1,2] + [3,4][1,2,3,4]合并字符串、列表、元组
*[“Hi”]*4[“Hi”,“Hi”,“Hi”,“Hi”]重复同上
  • 类比方法

    • t_list = [1,2]
      
      t_list.extend([3,4])
      t_list # Out:[1,2,3,4]
      
      t_list.qppend([8,9])
      t_list # Out:[1,2,3,4,[8,9]]
      
    • 运算符 直接创建新的列表,方法 是修改原来的列表

  • 成员运算符 in 和 not in

    • 支持字符串、列表、元组、字典
    • 字典 判断的是 key
完整的 for 循环语法
for 变量 in 集合:
    
    循环体代码
else:
    没有通过 break 退出循环,循环结束后,会执行的代码
    
# 应用 
friends = [
    {"name":"宝源"},
    {"name":"冼城"},
    {"name":"志恒"}
]
find_name = "宝源"
for target in friends:
    
    print(target)
    
    if target["name"] == find_name:
        print("找到了 %s" % find_name)
        break
else:
    print("抱歉没有找到 %s" % find_name)

LINUX 上的 Shebang 符号(#!)

  • #! 这个符号叫做 Shebang 或者 Sha-bang
  • Shebang 通常在 Unix 系统脚本中的 第一行开头 使用
  • 指明 执行这个脚本文件解释程序
使用 Shebang 的步骤
    1. 使用 which 查询 python3 解释器所在路径
    which python3
    
    1. 修改运行的 主 python 文件,在第一行增加以下内容
    #! /usr/bin/python3
    
    1. 修改 主 python 文件 的文件权限,增加执行权限
    chmod +x cards_main.py
    
  • 4.在需要时执行即可

    ./cards_main.py
    

变量

  • id() 可以查看变量的地址
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值