风云编程python基础语法(1)

未完待续,持续更新中...

99**2 = 99^2

一、print()函数

二、数据类型

三、条件判断

四、input()函数

五、列表和字典+元组

列表list

1、格式:roommates=['LY','HZY','CQR','PQJ','ZYL']   #roommates为列表名

注意:(1)元素序号从0开始

                (2)列表中的元素可以是字符串、数字和列表本身(支持镶嵌);

                (3)roommates[-2] 指倒数第二个元素,即PQJ

2、提取元素:左右空,取到头;左取右不取。

roommates[0]  'LY'

roommates[:]  全部

roommates[2:]  'CQR','PQJ','ZYL',从序号2到最后

roommates=[:2]  'LY','HZY',从第一个到序号1

3、增加元素:roommates.append('YZN')

append函数后的参数要满足数量为1(单个列表也可视为1个元素)

append添加的元素会在列表的末尾

4、删除元素:del roommates[]  #类提取

字典dict

1、格式:scores={'小明':90, '小红':98, '小刚':90}   # 字典名={'键1':值1, '键2':值2, '键3':值1}

键key具有唯一性,值value则可重复,一组键和值构成一个键值对。

2、取:a=scores['小红']   # a=90

3、删:del 字典名[键]

4、增:字典名[键] = 值

列表和字典的异同

异:列表有序,要用偏移量定位;字典无序,便通过唯一的键来取值。

同:1、如果要修改元素,都可用赋值语句来完成。2、支持任意嵌套。除之前学过的数据类型外,列表可嵌套其他列表和字典,字典也可嵌套其他字典和列表。

# 字典嵌套列表,先找到字典的键对应的列表,再判断列表中要取出元素的偏移量
students = {
'第一组':['小明','小红','小刚','小美'],
'第二组':['小强','小兰','小伟','小芳']
}
print(students['第一组'][3])
#取出'第一组'对应列表偏移量为3的元素,即'小美'

#列表嵌套字典,先判断字典是列表的第几个元素,再找出要取出的值相对应的键
scores = [
{'小明':95,'小红':90,'小刚':100,'小美':85},
{'小强':99,'小兰':89,'小伟':93,'小芳':88}
]
print(scores[1]['小强'])
#先定位到列表偏移量为1的元素,即第二个字典,再取出字典里键为'小强'对应的值,即99。

元组tuple

元组和列表都是序列,提取的方式也是偏移量,如 tuple1[1]、tuple1[1:]。

元组也支持任意的嵌套。

合并列表

        用append函数 & 用extend函数

list1 = [91, 95, 97, 99]
list2 = [92, 93, 96, 98]
for i in list2:
    list1.append(i)
print(list1)
list1 = [91, 95, 97, 99]
list2 = [92, 93, 96, 98]
# 把 A 组成绩赋值给一个新列表,用来存合并的成绩——这个细节要注意!
list3 =list1
list3.extend(list2)
print(list3)

列表排序

        list3.sort()

练习:计算平均分,以及把低于平均分的成绩也打印出来。

        使用数学知识 average = sum/len(score)

scores=[91, 95, 97, 99, 92, 93, 96, 98]
sum=0

for score in scores:
    sum = sum + score
    average = sum/len(scores)
print('平均成绩是:{}'.format(average))

        使用拓展程序库numpy

import numpy as np
scores=[91, 95, 97, 99, 92, 93, 96, 98]
score=[]

average=np.mean(scores)
print('平均分为{}'.format(average))

for i in scores:
    if i<average:
        score.append(i)
        continue
print('低于平均分的为{}'.format(score))

六、循环

for...in...(一群排队办业务的人)

in表示从“一群排队办业务的人”(字符串、列表、字典等)中依次取值,在循环的过程中,“一群排队办业务的人”会被依次取出,然后走进房间i去办理业务。

for i in [1,2,3,4,5]:

    print(i)    #依次打印出1 2 3 4 5 ,此过程被称为遍历

print('事情全部办完了!现在留在空房间里的人是谁?')

print(i)     #会打印出5

i表示元素item,可以为字典、列表和字符串'吴承恩'(会依次打印出吴、承、恩),但不能为整数、浮点数。

for循环(办事流程)

for i in [1,2,3,4,5]: ​

        print(i*5)

此处流程很简单,都是print(i*5)。然后在i=1的情况下,执行一遍流程;在i=2的情况下,再执行一遍流程……一直执行到i=5,也就把这群人的事情全部办完了。

range()函数

使用range(x)函数,可以生成一个从0到x-1的整数序列。

使用range(a,b) 函数,可以生成了一个取头不取尾的整数序列。

使用range(a,b,c)函数,可以生成从a到b(取头不取尾),数的间隔为c的整数序列,c不填时默认间隔为1。

while循环

“在一定的条件下放行,然后按照流程办事”

for和while的异同

循环的工作量是否确定

工作量确定的时候,我们就可以让for循环来完成重复性工作;

工作量不确定时,可以让while循环来工作。

练习(pop函数)

小明、小红、小刚是同班同学,且坐在同一排,分别坐在第一位、第二位、第三位。由于他们的身高都差不多,所以,老师计划让他们三个轮流坐在第一位。每次换座位的时候,第一位变第三位,后面两位都往前一位。

w1用for循环实现:

students = ['小明','小红','小刚']
for i in range(3):
    student1 = students[0]
    students = students[1:]
    students.append(student1)
    print(students)

w2用pop()函数实验

列表名.pop():移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。(移除:取到元素+删除列表中的元素)

students = ['小明','小红','小刚']
for i in range(3):
    student1=students.pop(0)
    students.append(student1)
    print(students)

七、布尔值+新语句

布尔运算与布尔值

1、计算机用数据做判断的过程

        用数值做逻辑判断的过程叫做布尔运算,布尔运算会产生布尔值。布尔值分为TURE和FALSE,它门像开关一样决定if语句和while循环语句是否运行。

2、布尔运算的三种方式

        1)两个数值作比较

比较运算符:等于==,不等于!=,大于>,小于<,大于等于>=,小于等于<=

        2)直接用数值做运算

python中的真假判断:(左假右真)

False True

0 任意整数或浮点数

‘’(空字符串) ‘编程’

[] [1,2,3]

{} {1:'春风',2:'秋风'}

None

可以使用bool()函数来查看一个数据会被判断为真True还是假False。

        3)布尔值之间的运算。     

and、or、not

in、not in :列表中是否存在某个元素、字典中是否存在某个【键】

break、continue、pass、else语句

break:从循环内跳出(必须和if语句连用)

while True:    
    print('上供一对童男童女')
    t = input('孙悟空来了吗')
    if t == '来了':
        break
print('孙悟空制服了鲤鱼精,陈家庄再也不用上供童男童女了')

continue:将跳过之后的代码,直接回到循环的开始(必须和if语句连用)

for i in range(5):
    print('明日复明日')
    if i==3:  # 当i等于3的时候触发
        continue # 回到循环开头
    print('这句话在i等于3的时候打印不出来')

#result
明日复明日
这句话在i等于3的时候打印不出来
明日复明日
这句话在i等于3的时候打印不出来
明日复明日
这句话在i等于3的时候打印不出来
明日复明日
明日复明日
这句话在i等于3的时候打印不出来

pass:什么都不做(常用在if语句下)

a = int(input('请输入一个整数:'))
if a>100:
    pass
else:
    print('你输入了一个小于100的数字')

else:用在循环语句后,如果正常结束循环,就执行else语句(没有遇到break)

i = 0
while i<5: 
    a = int(input('请输入0结束循环,你有5次机会:'))
    i = i+1
    if a == 0:
        print('你触发了break语句,导致else语句不会生效。')    
        break
else:
    print('5次循环你都错过了,else语句生效了。')

练习

1)下面,会将电影的影片名和主演放在字典里,需要你补充一些代码,让其他人只要输入演员名,就打印出:××出演了电影××。

movies = {
'妖猫传':['黄轩','染谷将太'],
'无问西东':['章子怡','王力宏','祖峰'],
'超时空同居':['雷佳音','佟丽娅'],
}

actor=input('你想查询哪个演员?')
for movie in movies:
    actors=movies[movie]
    if actor in actors:
        print(actor+'出演了'+movie)

2)“囚徒困境”+社会实验

让程序收集两名囚犯的认罪情况,进而决定他们的判决:
两人都认罪,则各判10年;一个认罪一个抵赖,则前者判1年,后者判20年;两人都抵赖,各判3年。只有两人都不认罪,程序才会停止。
现在有一个社会学家,在不同的人群中做这个实验,一旦遇到都不认罪的情况,就停止该人群中的实验。同时,他希望程序能记录每一对实验者的选择,以及记录第几对实验者都选择不认罪。请你帮帮他吧。

n=0
list_answer=[]
while True:
    n+=1
    a=input('A,你认罪吗?请回答认罪或者不认罪')
    b=input('B,你认罪吗?请回答认罪或者不认罪')
    list_answer.append([a,b])
    if a=='认罪' and b=='认罪':
        print('A和B各判10年')
    elif a=='认罪' and b=='不认罪':
        print('A判1年,B判20年')
    elif b=='认罪' and a=='不认罪':
        print('B判1年,A判20年')
    else:
        print('A和B各判3年')
        break
print('第'+str(n)+'对实验者选择了最优解')
for i in range(n):
    print('第'+str(i+1)+'对实验者的选择是'+str(list_answer[i]))

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值