(直接跳到相应部分查看即可)
Python 基础
输入---print()
直接使用print()函数,在括号中加入字符串(可以用双引号也可以用单引号,不能混用)
print()也可接受多个字符串,用逗号隔开,遇到逗号输出一个空格
输出---input()
输出使用input()函数
![屏幕截图 2023-11-13 192454](C:\Users\ASUS\Pictures\Screenshots\屏幕截图 2023-11-13 192454.png)
name是一个变量,第一次输入后,输入的内容存到了name里
第二次输入name就会显示上次输入的内容
除此之外还可以直接使用print()函数
input()还可以显示一个字符串
input()可以读取用户的输入,但是其返回的数据类型是str,str不能直接和整数比较,必须先把str转换成整数,so,Python提供了int()函数来完成这件事
s = input('birth = ')
birth = int(s)
if birth < 2000
print('00前')
else
print('00后')
循环
行与缩进
Python中运用缩进来表示代码块,不用{ },缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。
ps:至于为啥输出True,条件语句从上往下判断,符合某个判断,就执行该判断下的语句,剩下的都忽略
数据类型和变量
数据类型
-
整数
对于很大的数,例如
10000000000
,很难数清楚0的个数。Python允许在数字中间以_
分隔,因此,写成10_000_000_000
和10000000000
是完全一样的。十六进制数也可以写成0xa1b2_c3d4
。 -
浮点数
浮点数可以用数学写法,如
1.23
,3.14
,-9.01
,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x10的9次方就是1.23e9
,或者12.3e8
,0.000012可以写成1.2e-5
,等等。 -
字符串
字符串是以单引号
'
或双引号"
括起来的任意文本,比如'abc'
,"xyz"
等等。请注意,''
或""
本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'
只有a
,b
,c
这3个字符。如果'
本身也是一个字符,那就可以用""
括起来,比如"I'm OK"
包含的字符是I
,'
,m
,空格,O
,K
这6个字符。如果字符串内部既包含
'
又包含"
怎么办?可以用转义字符\
来标识,比如:
如果Python中很多字符都需要转义,就需要加很多\
为了简化,Python中还允许r ' '表示 ‘ ‘内部的字符串默认不要转义
如果字符串内部有很多换行,用\n
写在一行里不好阅读,为了简化,Python允许用'''...'''
的格式表示多行内容
切片
可以对比访问list中的元素
[ : ] ---> 截取字符串中的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的。
-
布尔值
布尔值和布尔代数的表示完全一致,一个布尔值只有
True
、False
两种值,要么是True
,要么是False
,在Python中,可以直接用True
、False
表示布尔值(请注意大小写),也可以通过布尔运算计算出来:or运算只要其中有一个正确就输出True
and运算全部正确才输出True 否则False
not运算是单目运算符 把True变成False 把False变成True
type()函数
返回一种数据类型
Notice:type也是一种数据类型
变量
在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。
变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_
的组合,且不能用数字开头
在Python中,等号=
是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量
这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言
静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错
也可以把一个变量a
赋值给另一个变量b
,这个操作实际上是把变量b
指向变量a
所指向的数据
在C语言中,可以认为变量是一个box,然后往box中存储内容;
**but在Python中,变量是一个tag(标签),在计算机最原始的结构,可以把它认为是一个很长的空间(类比C语言中的数组),当输入语句a = 10时,计算机发现要让一个10存进来把他赋值给a,并给他合适的空间,当下次用a的时候,根据上次存进来的地址进行操作(类比C语言指针) **
常量
所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量
PI = 3.1415926535
在Python中有两种除法:
/除法计算结果是浮点数,如果是整数恰好整除也是浮点数
//除法运算成为地板除 相除结果永远是整数
字符串和编码
字符编码
Python的字符串支持多种语言,以Unicode编码
对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符
由于Python的字符串类型是str
,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str
变为以字节为单位的bytes
。
Python对bytes
类型的数据用带b
前缀的单引号或双引号表示:
前者是str,后者虽然内容和前者一样,但bytes的每个字符只占用一个字节
要计算str包含多少个字符,可以用len()函数,如果换成bytes,就计算字节数
格式化
- Python中格式化字符串的方法和C语言一样,运用%
Notice!:如果不确定用什么,%s永远起作用
- 另一种格式化字符串的方法是format,它会用传入的参数依次替换字符串内的占位符
{0}
、{1}
……,
不放图了。。。。。。。
-
最后一种方法---------f-string
最后一种格式化字符串的方法是使用以
f
开头的字符串,称之为f-string
,它和普通字符串不同之处在于,字符串如果包含{xxx}
,就会以对应的变量替换
列表,元组和字典
列表(list)
List是一种有序的集合,可随时添加和删除其中的元素
- 使用len()函数可获取列表的长度
- 用索引访问列表中每个位置的元素(对照C语言中的数组)
- -1也可以做索引,直接访问最后一个元素,以此类推
- list是一个可变的有序表,可以往list中追加元素到末尾----------使用.append
Notice!:不要忘记列表名后边加“ . ",然后再加append
- 也可以把元素插到指定位置---------使用.insert
- 要删除末尾的元素,使用pop()
- 要删除指定位置的元素,使用pop(i)
- 要替换某个元素,直接赋值
list中的数据类型也可以不同,list元素也可以是另一个list
可以类比C语言中的二维数组哦
元组(tuple)
另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改
当定义只有一个元素的tuple时,记得在元素后加上逗号
括号()
既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1
。
接下来看一个“可变的”tuple
字典(dict)
Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
比如查找学生成绩:
把数据放入dict的方法,除了初始化时指定外,还可以通过key放入:
一个key只能对应一个value,多次对一个key放入value,只保留最后一个(类比C语言多次赋值)
- 要避免key不存在的现象,可以通过in判断
-
还可以通过get(),key不存在,则返回None,key存在则返回value
-
要删除一个key,可以用pop(key)的方法
需要牢记的第一条就是dict的key必须是不可变对象。
在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key
set
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
要创建一个set,需要提供一个list作为输入集合
Notice:传入的参数是一个list,而显示的{1, 2, 3}
只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。
重复元素也会在set中被自动过滤
add(key)的方法可以添加元素到set中,remove(key)的方法可以删除元素
可以把set当成集合
类比数学上的并集和交集
条件判断
和C语言一样,Python使用if和elif做条件判断
if
语句执行有个特点,它是从上往下判断,如果在某个判断上是True
,把该判断对应的语句执行后,就忽略掉剩下的elif
和else
,所以,下面的程序打印的是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()函数
range(18)生成0到17的整数序列,在通过list()函数可以转化成list,最终以list的形式输出
sum = 0
for x in range(100):
sum = sum + x
print(sum)
break和continue
不再赘述,和C语言中一模一样
函数
语法
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