字符串索引

str = '我是一名学生'
print(str[0]) #输出“我”
print(str[-6]) #输出“我”

字符串切片:把数据对象的一部分拿出来

str = '我是一名学生'
print(str[2:4]) #输出“一名”
print(str[-4:-2]) #输出“一名”

#获取字符串长度:len()
str = '我是一名学生'
length = len(str)
print(length)

函数

def interview():        #def是关键字 表示定义一个函数
print("把求职者带到3号会议室")
print("请求职者 完成答卷")
print("让测试经理来面试 求职者")
print("让技术总监面试 求职者")
  • 函数参数:

def interview(interviewee):     #def是关键字 表示定义一个函数
print("下一位求职者是" + interviewee)
print("把求职者带到3号会议室")
print("请求职者 完成答卷")
print("让测试经理来面试 求职者")
print("让技术总监面试 求职者")
interview('小明')

注:python中TAB和空格不能混用,否则会出错

列表:列表的内容可以改变

  • 定义:

    nameList = []   #空列表
    a = [1, 2, 3.14, 'hello', [7,8,9] ] #非空列表

元组:元组的内容不可以改变

  • 定义:

    nameList = ()   #空元组
    a = (1, 2, 3.14, 'hello') #非空元组

    如果元组中只有一个元素,必须要在后面加上逗号。(a = (1, ))

    定义元组还可以去掉圆括号,a = 1, 2, 3.14, 'hello'

  • 判断元素是否在元组:

    list1 = [1,2,3,4, 'hello']
    tuple1 = (1,2,3,4, 'hello')

    if 'hello' in list1:
    print('hello 在列表中存在')

    if 'boy' not in tuple1:
    print('boy 在元组中不存在')

判断语句

def registerUser():
phone = input('请输入你的手机号码(不超过11个字符):')
if len(phone) > 11:
print('输入错误!手机号码超过了11个字符')
# 还需要进一步判断 输入的是否全数字
elif not phone.isdigit() :
print('输入错误!手机号码必须全是数字')
# 判断是否以数字1 开头
elif not phone.startswith('1') : # startswith 是字符串对象的方法
print('输入错误!手机号码必须以数字1开头')
else:
print('手机号码输入正确') print('函数结束')

isdigit() 方法检测字符串是否只由数字组成,只对 0 和 正数有效。

startsWith() 方法用于检测字符串是否以指定的子字符串开始。

输入

def temperature():
tem = int(input("请输入今天的气温:"))
ap = int(input("请输入今天的气压:"))
if tem > 30 or tem < -8 or ap > 300 or tem < 20:
print("不舒适")
elif tem >25 and tem <= 30 and ap > 200 and ap <= 300:
print("比较舒适")
else:
print("无法判断")
temperature()

对象的方法

# var1 是一个列表对象
var1 = [1,2,3,4,5,6,7]
# 列表对象都有 reverse方法,该方法将列表元素倒过来
var1.reverse()
print(var1)

字符串的方法

  • count:

    # 调用字符串的count 方法,count 方法可以返回字符串对象包含了多少个参数指定的字符串
    # 表示该字符串包含了两个 '我们'
    '我们今天不去上学,我们去踢足球'.count('我们')
  • find:在字符串中查找参数子字符串,并返回该参数字符串在其中第一个出现的位置索引

    str1 = '我们今天不去上学,我们去踢足球'
    # 返回 0 , str1字符串中有两个 '我们'
    # find返回的是第一个 '我们' 的索引 0
    pos1 = str1.find('我们')
  • split、splitlines:split经常用来从字符串中截取出我们想要的信息。

    #用 | 作为源字符串str1的分割符
    str1 = '小张:79 | 小李:88 | 小赵:83'
    pos1 = str1.split('|')
    print(pos1)

    #splitlines把字符串按换行符进行切割
    salary = '''
    小王 10000元
    小李 20000元
    小徐 15000元
    '''

    print(salary.splitlines())

  • join:将列表中的字符串元素以某字符串为连接符,连接为一个字符串

    '|'.join([
    '小张:79 ',
    ' 小李:88 ',
    ' 小赵:83'
    ])

  • strip 、 lstrip 、 rstrip:

    '      小  李:88       '.strip()      #strip方法可以将 字符串前面和后面的空格删除,但是不会删除字符串中间的空格
    ' 小 李:88 '.lstrip() #将字符串前面(左边)的空格删除,但是不会删除字符串中间和右边的空格
    ' 小 李:88 '.rstrip() #将字符串后面(右边)的空格删除,但是不会删除字符串中间和左边的空格
  • replace:替换字符串里面所有指定的子字符串为另一个字符串

    str1 = '我们今天不去上学,我们去踢足球'
    str1 = str1.replace('我们', '他们')
  • startswith 和 endswith

    #startswith方法检查字符串是否以参数指定的字符串开头
    #endswith方法检查字符串是否以指定的字符串结尾
    str1 = '我们今天不去上学,我们去踢足球'
    str1.startswith('我们') # 返回 True
    str1.endswith('我们') # 返回 False
    def telephone():
    tele = input("请输入手机号码:")
    if not tele.isdigit() or len(tele) != 11 or not tele.startswith('1'):
    print("手机号码输入格式错误")
    else:
    print("您的手机号码为:"+tele)
    telephone()

列表的方法

  • append:在列表后面添加一个元素

    a = [1, 2, 3.14, 'hello']

    # append 之后,a就变成了 [1, 2, 3.14, 'hello', '你好']
    a.append('你好')
    print(a)


    # 继续append ,a就变成了 [1, 2, 3.14, 'hello', '你好', [7,8]]
    a.append([7,8])
    print(a)

    append 方法的返回值是None

  • insert:在指定位置插入一个元素

    a = [1, 2, 3.14, 'python3.vip']

    # 插入到索引0的位置,也是插到第1个元素的位置上
    # a列表内容就变成了 ['你好', 1, 2, 3.14, 'python3.vip']
    a.insert(0, '你好')
    print(a)

    insert方法的返回值也是None

  • pop:从列表取出并删除一个元素

    a = [1, 2, 3.14, 'python3.vip']

    # 取出索引为3 的元素,也就是第4个元素
    poped = a.pop(3)

    # 取出后,a列表对象内容就变成了 [ 1, 2, 3.14]
    print(a)

    pop 方法的返回值是提取出来的元素

  • remove:删除列表元素,参数是要删除元素的值,最多只会删除1个元素

    var1 = ['a','b','c','a']
    var1.remove('a')
    print(var1)

  • reverse:将列表元素倒过来

    var1 = [1,2,3,4,5,6,7]
    var1.reverse()
    print(var1)
  • index:返回参数对象在列表中的位置,也就是索引

    var1 = [1,2,3,4,5,6,7]
    idx = var1.index(5)
    print(idx)
  • sort:对列表进行排序

    students = ['Alex','Tom','Jerry','Michale','Alex']
    students.sort()
    print(f'after sort: {students}')

    numbers = [7,3,8,2,9]
    numbers.sort()
    print(f'after sort: {numbers}')

字符串格式化

  • printf风格:

    salary = input('请输入薪资:')

    # 计算出缴税额,存入变量tax
    tax = int(salary) *25/100

    # 计算出税后工资,存入变量aftertax
    aftertax = int(salary) *75/100

    print('税前薪资:%s元,缴税:%s元,税后薪资:%s元' %(salary,tax,aftertax))
  • f-string风格:

    salary = input('请输入薪资:')

    # 计算出缴税额,存入变量tax
    tax = int(salary) *25/100

    # 计算出税后工资,存入变量aftertax
    aftertax = int(salary) *75/100

    print(f'税前薪资是:{salary}元, 缴税:{tax}元, 税后薪资是:{aftertax}元')

    指定宽度:为了输出对齐,我们需要指定填入的字符串的宽度,方法是,在括号里面的变量后面加上——:宽度值

    例如:salary = 10000 print(f'{salary:10}')

  • 小练习:

    def demo():
    name = input("请输入你的名字:")
    age = int(input("请输入你的年龄:"))
    print(f'你的名字是:{name},你的年龄是:{age}')
    demo()

循环

  • while循环:

    command = input("请输入命令:")
    while command != 'exit':
    print(f'输入的命令是{command}')
    command = input("请输入命令")
  • for循环:

    studentAges = ['小王:17', '小赵:16', '小李:17', '小孙:16', '小徐:18']

    for student in studentAges:
    print(student)

    循环n次:使用for 循环 和 一个内置类型 range:

    # range里面的参数100 指定循环100次
    # 其中 n 依次为 0,1,2,3,4... 直到 99
    # range里面可以放入两个参数。两个参数表示起止范围。
    # range里面可以放入3个参数,第3个参数表示步长
    for n in range(100):
    print(n)
    print('python,你好')
  • break和return的区别:

    • return 只能用在函数里面, 表示 从函数中返回。

    • break只是跳出循环, 如果循环后面还有代码,会进行执行。

    • return 会从函数里面立即返回, 函数体内的后续任何代码都不执行了。

  • break和continue的区别:

    • continue只是当前这次循环结束,就是这次循环 continue 后面的代码不执行了, 后续的循环还要继续进行。

    • break是结束整个循环

  • 列表推导式:把一个列表里面的每个元素, 经过相同的处理,生成另一个列表。

    #一个列表1,里面都是数字,我们需要生成一个新的列表2,依次存放列表1中每个元素的平方
    list1 = [1,2,3,4,5,6]
    list2 = [num**2 for num in list1]
    print(list2)
  • 嵌套循环:

    list1 = ['关羽','张飞','赵云','马超','黄忠']
    list2 = ['典韦','许褚','张辽','夏侯惇','夏侯渊']

    for member1 in list1:
    for member2 in list2:
    print(f'{member1} 大战 {member2}')

文件操作

  • 写文件:

    f = open('test_1.txt','w',encoding='utf8')
    f.write('Python文件操作')
    f.close()
  • 读文件:

    f = open('test_1.txt','r',encoding='utf8')
    content = f.read()
    f.close()
    print(content)

    read()有参数,代表读取文件中的几个字符,默认为全部读取。

    读取文本文件内容的时候,通常还会使用readlines方法,该方法会返回一个列表。 列表中的每个元素依次对应文本文件中每行内容。

    f = open('tmp.txt')
    linelist = f.readlines()
    f.close()
    for line in linelist:
    print(line)

字典

  • 定义:字典对象定义用花括号 {} , 字典里面的 每个元素之间用 逗号隔开。

    每个元素都是一个键值对,键和值之间用冒号隔开。

    #键必须是可进行哈希值计算的对象,通常是数字或者字符串
    #值可以是任何类型的对象
    #字典对象的键是唯一的,不可能有两个元素具有相同的键
    members = {
    'account1' : 13 ,
    'account2' : 12
    }
    members = {
    'account1' : {'account':'account1', 'level': 13, 'point':3000} ,
    'account2' : {'account':'account2', 'level': 12, 'point':36000}
    }
  • 获取键的值:

    members['account1']     #获取account1的值
  • 添加:

    members = {}        #定义空字典
    members['accoutn1'] = 13 #添加account1
    members['account2'] = 14 #继续添加account2

  • 修改:

    members = {
    'account1' : 13,
    'account2' : 14
    }
    mambers['account2'] = 15 #修改account2

  • 删除:

    • pop方法删除:

      members = {
      'account1' : 13 ,
      'account2' : 12
      }

      val = members.pop('account1') #删除account1
      print(members)

    • del关键字删除:

      members = {
      'account1' : 13 ,
      'account2' : 12
      }

      del members['account1']
      print(members)

  • 判断键值是否存在:

    members = {
    'account1' : 13 ,
    'account2' : 12
    }

    if 'account1' in members:
    print('account1 在字典中存在')

    if 'account88' not in members:
    print('account88 不在字典中')
  • 遍历字典:

    #items方法,返回的是一个类似列表一样的对象,其中每个元素就是键值组成的元组
    #item返回的值:[('account1', 13), ('account2', 12), ('account3', 15)]
    members = {
    'account1' : 13 ,
    'account2' : 12 ,
    'account3' : 15 ,
    }

    for account,level in members.items():
    print (f'account:{account}, level:{level}')
  • 清空字典:

    members.clear()
  • 字典合并:

    members = {
    'account1' : 13 ,
    'account2' : 12 ,
    'account3' : 15 ,
    }

    another = {
    'account4' : 13 ,
    'account5' : 12 ,
    }

    members.update(another)

    print(members)
  • 获取字典元素个数:

    len(members)

学习笔记——Python基础的更多相关文章

  1. Python学习笔记—Python基础1 介绍、发展史、安装、基本语法

    第一周学习笔记: 一.Python介绍      1.Python的创始人为吉多·范罗苏姆.1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言 ...

  2. 学习笔记-python基础

    一. 1.python按装 1.1 官网 https://www.python.org 1.2 点 downloads下的 windows下载64位python3.7.3版本 Download Win ...

  3. Python学习笔记之基础篇(-)python介绍与安装

    Python学习笔记之基础篇(-)初识python Python的理念:崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. python的历史: 1989年,为了打发圣诞节假期,作者Guido开始写P ...

  4. [学习笔记] Numpy基础 系统学习

    [学习笔记] Numpy基础 上专业选修<数据分析程序设计>课程,老师串讲了Numpy基础,边听边用jupyter敲了下--理解+笔记. 老师讲的很全很系统,有些点没有记录,在PPT里就不 ...

  5. MyBatis:学习笔记(1)——基础知识

    MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...

  6. bootstrap学习笔记之基础导航条 http://www.imooc.com/code/3111

    基础导航条 在Bootstrap框中,导航条和导航从外观上差别不是太多,但在实际使用中导航条要比导航复杂得多.我们先来看导航条中最基础的一个--基础导航条. 使用方法: 在制作一个基础导航条时,主要分 ...

  7. Django学习笔记(基础篇)

    Django学习笔记(基础篇):http://www.cnblogs.com/wupeiqi/articles/5237704.html

  8. C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)

    一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字 ...

  9. C#学习笔记(基础知识回顾)之值传递和引用传递

    一:要了解值传递和引用传递,先要知道这两种类型含义,可以参考上一篇 C#学习笔记(基础知识回顾)之值类型和引用类型 二:给方法传递参数分为值传递和引用传递. 2.1在变量通过引用传递给方法时,被调用的 ...

  10. C#学习笔记(基础知识回顾)之值类型和引用类型

    一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...

随机推荐

  1. Windows 实例如何开放端口

    矩池云 Windows 实例相比于 Linux 实例,除了在租用机器的时候自定义端口外,还需要在 Windows防火墙中添加入口规则.接下来将教大家如何设置 Windows 防火墙,启用端口. 租用成 ...

  2. CXP2.0的相机是否可以使用CXP1.1的Grabber

    可以 答案是肯定的. 目前CXP共有2个发布版本: 2011年发布CXP1.1 2021年发布CXP2.1,向后兼容,新标准增加了同步功能.数据率放大了一倍. 只要是符合CXP标准.接插件匹配,那么C ...

  3. JS中Date和时间戳转换

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...

  4. 数据库运维 | 携程分布式图数据库NebulaGraph运维治理实践

    作者简介:Patrick Yu,携程云原生研发专家,关注非关系型分布式数据存储及相关技术. 背景 随着互联网世界产生的数据越来越多,数据之间的联系越来越复杂层次越来越深,人们希望从这些纷乱复杂的数据中 ...

  5. 聊聊图数据库和图数据库的小知识 Vol.02

    2010 年前后,对于社交媒体网络研究的兴起带动了图计算的大规模应用. 2000 年前后热门的是 信息检索 和 分析 ,主要是 Google 的带动,以及 Amazon 的 e-commerce 所用 ...

  6. 手把手教你蜂鸟e203协处理器的扩展

    NICE协处理器 赛题要求:   对蜂鸟E203 RISC-V内核进行运算算子(譬如加解密算法.浮点运算.矢量运算等)的扩展,可通过NICE协处理器接口进行添加,也可直接实现RISC-V指令子集(譬如 ...

  7. centos7 开机自动执行脚本

    1.因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local 2.赋予脚本可执行权限假设/usr/loc ...

  8. manjaroLinux-xfce4设置显示桌面快捷键

    1.打开窗口快捷键 2.寻找显示桌面 3.设置快捷键 啊!简单的我都不想写了,这不是为让像以前的"我"--小白,食用性更好一点吗?

  9. SAE自动驾驶分级介绍

    SAE International 国际自动机工程师学会(原译:美国汽车工程师学会)英文全程为:Society of Automotive Engineers International,是一个全球性 ...

  10. 单麦克风AI降噪模块及解决方案

    前记   随着以AI为核心的智能设备的广泛发展,语音这个非常重要的入口一直是很多厂商争夺的市场.作为音频采集的前端设备,能采集到的距离远,清晰度高,无噪声的信号是一个非常重要的能力.这样就对音频前端降 ...