A苏弋

V1

2022/10/31阅读:21主题:默认主题

Python

Python

一,基础

1—Python语法

  • 单行注释: #

  • 多行注释

    '''
    代码
    '''

  • 非法标识符
    • 4word # 严禁以数字 开头

    • try # 严禁使用Python保留字

    • $money # 严禁使用特殊字符$

    • 区分大小写

    • number = 0 
      Number = 0
      NUMBER = 0
      都是单独个体
1.1输入输出
print("人生苦短,我用Python")

# 请输入您的身高
height = float(input("请输入您的身高:"))
print(height)
1.2判断
  • 数字大小
a=int(input("输入第一个数字"))
b=int(input("输入第二个数字"))
c=a+b
print(a)
print(b)
print("和为"+str(c))
if a>b:print(a)
if a<b:print(b)
if a==b:print(str(a)+"="+str(b))
1.3变量
nickname = "早睡早起"
print(nickname)
# 判断字符串
print(type(nickname))
nickname = 1024
print(nickname)
# 判断整形
print(type(nickname))
  • 整数()
  • 浮点数(print(0.1+0.4))
  • 复数
1.4转义字符
转义字符 说明
\ 续行符
\n 换行符
\0 空格
\t 水平制表符(tab 退四格)
\" 双引号
\' 单引号
\\ 一个反斜杠
\f 换页
\0dd 八进制
\xhh 十六进制
print("失望之酒\x0a机会之杯")
# 失望之酒
# 机会之杯 
print(r"失望之酒\x0a机会之杯")
# 失望之酒\x0a机会之杯


# 在字符定界前 加 r/R ,该字符就会原样输出

1.5布尔类型
函数 作用
int(x) 将x转换成整数
float(x) 将x转换成浮点数类型
char(x) 将整数x转换成一个字符
str(x) 将x转换为字符串
repr(x) 将x转换为表达式字符串
eval(str) 计算在字符串中的有效Python表达式,并返回一个对象
comlex(real[,imag]) 创建一个复数
ord(x) 将一个字符串x转换成它对应的整数值
hex(x) 将一个整数x转换成16进制字符串
oct(x) 将一个整数x转换成18进制字符串
  • 数字
money_1=float(input("请输入第一个商品价格:"))
money_2=float(input("请输入第二个商品价格:"))
money_3=money_1+money_2

money_4=money_1+money_2
money_int =int(money_4)
money_str2=str(money_int)

print("字符串:"+money_str2)
# 抹零
1.6运算符

/

% 取除数的余数

// 取整数

** 冥,返回x的y次方

money_1=float(input("请输入第一个商品价格:"))
money_2=float(input("请输入第二个商品价格:"))

sub = (money_1+money_2)/2
print("商品的合"+sub)

1.7赋值运算符
运算符 举例 展开形式
= x=y x=y
+= x+=y x=x+y
-= x-=y x=x-y
*= x*=y x=x*y
/= x/=y x=x/y
%= x%=y x=x%y
**= x**=y x=x**y
//= x//=y x=x//y
1.8比较运算符

简单略过...

1.9逻辑运算符
运算符 含义 用法
and 逻辑与 op1 and op2
or 逻辑或 op1 or op2
not 逻辑非 not op
# and
a=input("输入星期:")
b=int(input("输入时间:"))
if(a=="星期二" and (b>5 and b<8)):
    print("恭喜你!")
else:
    print("优惠时间已过或未到")
# or
a=input("输入星期:")
b=int(input("输入时间:"))
if(a=="星期二" or (b>5 and b<8)):
    print("恭喜你!")
else:
    print("优惠时间已过或未到")

1.10位运算符
print("12&8="+str(12&8))
print("4|8="+str(4|2))
print("4^8="+str(4^8))
print("8^4="+str(8^4))
print("~123="+str(~123))

2—流程控制语句

2.1判断语句
a=3
b=4
if a>b:
    print("a最大")
else:
    print("b最大")

a = int(input("请输入买花的数量:"))
if a == 1:
    print("长长久久")
elif a == 9:
    print("天长地久")
elif a == 1314:
    print("一生一世")
else:
    print("随便买")
2.2while循环

语法

while 条件表达式:
 循环体
a = True
number = 0
# 从1到100
while a:
    number += 1
    print(number)
    if number== 100:
       a = False 
2.3 for循环
a = 0
for i in range(101):
    a +=i
print(a)
for i in range(1,10,2):
    print(i,end="")
# 使用range(x)函数 如果里面只有一个x,就是遍历0~(x-1)
# 使用range(x,y)函数 就是遍历x~(y-1)
# 使用range(x,y,z)函数 就是遍历x~(y-1)每隔z的数
1.遍历字符串
string = '你好,树莓派'
print(string)
for ch in string:
    print(ch)
2.99乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print(str(j)+"*"+str(i)+"="+str(i*j)+"\t",end="")
    print("")
    
# end=""禁止换行 ent="\t"退四格
3.跳转语句

1.break:中止当前循环(while,for)

a = True
num = 1
while a:
    num +=1
    print(num)
    if num == 1024:
        break
for i in range(1,11):
    print(i)
    if i == 7:
        print("到7了")
        break

2.continue:中止本次循环提前进入下此循环

for i in range(1,11):
    print(i)
    if i == 7:
        print("到7了")
        continue

逢7拍腿(1到100 里面7的倍数或者是以7为个位的数有多少个)

total = 99 # total 总数
for i in range(1,101):
    if i % 7 == 0:
        continue
    else:
        string = str(i)
        if string.endswith('7'):
            print(string)
            continue
    total -=1
print("")
print(total)

3.pass:表示空语句,一般起占位的作用相当于 print("")

3—序列应用

3.1-索引

元素1 元素2 元素3 元素4
索引(下标)~ 0 索引(下标)~ 1 索引(下标)~ 2 索引(下标)~ 3
verse = ["你好","大家好","李白"]
print(verse[1])
print(verse[-1]) # 倒着

3.2-切片

语法:sname[start : end : step]

​ start : 表示切片开始的位置

​ end : 表示切片的截止位置

​ step : 表示步长,默认为1

verse = ["你好","大家好","李白","a","b","c","d","e","f","g"]
print(verse[2:5]) # "李白","a","b"
print(verse[1:5]) # "大家好","李白","a","b"
print(verse[2:5:2]) # "李白","b"

print(verse[:]) # "你好","大家好","李白","a","b","c","d","e","f","g"

3.3-序列相加

verse = ["你好","大家好","李白","a","b","c","d","e","f","g"]
verse2 = ["我好","你们好","李太白","1","2","3","4","5","6","7"]
print(verse+verse2)

# ['你好', '大家好', '李白', 'a', 'b', 'c', 'd', 'e', 'f', 'g', '我好', '你们好', '李太白', '1', '2', '3', '4', '5', '6', '7']

3.4-乘法

verse = ["你好","Vivo"]
print(verse * 3)
# ['你好', 'Vivo', '你好', 'Vivo', '你好', 'Vivo']

序列乘法可以初始化指定长度列表功能

emptylist = [None]*5
print(emptylist)

3.5 -检查某个元素是否是序列的成员

verse = ["你好","大家好","李白","a","b","c","d","e","f","g"]
print("mm" not in verse)

3.6-计算序列的长度,最大值,最小值

verse = ["你好","大家好","李白","a","b","c","d","e","f","g"]
print(len(verse))
# len()计算序列长度

num = [1,41,312,41,132,15]
print(max(num))
print(min(num))
print(sorted(num))
# max()数字序列最大值
# min()数字序列最小值
函数 作用
list() 将序列转化为列表
str() 将序列转化为字符串
sum() 计算元素总和
sorted() 对元素进行排序
reveresed() 反向序列中的元素
enumerate() 将序列组合为一个索引序列

3.7-列表的创建和删除

1.使用赋值运算符直接创建列表

语法:listname = [element 1,element 2,element 3,...,element n]

num = [1,41,312,41,132,15]
verse = ["人生得意须尽欢,","莫使金樽空对月。","天生我材必有用,","千金散尽还复来。"]
untitle = ["明月几时有?",42,"把酒问青天。",["爬虫","云计算","AI","Web开发"]]
print(num)
print(verse)
print(untitle)


# 创建空列表
emptylist = []
print(emptylist)
2.创建数值列表

语法:list(data)

在Python中 数值列表很常用,例如,考试系统中记录学生的成绩,游戏中角色的位置,各个玩家的得分情况......

# 创建一个10~20之间所有偶数列表(不包括20)
a = list(range(10,20,2))
print(a)
# 将第三个参数(2)作为步长
3.删除列表

语法 :del listname(列表名称)

team = ["人生得意须尽欢,","莫使金樽空对月。","天生我材必有用,","千金散尽还复来。"]
del listname
4.访问列表元素
untitle = ["明月几时有?",42,"把酒问青天。",["爬虫","云计算","AI","Web开发"]]
print(untitle)
print(untitle[2])
print(untitle[3])
# ['明月几时有?', 42, '把酒问青天。', ['爬虫', '云计算', 'AI', 'Web开发']]
# 把酒问青天。
# ['爬虫', '云计算', 'AI', 'Web开发']
实例
import datetime                            # 导入时间类
mot = ["星期一:",
       "星期二:",
       "星期三:",
       "星期四:",
       "星期五:",
       "星期六:",
       "星期天:",]
day = datetime.datetime.now().weekday()    # 获取当前星期
print(mot[day])        
# datetime.datetime.now():获取当前日期
# weekday():从日期中获取星期
5.便利列表
1.直接for循环
team = ["人生得意须尽欢,","莫使金樽空对月。","天生我材必有用,","千金散尽还复来。"]
for i in team:
    print(i)
    
'''
人生得意须尽欢,
莫使金樽空对月。
天生我材必有用,
千金散尽还复来。
'''

2.使用for循环和enumerate()函数实现

使用for循环和enumerate()可以实现同时输出索引值和元素内容

语法:

listname = ["人生得意须尽欢,","莫使金樽空对月。","天生我材必有用,","千金散尽还复来。"]
for index,item in enumerate(listname):
    # 输出index和item
    # index : 保存元素的索引
    # item  : 保存获取到的元素值,要输出内容直接输出变量即可
    # ilstname : 为列表名称
    print(index+1,item)
    
'''
1 人生得意须尽欢,
2 莫使金樽空对月。
3 天生我材必有用,
4 千金散尽还复来。
'''

练习

对列表进行统计计算
listname = ["人生得意须尽欢,","莫使金樽空对月。","天生我材必有用,","千金散尽还复来。"]
num = listname.count("莫使金樽空对月。")
print(num)
# count()获取元素在列表中出现的次数

num2 = listname.index("莫使金樽空对月。")
print(num2)
# index()获取元素在列表中第一次出现的下标

number = [3,345,631,1231,423,5312]
num3 = sum(number)
print(num3)
# sum()计算总和
对列表排序
# sort()排序
# sort(key=None,reverse=False)
# key:表示指定从没给元素中去一个比较的键(设置 key=str.lower)表示在排序是不区分字母大小写
number = [3,345,631,1231,423,5312]
print("原列表:",number)
number.sort()
print("升序",number)
number.sort(reverse=True)
print("降序",number)

# 字母排序

char = ["cat","Tom","pet","angLa"]
char.sort()
print("区分大小写:",char)
char.sort(key=str.lower)
print("不区分大小写:",char)

# sorted()对原列表排序,原列表的顺序不变
number = [3,345,631,1231,423,5312]
number1 = sorted(number)
print("升序:",number1)
number2 = sorted(number,reverse = True)
print("降序:",number2)


列表推导式

list = [Expression for var in range]

  • list:表示生成的列表名称
  • Expression:表达式,用于计算新列表的元素
  • var:循环变量
  • range:采用range()函数随机生成range对象
import random
rand = [random.randint(10,100for i in range(10)]
print("生成随机数:",rand)

newlist = [Expression for var in list]

  • newlist:表示新生成的列表名
  • Expression:表达式,用于计算新列表的元素
  • var:变量,值为后面列表的每个元素值
  • list:用于生成新列表的原列表
import random
rand = [random.randint(10,100for i in range(10)]
print("生成随机数:",rand)
sale = [int(x*0.5for x in rand]
print("数列乘0.5:",sale)
import random
rand = [random.randint(10,100for i in range(10)]
print("生成随机数:",rand)

sale = [x for x in rand if x>30]
print("大于30的数:",sale)
二维列表
# 定义二维列表·
listname = [['人','生','得','意','需','尽','欢'],
            ['莫','使','金','樽','空','对','月'],
            ['天','生','我','材','必','有','用'],
            ['千','金','散','尽','还','复','来']]


# 使用嵌套的for循环创建
arr = []                # 创建一个空列表
for i in range(4):
    arr.append([])      # 在空列表中创建一个空列表
    for j in range(5):
        arr[i].append(j) # 为空列表添加元素   
print(arr)

# 使用列表推导式创建
arr = [[j for j in range(5)] for i in range(4)]
print(arr)


str1 = "人生得意须尽欢,"
str2 = "莫使金樽空对月。"
str3 = "天生我材必有用,"
str4 = "千金散尽还复来。"
verse = [list(str1),list(str2),list(str3),list(str4)]    # 定义一个二维列表
print(verse)

print("--- 横版 ---")

for i in range(4):                          # 循环古诗的没一行
    for j in range(8):                      # 循环每一个字
        if j == 7:
            print(verse[i][j])
        else:
            print(verse[i][j],end='')
# 对列表进行逆向排序
verse.reverse()
print(verse)

print("--- 竖版 ---")
for i in range(8):
    for j in range(4):
        if j == 3:
            print(verse[j][i])
        else:
            print(verse[j][i],end="")

3.8-元组

元组和列表类似,区别在与 元组中的元素无法修改

1.1-元组的创建
var = ('人生得意须尽欢,','莫使金樽空对月。','天生我材必有用,','千金散尽还复来。')
number = (1,342,24,13)
tup3 = "a""b""c""d"   #  不需要括号也可以
print(var)
print(number)
print(tup3)

# 创建空元组
varnull = ()
print(varnull)

# 在元组中创建偶数
var3 = tuple(range(0,10,2))
print(var3)
1.2-元组的删除
var = ('人生得意须尽欢,','莫使金樽空对月。','天生我材必有用,','千金散尽还复来。')
print(var)
del var
1.3-访问元组
var = ('你好',23,("人生得意须尽欢,","莫使金樽空对月。"),["天生我材必有用,","千金散尽还复来。"])
print(var)
# ('你好', 23, ('人生得意须尽欢,', '莫使金樽空对月。'), ['天生我材必有用,', '千金散尽还复来。'])


var = ('你好',23,("人生得意须尽欢,","莫使金樽空对月。"),["天生我材必有用,","千金散尽还复来。"])
print(var)
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
print(var[2])
# ('人生得意须尽欢,', '莫使金樽空对月。')
print(var[:2]) # 访问下标从零到二
# ('你好', 23)
1.3.1-for循环输出
var = ('人生得意须尽欢,','莫使金樽空对月。','天生我材必有用,','千金散尽还复来。')
print(var)
for i in var:
    print(i)
1.4-修改元组

元组不可被修改

var = ('人生得意须尽欢,','莫使金樽空对月。','天生我材必有用,','千金散尽还复来。')
print(var)
var[2] = '你好'
print(var)

'''
var[2] = '你好'
TypeError: 'tuple' object does not support item assignment
'''

# 元组不可被修改

元组可被整体覆盖

var = ('人生得意须尽欢,','莫使金樽空对月。','天生我材必有用,','千金散尽还复来。')
print(var)
var = ('人生得意须尽欢,','莫使金樽空对月。','你好','千金散尽还复来。')
print(var)

'''
('人生得意须尽欢,', '莫使金樽空对月。', '天生我材必有用,', '千金散尽还复来。')
('人生得意须尽欢,', '莫使金樽空对月。', '你好', '千金散尽还复来。')
'''

元组可连接

var = ('人生得意须尽欢,','莫使金樽空对月。','天生我材必有用,','千金散尽还复来。')
name = ("唐~","李白")
ukg = var + name
print(ukg)

'''
('人生得意须尽欢,', '莫使金樽空对月。', '天生我材必有用,', '千金散尽还复来。', '唐~', '李白')
'''


var = ('人生得意须尽欢,','莫使金樽空对月。','天生我材必有用,','千金散尽还复来。')

var = var + ("唐~","李白")
print(var)

注意

1.连接时只能是元组和元组连接

2.元组和元组连接时,第一个元组

var = ('人生得意须尽欢,','莫使金樽空对月。','天生我材必有用,','千金散尽还复来。')
name = ["唐~","李白"]
ukg = var + name
print(ukg)

'''
TypeError: can only concatenate tuple (not "list") to tuple
'''

元组推导式
import random
randmonumber = (random.randint(10,100for i in range(10))
print(randmonumber)

# <generator object <genexpr> at 0x0000019E949D0350>
import random
randmonumber = (random.randint(10,100for i in range(10))
randmonumber = tuple(randmonumber) # 转化为元组
print(randmonumber)

# (75, 17, 42, 63, 66, 25, 86, 96, 39, 61)
  • 转换元组使用 tuple() 函数
  • 转换列表使用 list() 函数
number = (i for i in range(3))
print(number.__next__) # 输出第一个元素
print(number.__next__) # 输出第二个元素
print(number.__next__) # 输出第三个元素
number = tuple(number) # 转换tuple()
print(number)

# __next__ 用于便利生成器对象的
number = (i for i in range(3))
for h in number:
    print(h,"\t",end="")
print(tuple(number))
'''
0       1       2       ()
'''

结论:无论那种方式最后都要使用tuple()函数创建一个新的生成器对象

*** 元组和列表的区别 ***

  1. 列表可随时修改,元组不可以
  2. 列表使用 append() extend() insert() remove() pop() 等方法添加和修改元素,但元组没有,元组不能修改元素,删除元素,从中添加元素
  3. 列表可以用切片的方法修改,添加元素,元组只可以同过切片去访问元组
  4. 元组的访问速度和处理速度要比列表快,如果吧修改的话,只进行访问建议使用元组
  5. 列表不能作为字典的键,而元组可以

3.9-字典

理解:

​ 字典与列表相似,是可变序列,但也不同,字典是无序的可变序列,保存形式是以 “ 键-值对 ”的方式保存,就像新华字典一样,我们可以把它看做是拼音和字典关联起来的,同过查音节表来找汉字,对应的 音节就相当于键,汉字就相当于值,通常一个音对应多个汉字,也就是键是唯一的,值是多个的。

​ 所以字典用来定义一个可以包含多个命名字段的对象。

字典的特征:

  • 同过键读取而不是索引
  • 字典是任意对象的无序集合
  • 字典是可变的,可以任意嵌套
  • 字典的值必须唯一
  • 字典的键不能变
1-字典的创建
var = {'key1':'人生得意须尽欢,','key2':'莫使金樽空对月。','key3':'天生我材必有用,','key4':'千金散尽还复来。'}
print(var)

'''
key:键
'''


# 空字典
var1 = {}
print(var1)
# 空字典 dict()函数
var2 = dict()
print(var2)

# 列表和元组
name_yuan = ('人生得意须尽欢,','莫使金樽空对月。','天生我材必有用,','千金散尽还复来。')
name_lie = ['1','2','3','4']
dict1 = {name_yuan:name_lie}
# {('人生得意须尽欢,', '莫使金樽空对月。', '天生我材必有用,', '千金散尽还复来。'): ['1', '2', '3', '4']}

dict()函数除了创建一个空字典外,还可以通过自己的数据模块快速创建字典

1.1-通过映射函数创建字典
var = dict(zip(list1.list2))
# zip()函数:用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。
'''
zip()函数:用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。
    如果想获取元组,可以将zip对象使用tuple()函数转化为元组
    如果想获取列表,可以将zip对象使用list()函数转化为列表

list1:键
list2:值
'''



name1 = ['1','2','3']
name2 = ['李太黑','李特黑']
doctopnary = dict(zip(name1,name2))
print(doctopnary)
# {'1': '李太黑', '2': '李特黑'}
1.2-通过给定的关键字参数创建字典
# dictionary = dict(key1=value1,key2=value2,key3=value13)
# key:表示参数名
# value:表示参数值

dictionary = dict(李白='天蝎座',杜甫='双鱼座',诸葛亮='双子座')
print(dictionary)
# {'李白': '天蝎座', '杜甫': '双鱼座', '诸葛亮': '双子座'}

dict对象的fromkeys()方法可以创建为 空的字典

语法:dictonary = dict.fromkeys(list1)

name2 = ['李太黑','李特黑']
dictonaly = dict.fromkeys(name2)
print(dictonaly)
# {'李太黑': None, '李特黑': None}

作为键的元组修改列表

name1 = ['1','2','3']
name2 = ['李太黑','李特黑']
dict1 = {name1:name2}
print(dict1)
'''
TypeError: unhashable type: 'list'
'''

# 删除字典
dle dict1
# 清空元素
dict1.clear()
1.3-通过 键值对 访问字典
var = {'key1':'人生得意须尽欢,','key2':'莫使金樽空对月。','key3':'天生我材必有用,','key4':'千金散尽还复来。'}
print(var['key2'])
# 莫使金樽空对月。

# 如果没有
var = {'key1':'人生得意须尽欢,','key2':'莫使金樽空对月。','key3':'天生我材必有用,','key4':'千金散尽还复来。'}
print(var['key5'if 'key5' in var else "null")
# null

'''
 使用get()方法获取指定键的值
 dictionary.get(key[,default])
 dictionary:字典名称
 key:指向的键
 default:为可选项
'''


var = {'key1':'人生得意须尽欢,','key2':'莫使金樽空对月。','key3':'天生我材必有用,','key4':'千金散尽还复来。'}

print("key2:",var.get('key2'))
# key2: 莫使金樽空对月。

# 如果键不存在
print("key5:",var.get('key5','没有这句诗'))
# key5: 没有这句诗
1.4-便利字典

使用items()为字典对象是可以获取字典的“ 键 - 值对 ”

var = {'key1':'人生得意须尽欢,','key2':'莫使金樽空对月。','key3':'天生我材必有用,','key4':'千金散尽还复来。'}
for i in var.items():
    print(i)

# ('key1', '人生得意须尽欢,')
# ('key2', '莫使金樽空对月。')
# ('key3', '天生我材必有用,')
# ('key4', '千金散尽还复来。')
1.5-添加,修改,删除字典元素

1.添加

var = {'key1':'人生得意须尽欢,','key2':'莫使金樽空对月。','key3':'天生我材必有用,','key4':'千金散尽还复来。'}
var['key5'] = "李白"
print(var)
# {'key1': '人生得意须尽欢,', 'key2': '莫使金樽空对月。', 'key3': '天生我材必有用,', 'key4': '千金散尽还复来。', 'key5': '李白'}

2.修改

var = {'key1':'人生得意须尽欢,','key2':'莫使金樽空对月。','key3':'天生我材必有用,','key4':'千金散尽还复来。'}
var['key1'] = "这句诗忘了。。"
print(var)
# {'key1': '这句诗忘了。。', 'key2': '莫使金樽空对月。', 'key3': '天生我材必有用,', 'key4': '千金散尽还复来。'}
# 键存在,就直接该值

3.删除(只能删除存在的,不然报错)

var = {'key1':'人生得意须尽欢,','key2':'莫使金樽空对月。','key3':'天生我材必有用,','key4':'千金散尽还复来。'}
del var["key1"]
print(var)
# {'key2': '莫使金樽空对月。', 'key3': '天生我材必有用,', 'key4': '千金散尽还复来。'}

# 删除不存在的(对上面升级)
var = {'key1':'人生得意须尽欢,','key2':'莫使金樽空对月。','key3':'天生我材必有用,','key4':'千金散尽还复来。'}
if 'key5' in var:   # 如果存在
    del var['key5']
print(var)
# {'key2': '莫使金樽空对月。', 'key3': '天生我材必有用,', 'key4': '千金散尽还复来。'}

1.6-字典推导式
import random
var = {i:random.randint(10,100for i in range(1,5)}
print(var)
# {1: 27, 2: 15, 3: 77, 4: 36}

# 根据推导式创建
team = ["李白","杜甫","王伟","白居易"]
untitle = ["天蝎",'狮子',"双鱼","白羊"]
dictionary = {i:j+'座' for i,j in zip(team,untitle)}
print(dictionary)

4.0-集合

1.1-集合的创建

直接使用“ {} ”创建集合,或者使用 set()函数将列表,元组等可以迭代对象转化为集合

通常推荐使用第二方法:set() 函数

setname = {element 1,element 2,element 3,...,element n}
# setname : 集合名称
# element ;集合中的元素
set1 = {'水瓶座','射手座','双鱼座','双子座'}
set2 = {3,1,4,1,5,9,2,6}
ser3 = {'Python',28,('人生苦短','我用Python')}

print(set1)
print(set2)
print(set3)

'''
{'射手座', '双子座', '双鱼座', '水瓶座'}
{1, 2, 3, 4, 5, 6, 9}
{28, 'Python', ('人生苦短', '我用Python')}
'''

1.2-使用set()函数创建

使用 set() 函数将列表,元组等其他科迭代对象转化为集合

setname = set(iteration)

setname:表示集合名称

iteration:表示要转化为集合的可迭代对象,可以是列表,元组,range对象等

set1 = set("人生得意须尽欢")
set2 = set([3.1415926,1.424,51.41])
set3 = set(('天生我材必有用','千金散尽还复来。'))

树莓派GPIO引脚

一.基础

1.导入库:

import RPi.GPIO as GPIO

2.设置引脚模式:

GPIO.setmode(GPIO.BMC/BOARD) #BMC或者BOARD模式

3.设置引脚为输入:

GPIO.setup(pin,GPIO.IN)

4.设置引脚为输出:

GPIO.setup(pin,GPIO.OUT)

5.设置初始化高电平:

GPIO.setup(pin,GPIO.OUT,initial=GPIO.HIGH)

6.设置初始化为低电平:

GPIO.setup(pin,GPIO.OUT,initial=GPIO.LOW)

1.流水灯实验

import RPi.GPIO as GPIO      # 引入 GPIO 模块
import time                  # 引入 time 模块
GPIO.setmode(GPIO.BCM)       # 使用 BCM 编号
GPIO.setup(22,GPIO.OUT)      # 将 GPIO22 设置为输出
GPIO.setup(23,GPIO.OUT)      
GPIO.setup(24,GPIO.OUT)
GPIO.setup(25,GPIO.OUT)
GPIO.setup(26,GPIO.OUT)
GPIO.setup(27,GPIO.OUT)
while True:
          GPIO.output(22,GPIO.HIGH)    # 将GPIO22设置为高电平,点亮
          time.sleep(0.5)              # 等待0.5s
          GPIO.output(22,GPIO.LOW)     # 将GPIO22设置为低电平,熄灭
          time.sleep(0.5)              # 等待0.5s
          GPIO.output(23,GPIO.HIGH)
          time.sleep(0.5)
          GPIO.output(23,GPIO.LOW)
          time.sleep(0.5)
          GPIO.output(24,GPIO.HIGH)
          time.sleep(0.5)
          GPIO.output(24,GPIO.LOW)
          time.sleep(0.5)
          GPIO.output(25,GPIO.HIGH)
          time.sleep(0.5)
          GPIO.output(25,GPIO.LOW)
          time.sleep(0.5)
          GPIO.output(26,GPIO.HIGH)
          time.sleep(0.5)
          GPIO.output(26,GPIO.LOW)
          time.sleep(0.5)
          GPIO.output(27,GPIO.HIGH)
          time.sleep(0.5)
          GPIO.output(27,GPIO.LOW)
          time.sleep(0.5)
GPIO.clearnup()      # 清理释放 GPIO 
"""
释放
一般来说,程序到达最后都需要释放资源,这个好习惯可以避免偶然损坏树莓派。释放脚本中的使用的引脚:

GPIO.cleanup()
注意,GPIO.cleanup()只会释放掉脚本中使用的GPIO引脚,并会清除设置的引脚编号规则。
"""

import RPi.GPIO as GPIO #引入函数库

import time

RPi.GPIO.setmode(GPIO.BOARD) #设置引脚编号规则

RPi.GPIO.setup(11, RPi.GPIO.OUT) #将11号引脚设置成输出模式

while True:
 GPIO.output(channel, 1#将引脚的状态设置为高电平,此时LED亮了
 time.sleep(1#程序休眠1秒钟,让LED亮1秒
 GPIO.output(channel, 0#将引脚状态设置为低电平,此时LED灭了
 time.sleep(1#程序休眠1秒钟,让LED灭1秒

python 获取游戏手柄

一.方法

  • pygame.joystick.Joystick.init() — 初始化
  • pygame.joystick.Joystick.quit() — 卸载Joystick
  • pygame.joystick.Joystick.get_init() — 检查Joystick是否初始化
  • pygame.joystick.Joystick.get_id() — 获得Joystick ID
  • pygame.joystick.Joystick.get_name() — 获得 Joystick 系统名称
  • pygame.joystick.Joystick.get_numaxes() — 获得 Joystick 操纵轴的数量
  • pygame.joystick.Joystick.get_axis() — 获得操纵轴的当前坐标
  • pygame.joystick.Joystick.get_numballs() — 获得 Joystick 上追踪球的数量
  • pygame.joystick.Joystick.get_ball() — 获得追踪球的相对位置
  • pygame.joystick.Joystick.get_numbuttons() — 获得 Joystick 上按钮的数量
  • pygame.joystick.Joystick.get_button() — 获得当前按钮状态
  • pygame.joystick.Joystick.get_numhats() — 获得 Joystick 上帽键的数量
  • pygame.joystick.Joystick.get_hat() — 获得 的位置

二.详解

1.pygame.joystick.Joystick.init()

初始化 Joystick。

类型:init() -> None

Joystick 必须被初始化来获得大多数有关控制的信息。

当 Joystick 初始化之后,Pygame 事件队列将获取 Joystick 的输入。

多次调用这个方法是安全的。

分类:

后端

标签:

Python

作者介绍

A苏弋
V1