python 笔记

第 0 关(涉及的函数有print 和 type)

print函数不加引号才是计算机运行,加了引号计算机不思考直接输出。

type可以帮你查询函数类型

第 1 关(加减乘除,取模,取整余)

print(2**3)
#幂 (这里是2的3次方)
#输出为   8

print(10%3)
#取模 (做除法返回余数)
#输出为   1

print(10//3)
#取整除    (做除法返回商的整数部分)
#输出为  3



第 2 关 if 语句(涉及到的函数有if elif else)

historyscore = 26
if historyscore >= 60:
    print('你已经及格')
    #前面已经有了一个if所以这里要继续缩进
    if historyscore >= 80:
        print('你很优秀')
    else:
        print('你只是一般般')
#这个else时与第一个if相对应的       
else:
    print('不及格')
 **在不同的

if函数中else要顶格其余的if和elif要缩进**

第 3 关(涉及到的函数有 input)

input 函数在用之前要必须先赋值(必须) 例如:

name = input("请输入你的名字")
print("您好" + name)

而且 input 返回的函数一定类型是字符串(str)。
如果想要改变 input 返回的值,可以强制转化 如(需从源头转换)

age = int (input ("请问您今年贵庚了?") )
#将 input 中的类型强制转换为整数类型
print(" 您已经" + age + "啦")
 

第 4 关 列表和字典(涉及到的函数有 append, del , )

列表的使用:
**左右空,取到头,左要取,右不取。**如:
#输入:

list2 = [5,6,7,8,9]            
print(list2[:])
print(list2[2:])
print(list2[:2])
print(list2[1:3])
print(list2[2:4])
#输出:

[5, 6, 7, 8, 9]
[7, 8, 9]
[5, 6]
[6, 7]
[7, 8]

另外,我们要注意一个细节:偏移量取到的是列表中的元素,而切片则是截取了列表的某部分,所以还是列表,请你运行下列代码看一看
#输入:

students = ['小明','小红','小刚']
print(students[2])
print(students[2:])
#

输出:

小刚
【‘小刚’】

append 函数:给列表加入元素 如:
#输入:

students = ['小明','小红','小刚']
students.append("小美")
#加入一个元素且这个元素会出现在末尾
print(students)

#输出:

[“小明”,“小红”,“小刚”,“小美”]

del函数:将元素从列表中删除 事实上del语句非常方便,既能删除一个元素,也能一次删除多个元素(原理和切片类似,左取右不取) 如:
#输入:

students = ['小明','小红','小刚','小美']
del students[1]
print(students)

#输出:

[“小明”,“小刚”,“小美”,]

给字典增加元素:
#输入

scores = {
   '小明':95,'小红':90,'小刚':90}
del scores['小刚']
scores['小刚'] = 92
#把小刚的成绩赋值为92
scores['小美'] = 85
#加入小美并赋值为85
print(scores)

#输出:
{“小明”:95,“小红”:90,“小刚”:92,“小美”:85}

列表中的数据是有序排列的,而字典中的数据是随机排列的。
列表有序,要用偏移量定位;字典无序,便通过唯一的键来取值。

**列表和字典的第一个共同点:在列表和字典中,如果要修改元素,都可用赋值语句来完成。**如:

#输出:
list1 = ["小红","小明","小刚"]
list1[1] ="小蓝"
#把[1]中小明替换成小蓝
print(list1)
dict1 = {
   "小明":"男"}
dict1["小明"] = "女"
#把小明的值“男”替换成“女”
print(dict1) 
#输出:
["小红","小蓝","小刚"]
{
   "小明"="女"}


  

**第二个共同点其实之前已经略有提及,即支持任意嵌套。除之前学过的数据类型外,列表可嵌套其他列表和字典,字典也可嵌套其他字典和列表。**如:

#输入(列表嵌套列表):
students = [['小明','小红','小刚','小美'],['小强','小兰','小伟','小芳']]
print(students[1][3])
#输出:
小芳
#输入(字典嵌套字典):
scores = {
   
    '第一组':{
   '小明':95,'小红':90,'小刚':100,'小美':85},
    '第二组':{
   '小强':99,'小兰':89,'小伟':93,'小芳':88}
    }
print(scores['第二组']['小芳'])
#输出:
88

看看列表和字典相互嵌套的情况

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


#最外层是中括号,所以是列表嵌套字典,先判断字典是列表的第几个元素,再找出要取出的值相对应的键

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

第 5 关 for while 循环(上 )(涉及到的函数有 range )

for

①列表循环

#输入
for i in [1,2,3,4,5]:
    print(i)
print("事情都做完了最后输出什么?") 
#会输出最后的值
print(i)  
#输出
1
2
3
4
5
事情都做完了最后输出什么?
5

②字典循环

#输入
dict = {
   "日本" : "东京","英国" : "伦敦" , "法国" : "巴黎"}
for i in dict :
    print(i)
#输出的是键 

#输出
日本
英国
法国
#如果想输出字典里的值
dict = {
   "日本" = "东京","英国" = "伦敦" , "法国" = "巴黎"}
for i in dict :
    print(dict[i])
#输出的就是
东京
伦敦
巴黎    
 

③字符串循环

#输入
for i in "吴承恩"print(i)
#会将字符串一个个的拆解    
#输出
吴
承
恩
    
    
    

range 函数:

#输入
for i in range (3):
#range(n)会输出0到n-1
    print(i)
#输出
0
1
2

#还可以这样
for i in range (13,17):
#左取右不取
    print(i)
#输出
13
14
15
16

#还能这样
for i in range (0,10,3):
#从0数到9(取头不取尾),步长为3
    print(i)
#输出
0
3
6
9    
    
   

while

 a = 0
 while a < 5 :
 #当a<5时执行下面语句
     a = a + 1
     print(a)
 #输出
 1
 2
 3
 4
 5
 

number = " "
#将变量赋予一个空值
while number != "47":
#当number不等于47时执行下面与语句
    number = input ("请问您什么时候生日?")
print("是你了")    
#输出
请问您什么时候生日?47
#只有输入47的时候程序才会结束不然他会一直循环
是你了



a = 0
while a <5 :
    a = a +1 
print(a)
#输出
5
#有缩进的时候,print(a)也是循环中的“办事流程”,会将数字逐一打印。没有缩进的时候,循环中的“办事流程”就只有做加法,print(a)也就只会打印循环结束时的最后一个数字。    
    
 

    

练习

#每换一次座位,第一位变成第三位,后面两位都往前一位
students = ["小明","小红","小刚"]
for i in range (3):
    students1 = students.pop(0)
    #将students中的第一元素移出并删除,并将其赋值与students1
    students.append(students1)
    #被删除元素的students再在末尾增加之前所删除的元素
    print(students)

第 6 关 for white 循环(下)(bool, in not in, continue, break pass )

布尔值:
除了0,None,"",{},[] 以外的都是真值

#在计算机中判断对错:
print("3<5")
print("3>5")
#引号可以去掉
#输出:
True
False

bool函数(bool函数来查看一个数据会被判断为真还是假):

print(bool(0))
print(bool(""))
print(bool(None))

print(bool(1))
print(bool("随便的东西"))


#输出:
False
False
False

True
True

in 的意思是“判断一个元素是否在一堆数据之中”,【not in 】反之。

list = [1,2,3,4,5]
a=1
print(bool(a in list))
print(bool(a not in list))
#输出:
True
False
#如果涉及到的数据集合是字典的话,【in】和【not in 】就可以用来判断字典中的某个

break语句(必须与if语句连用):

break的意思是“打破”,是用来结束循环的,一般写作if…break
【注】:Tab键和空格键不能同时混用

while True:
    number = int(input("请输入您的生日"))
    if number = 47:
        #如果number等于47终止循环
        break

print("是你了")        


continue语句(continue的意思是继续这个子句也是在循环内部使用的。当某个条件被满足的时候,触发continue语句,将跳过之后的代码,直接回到循环的开始。)注(必须与if语句连用):

while True:
    q1  = input ("我的外号叫什么?")
    if q1 != "klm":
        #如果q1等于klm跳过这个循环进入之后的代码
        continue
    print("答对了,下一个问题")
    q2 = input("你的外号叫什么?")
    if q2 != "mtd":
        #如果q2等于mtd就跳过这个循环进入之后的代码
        continue
    print("就差最后一个问题了")    
    q3 = input("你的生日是什么时候?")
    if q3 != 4.7:
    #如果q3等于4.7就终止第一行的while True循环
        break
print("是你了")        
    
   

pass语句(他是跳过的意思,什么都不做)

else语句:

for i in range (5):
     a = int(input ("你有五次机会输入正确数字"))
     if a == 47:
         print("bingo,else语句不会生效")
         break
else:
    print("你错过了机会,else语句生效了")

#也可以用while语句
i = 1
while i < 5 :
    a = int(input("你有五次机会输入正确数字"))
    i = i+1
    if a == 47:
        print("bingo,else语句不会生效")
        break
else:
    print("你错过了机会,else语句生效了")        

       
        

练习

#两个认罪都判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判1年b判20年")
    elif a=="否" and b = "是":
        print("a判20年b判1年")
    elif a=="是" and b=="是":
        print("ab都判10年")
    else :
        print("ab都判3年")
        break
print("实验第" + str(n) + "组取得最优解")    
for i in range(n):
    print("第" + str(i+1) "组实验的结果为" + str(list_answer[i]))

第 7 关 小游戏大学问 (善用变量)(涉及到的函数 import time,random %(占位符) format ):

import time     #调用time 模块
time.sleep(secs)
#使用time模块下的sleep函数,()里填的是时间间隔的秒数(sconds  简称secs)
#time.sleep(1.5)就表示停留1.5秒后再运行代码
  

调用random函数:

import random
a = random.randint(1,100)
#随机生成1-100范围内(含1和100)的整数,并赋值给变量a
print(a)
#会输出一个1-100 的随机整数
 
 

(需要看第4关的操作代码)

格式符%(先占住一个位置)
%s 表示 字符串显示
%f 表示 浮点数显示
%d 表示 整数显示

占完位置之后,我们要以%的形式在后面补上要填充的内容,如此一来我们就免去了转换类型的烦恼。如果是多个数据,就要把它们放进括号,按顺序填充,用逗号隔开

print("血量:" + str("player_life") + "攻击" + str("player_attack"))
print("血量: %s 攻击:%s"   %("player_life","player_attack"))
#因为player_life 和 player_attack 未被定义,不能直接引用

print("我的幸运数字是%d和%d" %(4,7))
#输出
我的幸运数字是47

练习:

import time,random
while True:
        player_win = 0
        enemy_win = 0
        for i in  range (1,4):
            print("现在是第 %s 局" %i )
            time.sleep(1.5)
            player_attack = random.randint(70,100)
            player_life = random.randint(130,150)
            enemy_attack = random.randint(70,100)
            enemy_life = random.randint(130,150)
            #随机赋予玩家和敌人的血量和攻击力
            print("玩家的血量为 %s 攻击力为 %s" %(player_attack,player_life))
            print("-------------------")
            time.sleep(1.5)
            print("敌人的血量为 %s 攻击力为 %s" %(enemy_attack,enemy_life))  
            print("-------------------")
            time.sleep(1.5)
            #显示出玩家和敌人的血量和攻击力
            while player_life >0 and enemy_life>0:
                enemy_life = enemy_life - player_attac
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值