首页 > 编程语言 >聪明办法学python

聪明办法学python

时间:2023-11-25 19:33:50浏览次数:43  
标签:case classmates python Michael list 办法 字符串 聪明 print


一、输入输出

在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量
  • print()函数也可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出:函数依次打印每个字符串,遇到逗号“,”会输出一个空格

    print('The quick brown fox', 'jumps over', 'the lazy dog')
    输出:
    The quick brown fox jumps over the lazy dog

    print("111","222",sep="*")输出多内容时,默认以空格分割,sep可改变分割符号
    输出可以做加法与乘法;

    print("""
    -----
    0----
    """)       #一次输出多行
  • input 输入

    注意!!!输入返回的类型是字符串

    input()
    一行输入多值
    a,b = input().split(",")
    直接输入多值,分隔符默认是空格,可以更改使用split。
  • 注释

    单行注释:使用#开头书写

    多行注释:使用"""或者'''把注解包裹起来

二、数据类型

  • 整数

    有正负之分

     

  • 浮点数

    对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

     

  • 字符串

    字符串是以单引号'或双引号"括起来的任意文本。

    如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容,命令行:

    >>> print('''line1
    ... line2
    ... line3''')
    line1
    line2
    line3

    如果写成程序并存为.py文件,就是:

    print('''line1
    line2
    line3''')

    如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义。

     

  • 布尔值

    Ture False

    布尔值可以用andornot运算。

    and运算是与运算,只有所有都为Trueand运算结果才是True

     

    or运算是或运算,只要其中有一个为Trueor运算结果就是True

     

    not运算是非运算,它是一个单目运算符,把True变成FalseFalse变成True

     

  • 空值

    空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

     

  • 变量

    变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。

    变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头

三、字符串

要注意区分'ABC'b'ABC',前者是str,后者虽然内容显示得和前者一样,但bytes的每个字符都只占用一个字节。

以Unicode表示的str通过encode()方法可以编码为指定的bytes

  • ord()

    获得字符的整数表示

  • chr()

    将编码转化为字符

如果bytes中包含无法解码的字节,decode()方法会报错:

>>> b'\xe4\xb8\xad\xff'.decode('utf-8')
Traceback (most recent call last):
...
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 3: invalid start byte

如果bytes中只有一小部分无效的字节,可以传入errors='ignore'忽略错误的字节:

>>> b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore')
'中'
  • len()

    计算字符数

 

 

在Python中,采用的格式化方式和C语言是一致的,用%实现,举例如下:

>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'

 

你可能猜到了,%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。

常见的占位符有:

占位符替换内容
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数

 

有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%

format()

另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}{1}……,不过这种方式写起来比%要麻烦得多:

>>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
'Hello, 小明, 成绩提升了 17.1%'

f-string

最后一种格式化字符串的方法是使用以f开头的字符串,称之为f-string,它和普通字符串不同之处在于,字符串如果包含{xxx},就会以对应的变量替换:

>>> r = 2.5
>>> s = 3.14 * r ** 2
>>> print(f'The area of a circle with radius {r} is {s:.2f}')
The area of a circle with radius 2.5 is 19.62

 

四、列表、元组、字典、集合

list

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

list的索引从0开始 classmates[0]

如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素

比如,列出班里所有同学的名字,就可以用一个list表示:

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']

list是一个可变的有序表,所以,可以往list中追加元素到末尾:

>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']

也可以把元素插入到指定的位置,比如索引号为1的位置:

>>> classmates.insert(1, 'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']

要删除list末尾的元素,用pop()方法:

>>> classmates.pop()
'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy']

要删除指定位置的元素,用pop(i)方法,其中i是索引位置:

>>> classmates.pop(1)
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']
初始化列表
In [7]:c = [[0] * 5 for _ in range(5)]
In [8]:c[0][0]='这个方法行'
In [9]:c
Out[9]:
[['这个方法行', 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]]

 

 

tuple

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:

>>> classmates = ('Michael', 'Bob', 'Tracy')

现在,classmates这个tuple不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用classmates[0]classmates[-1],但不能赋值成另外的元素。

 

定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1

所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义

tuple 可以套用list使得tuple里的值可以发生改变

 

dict

Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95

要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:

>>> 'Thomas' in d
False

二是通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:

>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1

要删除一个key,用pop(key)方法,对应的value也会从dict中删除:

>>> d.pop('Bob')
75
>>> d
{'Michael': 95, 'Tracy': 85}

set

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

set也不可以存储list

注意,传入的参数[1, 2, 3]是一个list,而显示的{1, 2, 3}只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。。

重复元素在set中自动被过滤:

>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}

通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:

>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}

通过remove(key)方法可以删除元素:

>>> s.remove(4)
>>> s
{1, 2, 3}

 

 

五、判断

if <条件判断1>:
  <执行1>
elif <条件判断2>:
  <执行2>
elif <条件判断3>:
  <执行3>
else:
  <执行4>

if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elifelse,所以,请测试并解释为什么下面的程序打印的是teenager

if判断条件还可以简写,比如写:

if x:
  print('True')

只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False

这是因为input()返回的数据类型是strstr不能直接和整数比较,必须先把str转换成整数。Python提供了int()函数来完成这件事情:

s = input('birth: ')
birth = int(s)
if birth < 2000:
  print('00前')
else:
  print('00后')

 

age = 15

match age:
  case x if x < 10:
      print(f'< 10 years old: {x}')
  case 10:
      print('10 years old.')
  case 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18:
      print('11~18 years old.')
  case 19:
      print('19 years old.')
  case _:
      print('not sure.')

使用match语句时,我们依次用case xxx匹配,并且可以在最后(且仅能在最后)加一个case _表示“任意值”,代码较if ... elif ... else ...更易读。

match语句除了可以匹配简单的单个值外,还可以匹配多个值、匹配一定范围,并且把匹配后的值绑定到变量

匹配列表

match语句还可以匹配列表,功能非常强大。

match args:
  # 如果仅出现gcc,报错:
  case ['gcc']:
      print('gcc: missing source file(s).')
  # 出现gcc,且至少指定了一个文件:
  case ['gcc', file1, *files]:
      print('gcc compile: ' + file1 + ', ' + ', '.join(files))
  # 仅出现clean:
  case ['clean']:
      print('clean')
  case _:
      print('invalid command.')

第一个case ['gcc']表示列表仅有'gcc'一个字符串,没有指定文件名,报错;

第二个case ['gcc', file1, *files]表示列表第一个字符串是'gcc',第二个字符串绑定到变量file1,后面的任意个字符串绑定到*files(符号*的作用将在函数的参数中讲解),它实际上表示至少指定一个文件;

第三个case ['clean']表示列表仅有'clean'一个字符串;

最后一个case _表示其他所有情况。

可见,match语句的匹配规则非常灵活,可以写出非常简洁的代码。

六、循环

  • for in

    所以for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句。

    names = ['Michael', 'Bob', 'Tracy']
    for name in names:
      print(name)
  • range()

    生产一个整数序列。

  • while

    第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。

    sum = 0
    n = 99
    while n > 0:
      sum = sum + n
      n = n - 2
    print(sum)

    要特别注意,不要滥用breakcontinue语句。breakcontinue会造成代码执行逻辑分叉过多,容易出错。大多数循环并不需要用到breakcontinue语句,上面的两个例子,都可以通过改写循环条件或者修改循环逻辑,去掉breakcontinue语句。

     

    有些时候,如果代码写得有问题,会让程序陷入“死循环”,也就是永远循环下去。这时可以用Ctrl+C退出程序,或者强制结束Python进程。

七、函数

首先函数由def进行定义;由两部分组成:header和body

函数可以提供多个参数,也可以没有参数

一些基本数字函数

abs()  #绝对值
max() #最大值
min() #最小值
pow() #次方运算
round() #取最近的一个整数
 

标签:case,classmates,python,Michael,list,办法,字符串,聪明,print
From: https://www.cnblogs.com/DAMD/p/17855933.html

相关文章

  • pythonDay16
    wraps装饰器补充 有参函数补充,特殊情况 有参函数装饰器,登录功能当中当账号密码来源于不同地方时 有参函数装饰器有语法糖(解决方案一,但比较复杂)有语法糖的解决方案二 有参装饰器的模板 什么是可迭代对象、什么叫迭代器,如何用 迭代器如何取值 for循环也可以......
  • python学习笔记-websocket介绍
    一、websocket介绍概述-http,socket实现,短链接,请求响应-websocket,socket实现,双工通道,请求响应,推送socket创建连接,不断开二、websocket握手过程分析socket入手-服务端(socket服务端)1、服务端开启socket,监听IP和端口3、允许连接*5、服务端接收特殊值【加密sha1,特殊值,magic......
  • 聪明办法学Python_task2_11.22-11.26
    聪明办法学Python_task2_11.22-11.26聪明办法学Python_task2_11.22-11.261.task03:数据类型和操作1.1常用基本类型1.2常用内置常数1.3常用内置运算符1.4逻辑运算1.5isinstance()2.task04变量与函数2.1变量2.1.1变量命名规则2.1.2多变量赋值2.2函数......
  • 聪明办法学python-task034
    python要点conda![1700559481851](C:\Users\25322\Documents\WeChatFiles\wxid_xc71h7t6nm2i22\FileStorage\Temp\1700559481851.png)注释单行注释以#开头多行注释可以用多个#号,还有'''和""".程序员最讨厌的10件事:0:别人的代码不写注释​......
  • 基于python的计算机网络在线考试系统-计算机毕业设计源码+LW文档
    摘 要现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本基于python的计算机网络在线考试系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员......
  • python021餐厅点餐系统-计算机毕业设计源码+LW文档
    一、课题简介在信息技术逐渐渗入到生活各个方面的今天,互联网在我们的生活中扮演着越来越重要的角色。现在信息化技术不仅可以提高我们的工作效率,而且能有效的规避错误风险,节约人力成本。美食行业现如今也越来越利用信息化技术来提高点餐效率和质量,餐厅点餐管理系统现在也越来越被......
  • 基于python的旅游景点推荐系统-计算机毕业设计源码+LW文档
    摘要 随着科技和网络的进步,计算机技术与网络、生活贴和的更加紧密。需要依靠客户端的单机系统逐渐被淘汰,利用互联网可以处理大量数据的新型系统如雨后春笋般迅速发展起来。这类系统和信息化时代的同步发展对传统的办公管理方式造成了很大的压力。当今时代,信息数据是一切的根本,是......
  • python+playwright爬取招聘网站
    一、简介:以获取智联招聘网北京、上海、广州、深圳的“数据分析”相关岗位的招聘信息为例,以下是效果实现。二、流程及代码实现(一)playwright模块安装或者在cmd中输入命令pipinstallplaywright安装完成后还需要安装playwright的浏览器驱动在cmd中输入命令playwrightinstall,等待即可......
  • 聪明办法学Python Task03&Task04
    数据类型和操作DATATYPESANDOPERATORS常用内置类型在本节将会见到这些基本类型:整数(int):浮点数(float):布尔值(bool):True和False​ 这个比较特殊,是用来表示逻辑上的“真”和“假”(或者说“是”和“非”)的一种类型,它 只有两个值,True和False。(注意:这里没......
  • 【9.0】Python高级之常用模块学习
    【一】re【二】time、datetime【三】os......