Python学习笔记(一)

Stella981
• 阅读 798

一、变量和简单数据类型

(一)变量

  • 变量的命名和使用
    • 变量名只能包含字母、数字和下划线。不能以数字开头。
    • 变量名不能包含空格,用下划线。
    • 不要将Python关键字和函数名用作变量名。
    • 要简短、具有描述性。
    • 小写字母l和数字1,大写字母O和数字0

(二)字符串

用引号括起的。(包括单引号、双引号)

  • 使用方法修改字符串的大小

    name = 'may zheng' name.title() # 以首字母大写的方式显示每个单词(其他字母为小写) name.lower() # 改为全部小写 name.upper() # 改为全部大写

  • 合并(拼接)字符串

    拼接

    first_name = 'may' last_name = 'zheng' full_name = first_name + ' ' + last_name

    print('Hello, ' + full_name.title() + '!')

  • 使用制表符或换行符来添加空白

    • 制表符\t
    • 换行符\n
  • 删除空白

    language = ' python '

    不改变变量本身内容

    language.rstrip() # 删除末尾空白 language.lstrip() # 删除开头空白 language.strip() # 删除两端空白

(三)数字

加(+)减(-)乘(*)除(/),乘方(**)

  • 整数

  • 浮点数

  • 使用函数str()避免类型错误

    将非字符串值表示为字符串

    str(21)

(四)注释

  • 注释用井号(#)标识
  • 一般井号后空一格再标注

二、列表简介

(一)列表

  • 用方括号([])来表示列表,用逗号(,)分隔其中元素

  • 列表是有序集合

  • 访问列表元素,索引从0开始

    fruits = ['apple', 'banana', 'orange', 'watermelon']

    print(fruits[0]) # 访问列表第一个元素,输出apple print(fruits[-1]) # 访问列表最后一个元素,输出watermelon

(二)修改、添加和删除元素

  • 修改列表元素

    fruits = ['apple', 'banana', 'orange', 'watermelon']

    fruits[0] = 'pineapple' print(fruits)


# 输出
['pineapple', 'banana', 'orange', 'watermelon']
  • 在列表中添加元素

    fruits = ['apple', 'banana', 'orange', 'watermelon']

    fruits.append('pineapple') # 在列表末尾添加元素 print(fruits) fruits.insert(1, 'grape') # 在列表索引1处插入元素 print(fruits)


# 输出
['apple', 'banana', 'orange', 'watermelon', 'pineapple']
['apple', 'grape', 'banana', 'orange', 'watermelon', 'pineapple’]
  • 在列表中删除元素

    • 使用del语句

        

    del fruits[0] # 使用del语句删除列表任何位置处的元素,必须知道索引

    • 使用方法pop()删除末尾元素

    fruits.pop() # 弹出列表末尾的值

    • 弹出列表中任何位置处的元素

    fruits.pop(0) # 弹出列表索引0处的元素

PS:如果要从列表删除一个元素,且不再以任何方式使用它,就用del语句;如果要在删除元素后还能使用它,使用方法pop()。

    • 根据值删除元素

    fruits.remove('apple') # 知道要删除的元素的值,使用remove()删除列表元素时,也可接着使用它的值;且remove()只删除第一个指定的值,如果重复出现此值,可通过循环判断

(三)组织列表

调整列表内元素的排列顺序

  • 使用方法sort()对列表进行永久性排序

    fruits.sort() # 永久性地修改列表元素的排列顺序,按字母顺序排列的 fruits.sort(reverse=True) # 按与字母顺序相反的顺序排列列表元素

  • 使用函数sorted()对列表进行临时排序

    sorted(fruits) # 按字母顺序显示该列表 sorted(fruits, reverse=True) # 按与字母顺序相反的顺序显示列表

  • 倒着打印列表

    fruits.reverse() # 永久性反转列表排列顺序

  • 确定列表的长度

    len(fruits) # 使用函数len()可快速获悉列表长度

三、操作列表

(一)遍历整个列表

  • for循环

    • 注意缩进,冒号

    fruits = ['apple', 'banana', 'orange', 'watermelon']

    for fruit in fruits: # 对于临时变量,可指定任何名称(使用单复数名称很方便);打印列表中的每个元素 print(fruit)

(二)创建数值列表

  • 使用函数range()

    for value in range(1,5): print(value) # 打印数字1~4,输出不包含括号第二个值

  • 使用range()创建数字列表

    • 可使用函数list()将range()的结果直接转换为列表

    numbers = list(range(1,6)) print(numbers)


# 输出
[1, 2, 3, 4, 5]
    • 使用函数range()时,可指定步长

    numbers = list(range(2,11,2)) # 打印2~10中的偶数 print(numbers)


# 输出
[2, 4, 6, 8, 10]

squares = []
for value in range(1,11):
    squares.append(value**2)    # 将1~10的平方添加到列表中,平方数列表

print(squares)

# 输出
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
  • 对数字列表执行简单的统计计算

    digits = list(range(0,10))

    min(digits) # 找出列表最小值 max(digits) # 找出列表最大值 sum(digits) # 计算数字列表的总和

  • 列表解析

    squares = [value**2 for value in range(1,11)] # 平方数列表,注意这里的for语句末尾没有冒号

(三)使用列表的一部分

  • 切片

    fruits = ['apple', 'banana', 'orange', 'watermelon'] print(fruits[0:3]) # 打印列表索引0、1、2的元素


# 输出也为一个列表
['apple', 'banana', 'orange']

print(fruits[:3])    # 没有指定第一个元素,自动从列表开头开始
print(fruits[2:])    # 打印索引2到列表末尾的所有元素

# 使用负数索引可以输出列表末尾的任何切片
print(fruits[-3:])    # 此处打印列表末尾三个元素
  • 遍历切片

  • 复制列表

    可再创建一个包含整个列表的切片

    fruits[:] # 同时省略起始索引和终止索引

(四)元组

  • 列表适合用于存储在程序运行期间可能变化的数据集,列表是可以修改的。

  • 定义元组

    • 元组是不可变的列表,其中元素是不可修改的。
    • 使用圆括号;可以使用索引访问元组元素

    digits = (1, 2, 3, 4, 5, 6, 7, 8, 9, 0) print(digits[0])

    • 不能给元组的元素赋值
  • 遍历元组中的所有值

    digits = (1, 2, 3, 4, 5, 6, 7, 8, 9, 0) for digit in digits: print(digit) # 使用for循环

  • 修改元组变量,即重新定义一个元组赋给原来的变量

    digits = (1, 2, 3, 4, 5, 6, 7, 8, 9, 0) digits = (1, 2, 3, 4)

(五)设置代码格式

  • 格式设置指南(PEP 8)Python Enhancement Proposal 
  • 缩进,PEP 8建议每级缩进都使用四个空格(制表符可以设置为是四个空格)
  • 行长,建议每行不超过80字符;PEP 8建议注释的行长都不超过72字符。
  • 空行

四、if语句

  • 条件测试(根据条件测试的值为True或Flase来决定是否执行if语句中的代码)

    #检查是否相等(==)

    age = 22 age == 22 True #检查是否不相等(!=) age != 22 False #比较数字(<,>,>=,<=) 20 > 5 True 20 <= 5 False #检查多个条件(and,or) 20 > 5 and 20 < 6 False 20 > 5 or 20 < 6 True #检查特定值是否包含在列表中(in) numbers = [1, 2, 3] 1 in numbers True #检查特定值是否不包含在列表中(not in) 2 not in numbers False #布尔表达式,通常用于记录条件,为跟踪程序状态或条件提供高效了一种方式 game_active = True can_edit = False

  • if语句

    • 简单的if语句:一个测试和一个操作

    if conditional_test: do something

    • if-else语句:能够指定条件测试未通过时要执行的操作

    if conditional_test: do something else: do something

    • if-elif-else结构

    if conditional_test1: do something elif conditional_test2: do something else: do something

    • 使用多个elif代码块(仅适合用于只有一个条件满足的情况)
    • 省略else代码块
    • 测试多个条件

    if conditional_test1: do something if conditional_test2: do something

  • 使用if语句处理列表

    • 检查特殊元素

    digits = [1, 2, 3] for digit in digits: if digit == 1: print(digit) else: print(1)

    • 确定列表不是空的

    digits = []

    if digits: # 当列表为空时返回False for digit in digits: print(digit) else: print("There is nothing to print.")

    • 使用多个列表
  • 设置if语句的格式(比如在==、>=、<=等比较运算符两边添加一个空格)

五、字典

  • 定义字典

    • 字典是一系列键-值对,使用花括号{}
    • 键和值之间用冒号分隔,键-值对之间用逗号分隔

    digits = {'one': 1, 'two': 2, 'three': 3}

    print(digits['one'])

  • 使用字典

    • 访问字典中的值
    • 添加键-值对(字典是一种动态结构)

    digits['four'] = 4 digits['five'] = 5 print(digits)


# 输出新增了两个键-值对
digits = {'one': 1, 'two': 2, 'three': 3, 'five': 5, 'four': 4}    # 键-值对的排列顺序与添加顺序不同
      • 先创建一个空字典,再往空字典里添加键-值对,以这种方式创建一个字典
    • 修改字典中的值

    digits['four'] = ‘四’ digits['five'] = 5 print(digits)


# 输出
digits = {'one': 1, 'two': 2, 'three': 3, 'five': 5, 'four': ‘四’}
    • 删除键-值对

    digits = {'one': 1, 'two': 2, 'three': 3, 'five': 5, 'four': 4} del digits['five'] # 永久性删除,使用del语句时必须指定字典名和要删除的键 print(digits)


# 输出
digits = {'one': 1, 'two': 2, 'three': 3, 'four': 4}
    • 由类似对象组成的字典的格式(较大的字典)

    在最后一个键-值对后面添加上逗号,可以为以后在下一行添加键-值对做好准备

    digits = { 'one': 1,
    'two': 2, 'three': 3, 'four': 4,
    }

  • 遍历字典

    • 遍历所有的键-值对

    for key, value in digits.items(): # 包含字典名和方法items() print(key + '--->' + value)

    for k, v in digits.items() 使用简单的变量名

    输出:键-值对返回的顺序也与存储顺序不同

    'one'--->1 'three'--->3 'two'--->2 'four'--->4

    • 遍历字典中所有的键

    for k in digits.keys(): # 使用方法keys()返回一个包含字典中所有键对的列表 print(k)

    for k in digits 也有相同的输出,但是不方便理解

    • 按顺序遍历字典中的所有键

    for k in sorted(digits.keys()): # 调用函数sorted()再遍历前先进行排序 print(k)

    • 遍历字典中的所有值

    for v in digits.values(): # 使用方法values()返回一个包含字典中所有值的列表 print(v)

    这种做法提取了字典中的所有值,没有考虑重复,如果要剔除重复项,可以使用集合(set)

    for v in set(digits.values()): # 使用函数set()返回一个不重复的列表 print(v)

  • 嵌套(将一系列字典存储在列表中或将列表作为值存储在字典中)

    • 字典列表

    创建一个用于存储奇数和偶数的空列表

    numbers = []

    创建奇数列表和偶数列表

    odds = {'one': 1, 'three': 3, 'five': 5} evens = {'two': 2, 'four': 4, 'six': 6} numbers.append(odds) numbers.append(evens)

    for number in numbers: print(number) print(len(numbers))


# 输出
{'one': 1, 'three': 3, 'five': 5}
{'two': 2, 'four': 4, 'six': 6}
2
    • 在字典中存储列表

    numbers = { 1: ['one', '一'], 2: ['two', '二'], 3: ['three', '三'], 4: ['four', '四'], } for k, v in numbers.items(): print(k + '--->' + v)

    • 在字典中存储字典

    numbers = { 'odd': { 1: 'one', 3: 'three', 5: 'five', },

    'even': {
        2: 'two',
        4: 'four',
        6: 'six',
        },
    

    }

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Andrew703 Andrew703
3年前
Python基础核心概念
1变量和简单数据类型变量命名格式:变量名“赋值”1.1变量使用规范使用变量时,需要遵守一些规则。违反这些规则将引发错误。变量名只能包含数字、字母、下划线。变量名不能以数字开头以及不能包含空格。变量名不能将Python保留字和函数名作为变量名。如print等如下是python3的33个保留字列表:
Peter20 Peter20
3年前
mysql中like用法
like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
3年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Wesley13 Wesley13
3年前
C语言中变量名及函数名的命名规则与驼峰命名法
一、C语言变量名的命名规则:(可以字母,数字,下划线混合使用)1\.只能以字母或下划线开始;2\.不能以数字开始;3\.一般小写;4\.关键字不允许用(eg:intfloat2//error float为保留字不允许用);二、函数名的命名规则
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这