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

聪明办法学python(task3and4)

时间:2023-11-24 09:34:41浏览次数:36  
标签:变量 python list Python 聪明 字符串 key print task3and4

(直接跳到相应部分查看即可)

Python 基础

输入---print()

直接使用print()函数,在括号中加入字符串(可以用双引号也可以用单引号,不能混用)

print()也可接受多个字符串,用逗号隔开,遇到逗号输出一个空格

输出---input()

输出使用input()函数

![屏幕截图 2023-11-13 192454](C:\Users\ASUS\Pictures\Screenshots\屏幕截图 2023-11-13 192454.png)

name是一个变量,第一次输入后,输入的内容存到了name里

第二次输入name就会显示上次输入的内容

除此之外还可以直接使用print()函数

image-20231113192838701

input()还可以显示一个字符串

image-20231113193628508

input()可以读取用户的输入,但是其返回的数据类型是str,str不能直接和整数比较,必须先把str转换成整数,so,Python提供了int()函数来完成这件事

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

循环

行与缩进

Python中运用缩进来表示代码块,不用{ },缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数

image-20231115000933210

ps:至于为啥输出True,条件语句从上往下判断,符合某个判断,就执行该判断下的语句,剩下的都忽略

数据类型和变量

数据类型

  • 整数

    对于很大的数,例如10000000000,很难数清楚0的个数。Python允许在数字中间以_分隔,因此,写成10_000_000_00010000000000是完全一样的。十六进制数也可以写成0xa1b2_c3d4

  • 浮点数

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

  • 字符串

    字符串是以单引号'或双引号"括起来的任意文本,比如'abc'"xyz"等等。请注意,''""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有abc这3个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I'm,空格,OK这6个字符。

    如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识,比如:

image-20231113194832236

image-20231113194853251

如果Python中很多字符都需要转义,就需要加很多\

为了简化,Python中还允许r ' '表示 ‘ ‘内部的字符串默认不要转义

image-20231113195353953

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

image-20231113195554409

切片

img

可以对比访问list中的元素

[ : ] ---> 截取字符串中的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的。

  • 布尔值

    布尔值和布尔代数的表示完全一致,一个布尔值只有TrueFalse两种值,要么是True,要么是False,在Python中,可以直接用TrueFalse表示布尔值(请注意大小写),也可以通过布尔运算计算出来:

    image-20231113223418374

    image-20231113223608423

    or运算只要其中有一个正确就输出True

    and运算全部正确才输出True 否则False

    not运算是单目运算符 把True变成False 把False变成True

    image-20231113223942334

    type()函数

    返回一种数据类型

    image-20231115141035738

    image-20231115141325523

    Notice:type也是一种数据类型

变量

在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。

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

在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值而且可以是不同类型的变量

image-20231113200338055

这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言

静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错

也可以把一个变量a赋值给另一个变量b这个操作实际上是把变量b指向变量a所指向的数据

在C语言中,可以认为变量是一个box,然后往box中存储内容;

**but在Python中,变量是一个tag(标签),在计算机最原始的结构,可以把它认为是一个很长的空间(类比C语言中的数组),当输入语句a = 10时,计算机发现要让一个10存进来把他赋值给a,并给他合适的空间,当下次用a的时候,根据上次存进来的地址进行操作(类比C语言指针) **

常量

所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量

PI = 3.1415926535

在Python中有两种除法:

image-20231113224641836

/除法计算结果是浮点数,如果是整数恰好整除也是浮点数

//除法运算成为地板除 相除结果永远是整数

字符串和编码

字符编码

Python的字符串支持多种语言,以Unicode编码

image-20231114150612700

对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符

image-20231114150932302

由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes

Python对bytes类型的数据用带b前缀的单引号或双引号表示:

image-20231114151119520

前者是str,后者虽然内容和前者一样,但bytes的每个字符只占用一个字节

要计算str包含多少个字符,可以用len()函数,如果换成bytes,就计算字节数

image-20231114151507366

格式化

  • Python中格式化字符串的方法和C语言一样,运用%

image-20231114151939448

Notice!:如果不确定用什么,%s永远起作用

image-20231114152326507

  • 另一种格式化字符串的方法是format,它会用传入的参数依次替换字符串内的占位符{0}{1}……,

不放图了。。。。。。。

  • 最后一种方法---------f-string

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

image-20231114152809048

列表,元组和字典

列表(list)

List是一种有序的集合,可随时添加和删除其中的元素

  • 使用len()函数可获取列表的长度

image-20231114181138873

  • 用索引访问列表中每个位置的元素(对照C语言中的数组)

image-20231114181327974

  • -1也可以做索引,直接访问最后一个元素,以此类推

image-20231114181445478

  • list是一个可变的有序表,可以往list中追加元素到末尾----------使用.append

image-20231114181735162

Notice!:不要忘记列表名后边加“ . ",然后再加append

  • 也可以把元素插到指定位置---------使用.insert

image-20231114181956755

  • 要删除末尾的元素,使用pop()

image-20231114182147564

  • 要删除指定位置的元素,使用pop(i)

image-20231114182348784

  • 要替换某个元素,直接赋值

image-20231114182426174

list中的数据类型也可以不同,list元素也可以是另一个list

image-20231114182857649

可以类比C语言中的二维数组哦

元组(tuple)

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改

image-20231114190053687

当定义只有一个元素的tuple时,记得在元素后加上逗号

image-20231114190449929

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

接下来看一个“可变的”tuple

image-20231114190645278

字典(dict)

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

比如查找学生成绩:

image-20231114195517318

把数据放入dict的方法,除了初始化时指定外,还可以通过key放入:

image-20231114195941618

一个key只能对应一个value,多次对一个key放入value,只保留最后一个(类比C语言多次赋值)

  • 要避免key不存在的现象,可以通过in判断

image-20231114200237074

  • 还可以通过get(),key不存在,则返回None,key存在则返回value

    image-20231114200557031

  • 要删除一个key,可以用pop(key)的方法

image-20231114200856961

需要牢记的第一条就是dict的key必须是不可变对象。

在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key

set

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

要创建一个set,需要提供一个list作为输入集合

image-20231114201515668

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

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

image-20231114201743110

add(key)的方法可以添加元素到set中,remove(key)的方法可以删除元素

image-20231114201855417

可以把set当成集合

image-20231114202424863

类比数学上的并集和交集

条件判断

和C语言一样,Python使用if和elif做条件判断

if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elifelse,所以,下面的程序打印的是teenager`:

age = 20
if age >= 6
	print('teenager')
elif age >= 18
	print('adult')
else
	print('kid')

match语句

score = 'B'
if score == 'A'
	print('score is A')
elif score =='B'
	print('score is B')
else 
	print('invalid score')
score = 'B'
match score:
	case 'A':
        print('score is A')
    case 'B':
        print('score is B')
    case _:   # _表示未匹配到任何一种情况
        print('score is ???')

match语句可类比C语言中的Switch语句哦

复杂的匹配
age = 15

match age:
    case x if x < 10: #表示当age < 10时匹配,并且赋值给变量x
        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.')

匹配列表
args = ['gcc','hello.c','world.c']

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

*case ['gcc',file1,*files]:表示列表第一个字符串是 ‘gcc’,第二个字符串绑定到变量file1,后面任意个字符串绑定到 files

for...in 循环

for x in ...就是把每个变量带入x,然后执行缩进块的语句

names = ['hzh','zzy','tyut']
for name in names:
    print(name)

执行以上代码,会依次打印names中的每一个元素

range()函数

image-20231114194556145

range(18)生成0到17的整数序列,在通过list()函数可以转化成list,最终以list的形式输出

sum = 0
for x in range(100):
    sum = sum + x
print(sum)
break和continue

不再赘述,和C语言中一模一样

函数

image-20231124090414030

语法

def 函数名(参数列表):
	函数体

函数调用

类比C语言

#判断素数
def prime(num):
    if n < 2:
        return False
    for i in range(2,int(num**0.5)+1):
        if num % i == 0:
            return False
    return True

n = int(input())
if prime(n):#调用函数
    print(n)

参数传递

a = 1
a = 'hzh'
#在上述代码中,1是int类型,'hzh'是string类型,而a没有类型
#a仅代表一个指针(用来引用对象),可以指向不同的对象

return语句

return [表达式] 语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的 return 语句返回 None。

代码参考函数调用部分

标签:变量,python,list,Python,聪明,字符串,key,print,task3and4
From: https://www.cnblogs.com/He-zihan/p/17852990.html

相关文章

  • 使用Python在Tkinter中保存异常
    我为其他使用Tkinter接收用户输入的人开发了几个Python程序。为了保持简单和用户友好,命令行或python控制台永远不会打开(即。.pyw文件),因此,当出现异常时,我正在研究如何使用日志库向文件写入错误文本。然而,我很难让它真正捕获异常。例如:我们编写一个会导致错误的函数:defcause_a......
  • Python使用sys.excepthook统一处理异常,并将异常信息记录到日志中
    importsysimporttimeimporttracebackfromdatetimeimportdatetimefromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.supportimportexpected_conditionsasECfromselenium.webdriver.support.uiimportWeb......
  • 【接口自动化测试实战】python+requests+Pytest+yaml+Allure
    前言一、先来了解下pytest二、需要具备的基础知识三、开发环境准备四、接口自动化实战(设计项目目录)五、方法封装六、编写自动化用例脚本七、持续集成八、其他自动化框架......
  • 直接讲清楚反转链表和判断子链表是怎么搞的【python】
    Reversed_sub反向子链表题,直接把反向链表和子链表讲清楚。反向假设有一个链表:1->2->3->4->None初始化三个指针:prev:用于指向当前节点的前一个节点。初始时prev为None。current:用于指向当前节点。初始时current指向链表的头节点。next:用于保存当前节点的下一......
  • python编程模拟题二
    重要提示:如下四个题都很类似,从简到难不等,请注意:尽管要求输入数字,但如果数字本身在题目中不需要参与计算,那么可以直接把这个数字当字符串来处理即可。如果数字参与计算了,可以把每个数字通过 eval()或 int()转换即可。这四个题目考察大家输入,输出,循环,字符串里每个字符的索引......
  • 简单的用Python采集股票数据,保存表格后分析历史数据
    前言字节跳动如果上市,那么钟老板将成为我国第一个世界首富趁着现在还没上市,咱们提前学习一下用Python分析股票历史数据,抱住粗大腿坐等起飞~好了话不多说,我们直接开始正文准备工作环境使用Python3.10解释器Pycharm编辑器模块使用requests—>数据......
  • pythonChap3变量与函数
    变量与操作变量用=赋值新的值会覆盖掉旧的值新值的数据类型不一定要与旧的相等变量命名规则:必须以字母或下划线(_)开头命名可由字母、数字和下划线组成大小写敏感尽量避免使用保留字命名保留字:['False','None','True','peg_parser','and','as','assert','async......
  • 聪明办法学python chap2数据类型与操作 3变量与函数
    Python(二)数据类型与操作类型print(type(2))#整型intprint(type(2.2))#浮点型floatprint(type(2>3.4))#布尔型boolprint(type(type(2)))#类型typeprint(t......
  • Python中的构造方法
     构造方法在Python中的使用:创建对象时用于初始化对象的实例变量。通过__init__()来定义1、什么是构造方法在面向对象编程中,构造方法是一个特殊的方法,用于在创建对象时初始化对象的状态。它在对象创建的过程中自动调用,负责为对象设置初始值。构造方法通常用于执行与对象相关的......
  • Python中,if __name__=="__main__"学习
    注意:Python的代码执行,都是依次从上往下执行在Python中,每个模块都有一个内置的变量name,用于表示当前模块的名称。当一个Python文件被执行时,Python解释器会首先将该文件作为一个模块导入,并执行其中的代码。此时,__name__的值为模块的名称。ifname==‘main’是一个常见的用法,它......