python-小甲鱼

000绪论

001我和python的第一次亲密接触

002

idle

print('------我爱鱼c工作室--------')
temp = input("不妨猜一下小甲鱼现在心里想的是那个数字:")
guess = int (temp)
if guess == 8;
    print("我草,你是小甲鱼心里的蛔虫么?!")
    print("哼,猜中了也没有奖励!")
else:
    print ("猜错啦, 小甲鱼现在心里想的是8!")
print ("游戏结束,不玩啦^_^")
dir(__builtins__)   #调出BIF
help(input)      #input用法

作业:

00试题

0.什么是BIF

1.用课堂上甲鱼的方法数一数python一共多少个bif

2.在Python看来:‘FishC’和‘fishc’一样么

3.在小甲鱼看来python中什么是最重要的?你赞同么

4.这节课例子中出现了”=“和‘==’,他们表示不同含义,你在编程过程中会不小心把‘==’误写成‘=’么?有没有什么好的办法可以解决这个问题呢?

5,你听过拼接这个词么

01 动动手

0 0. 编写程序:hello.py,要求用户输入姓名并打印“你好,姓名!”

1. 编写程序:calc.py 要求用户输入1到100之间数字并判断,输入符合要求打印“你妹好漂亮”,不符合要求则打印“你大爷好丑”

2. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!

答案:

试题:

BIF 就是 Built-in Functions,内置函数。为了方便程序员快速编写脚本程序(脚本就是要编程速度快快快!!!),Python 提供了非常丰富的内置函数,我们只需要直接调用即可,例如 print() 的功能是“打印到屏幕”,input() 的作用是接收用户输入(注:Python3 用 input() 取代了 Python2 的 raw_input(),用法如有不懂请看视频讲解)

1 在 Python 或 IDLE 中,输入 dir(__builtins__) 可以看到 Python 提供的内置方法列表(注意,builtins 前后是两个下划线哦)其中小写的就是 BIF。如果想具体查看某个 BIF 的功能,比如 input(),可以在 shell 中输入 help(input),就会得到这个 BIF 的功能描述。哦,答案应该是 68 个,不信你自己数数看,你们肯定没有自己完成作业就来看答案!哼~ T_T

2 不一样,因为 Python 是一个“敏感的小女孩”,所以不要试图欺骗她,对 Python 来说,fishc 和 FishC 是完全不同的两个名字,所以编程的时候一定要当心。不过 Python 会帮助解决可能因此出现的问题,例如只有当标识符已经赋值后(还记得吗,小甲鱼在课堂中说过 Python 的变量是不用先声明的)才能在代码中使用,未赋值的标识符直接使用会导致运行时错误,所以你很快就可以根据经验发现此问题。

3 缩进!在小甲鱼看来,缩进是 Python 的灵魂,缩进的严格要求使得 Python 的代码显得非常精简并且有层次(小甲鱼阅读过很多大牛的代码,那个乱......C语言不是有国际乱码大赛嘛......)。

所以在 Python 里对待缩进代码要十分小心,如果没有正确地缩进,代码所做的事情可能和你的期望相去甚远(就像C语言里边括号打错了位置)。

如果在正确的位置输入冒号“:”,IDLE 会自动将下一行缩进!

C语言的话,如果 if( c == 1 ) 写成 if( c = 1 ),程序就完全不按程序员原本的目的去执行,但在 Python 这里,不好意思,行不通,语法错误!Python 不允许 if 条件中赋值,所以 if c = 1: 会报错!

5 在一些编程语言,我们可以将两个字符串“相加”在一起,如:'I' + 'Love' + 'FishC' 会得到 'ILoveFishC',在 Python 里,这种做法叫做拼接字符串。

动动手

name=input('请输入你的名字:')
print('你好,'+name+'!')

question = input('请输入1到100之间的数字:')
num=int(question)
if num<=100:
    print('你妹妹好漂亮')
else:
    print('你大爷好丑')

003 小插曲之变量和字符串

004 游戏改进

一、条件分支

猜错的时候程序提示用户当前输入打了还是小了

temp = input('猜个数:')
guess = int(temp)
if guess == 8:
    print('挖草')
    print('没奖励')
else:
    if guess > 8:
        print('大了大了')
    else:
        print('小了小了')
print('退出')
        

二、 while循环

 程序应该提供多次机会给用户猜测,(程序需要重复运行某些代码)

temp = input('猜个数:')
guess = int(temp)
while guess !=8:
    temp = input('哎呀,重新输入:')
    guess = int(temp)
    if guess == 8:
        print('挖草')
        print('没奖励')
    else:
        if guess > 8:
            print('大了大了')
        else:
            print('小了小了')
print('退出')
        

改进:到达一定次数就不能继续(*使用and)

三、引入外援 (每次运行程序产生的答案都是随机的)

1、random 模块

randint(),返回随机数

import random
secret = random.randint(1,10)
guess =0
time=3
print('猜个数:',end=' ')
while (guess !=secret) and (time>0):
    temp = input()
    guess = int(temp)
    time=time-1
    if guess == secret:
        print('挖草')
        print('没奖励')
    else:
        if guess > secret:
            print('大了大了')
        else:
            print('小了小了')
        if time > 0:
            print('再来一次:',end='')
        else:
            print('机会用光了')
        
print('退出')
        

作业

1

temp = input('请输入一个整数:')
number = int(temp)
i = 1
while number:
    print(i)
    i = i + 1
    number = number - 1
    

2

temp = input('请输入一个整数:')
number = int(temp)
while number:
    i = number - 1
    while i:
        print(' ', end = '')
        i = i - 1
    j = number
    while j:
        print('*', end = '')
        j = j - 1
    print()
    number = number - 1

005 python的数据类型

一、数值类型

1、整型:(整数)

2、浮点型(小数)

3、e记法(科学计数法)

4、布尔类型

二、类型转换

作业

006 运算符优先级问题

幂运算 **

正负+-

算数操作符* / //  + -

比较操作符 < <= > >= ==   !=

逻辑运算符 not and or

007 、008了不起的分支和循环(while)

while 条件:
    循环体

打飞机小游戏

加载背景音乐
播放背景音乐(设置单曲循环)
我方飞机诞生
interval = 0
while True:
    if 用户是否退出游戏
        退出程序

    interval += 1
    if interval == 50:
        interval = 0
        小飞机诞生

    小飞机移动一个位置
    屏幕刷新

    if 用户鼠标移动:
        我方飞机位置 = 鼠标位置
        屏幕刷新

    if 我方小飞机与飞机发生肢体冲突:
        我方挂,播放撞击音乐
        修改我方飞机图案
        打印(game over)
        停止音乐播放,最好淡出

008 了不起的分支和循环

三元操作符

x, y = 4, 5
if x < y:
    small = x
else:
    small = y


small = x if x < y else y

作业

x, y, z  = 4, 5, 6

small1  =  x if x < y else y
small2  =  small1 if small1 < z else z
print(small2)


small = x if (x < y and x < z ) else ( y if y < z else z)
print(small)

009 了不起的分支和循环(for)

for  目标 in 表达式:
    循环体


range([strat,] stop [,step=1])

break (终止当前循环)

continue 

for i in range (10):
    if i%2 != 0:
        print(i)
        continue         #满足条件直接打印并且从for再来/ 不满足条件继续后面语句
    i += 1
    print(i)
     
(i为奇数打印,i为偶数+2 打印)   

作业:(水仙花数)

(//取整 、%求余 、

法一、
for i in range (100,1000):
    if (i//100)**3 + (i//10%10)**3 + (i%10)**3 == i:
        print(i)
        

010 列表list一个打了激素的数组1(中括号【】)

011 列表一个打了激素的数组2

012 列表一个打了激素的数组3

以上三个没保存,第五章(1)列表 - pf42280 - 博客园 (cnblogs.com)参考此链接

013 元组 带上了枷锁的列表

元组与列表的不同

列表中的元素可以任意修改,可以任意插入或者删除一个元素,
而元组不行,元组是不可变的(像字符串一样),
所有别指望对元组进行原地排序等高级操作

#列表创建用中扩号,元组用小扩号

0 创建和访问一个元组

#用小括号扩起来
tuple1 = (1,2,3,4,5,6,7,8)
print(tuple1)

#访问方式,与列表无异
print(tuple1[1])    #结果2

print(tuple1[5:])   #结果 (6, 7, 8)
print(tuple1[:5])   #结果  (1, 2, 3, 4, 5)

#使用分片的方式来复制一个元组
tuple2 = tuple1[:]   #分片方式和列表一样
print(tuple2)       #结果 (1, 2, 3, 4, 5, 6, 7, 8)

元组的标志符号:逗号

temp = (1)
print(type(temp))    #type() 用于返回参数的类型
#结果 <class 'int'>


temp = 1,2,3
print(type(temp))
#结果 <class 'tuple'>



temp = ()
print(type(temp))
#结果<class 'tuple'>

#只有一个元素
temp1 = (1,)

#再次证明逗号起决定作用
a = 8*(8)
print(a)  #64

b = 8*(8,)
print(b)  #结果 (8, 8, 8, 8, 8, 8, 8, 8)

02 更新和删除元组

#使用链接符(+)来合并成一个新元组
temp = ('小鸡','小鸭','小猪')

temp = temp[:2] + ('小甲鱼',) + temp[2:]
print(temp)
# ('小鸡', '小鸭', '小甲鱼', '小猪')

temp = temp[:2] + temp[3:]
print(temp)
#('小鸡', '小鸭', '小猪')

删除整个元组用del

del temp

print(temp)


#NameError: name 'temp' is not defined

很少用del删除,因为python的回收机制自动删除

03 其他操作符 见上列表,一样的

014 字符串:各种奇葩的内置方法 “”

01 字符串与前面介绍的列表、元组有相似之处

1、字符串分片

#字符串分片
str1  = " I love fishc.com!"
a = str1[:6]
print(a)
#结果: I lov

2、字符穿利用索引取值

#字符串利用索引取值
str1  = " I love fishc.com!"

print(str1[5])

#结果: v

3、字符串的拼接

#字符串的拼接
str1  = " I love fishc.com!"

b = str1[:6] + '插入的字符串' + str1[6:]

print(b)

#  I lov插入的字符串e fishc.com!#注意:这种拼接的方式是将变量指向了新的字符串b,旧的字符串str1还在

4、比较运算符、逻辑运算符、成员关系操作符等操作和列表元素一样,不再赘述

二、各种内置方法

 python字符串的方法:https://www.cnblogs.com/hcxy2007107708/articles/10004856.html

演示常用方法

capitalize()

# capitalize() 把字符串的第一个字母大写
>>> str1='qijing'
>>> str1.capitalize()
'Qijing'

  center(width)

# center(width) 将字符串剧中至长度width的新字符串
>>> str1
'qijing'
>>> str1.center(20)
'       qijing       '

 ,count(sub,star,end)

 # ,count(sub,star,end)  sub在[star ,end]中出现次数
>>> str2 = 'DAXIExiaoxie'
>>> str2.count('xi')
2
>>> str2.count('xi',0,8)
1

find(sub[,start[,end]])和index()

#查找sub子字符串在字符串中的位置    
  
str1 = "L love fishc.com"
print(str1.find('fishc'))    #结果 7

print(str1.find('good'))     #结果 -1   #找不到会返回-1

print(str1.index('fishc'))   #结果 7

print(str1.index('good'))    #找不到,会抛出异常,ValueError: substring not found

     join(连接字符串)

# join 是以字符串为分隔符,插入到sub字符串中的所有字符之间
>>> str1= 'qijing'
>>> str1.join('12345')
'1qijing2qijing3qijing4qijing5'
#join 是以字符串作为分隔符,插入到sub字符串中的所有字符之间
a = 'x'.join("Test")
print(a)    #结果 Txexsxt

b = '_'.join('Fishc')
print(b)   #结果 F_i_s_h_c

#使用join链接字符串效率比字符串拼接高
c = "I" + " " +"love" + " " +'fishc.com'
print(c)    #结果 I love fishc.com

d = ' '.join(['I','love','fishc.com'])
print(d)   #结果 I love fishc.com

replace(old,new[,count])

#替换指定的字符串
str1 = "l love you"
a = str1.replace("you","fishc.com")
print(a)        #结果 l love fishc.com
print(str1)     #还是原来的,没有变化

split(sep=None,maxsplit=-1)

#join链接字符串
str1 = " ".join(["l",'love','fishc.com'])
print(str1)    #l love fishc.com

#拆分字符串
b = str1.split()   #默认以空格拆分
print(b)       #['l', 'love', 'fishc.com']


str2 = '_'.join("Fishc")
bb = str2.split(sep='_')   #sep="X" 自定义分割符
print(bb)     #['F', 'i', 's', 'h', 'c']

015 字符串: 格式化

格式化方法

format 

#format() 方法接受位置参数和关键字参数,二者均传递到一个叫作replacement 字段。
#这个replacement 字段在字符串内由大扩号({})表示

#方式一、位置参数
temp = "{0} love {1}.{2}".format("I","fishc","com")
print(temp)          #结果 I love fishc.com

#方式二、关键字参数
temp2 = "{a} love {b}.{c} ".format(a="I",b="fishc",c="com")
print(temp2)        #结果 I love fishc.com

#综合位置参数和关键字参数,位置参数必须在关键字之前
temp3 = "{0} love {a}.{b} ".format('I',a = 'Fishc',b = "com")
print(temp3)       #结果 I love fishc.com

temp4= "{a} love {b}.{0} ".format(a="I",b="fishc","com")     #会报错
print(temp4)

"""
#报错
    temp4= "{a} love {b}.{0} ".format(a="I",b="fishc","com")
                                                     ^
SyntaxError: positional argument follows keyword argument
"""
g = "{0}:{1:.2f} ".format("圆周率",3.14159)  

print(g)

#结果:圆周率:3.14 

#:表示格式化符号的开始,.2表示四舍五入到保留两位小数,f 表示浮点数

格式化操作符:字符串格式化符号含义及转义字符含义:https://www.cnblogs.com/hcxy2007107708/articles/10091916.html

字符串格式化符号含义

#格式化字符
print('%c' %97)     #a
#格式化整数
>>> '%d + %d = %d' %(4,5,4+5)
'4 + 5 = 9'

#格式化无符号八进制数
b = '%d转换为八进制是:%o'% (123,123)   #小写的“o"字母
print(b)
#123转换为八进制是:173

#格式化浮点数字
c = "%f 用科学计数法表示为:%e" %(149500000,149500000)
print(c)
#149500000.000000 用科学计数法表示为:1.495000e+08

格式化操作符辅助命令

#格式化浮点数,指定小数点后保留一位
a = '%5.1f'% 27.658
print(a)   # 27.7

#e计法
b = '%.2e'% 27.658   #保留小数点后两位
print(b)    #2.77e+01



c = '%10d'% 5      #10为宽度,在5前面补9个0,总共10位
print(c)
#         5


d = '%-10d'%5  #‘-’表示结果左对齐, 宽度为10,后面补9个0
print(d)
#5         |


E = "%010d" % 5   #用0代替空格,10表示宽度为10位,不足补0
print(E)
#0000000005


F= '%#x'%100   # 小写“x",表示16进制
FF= '%#X'%100  # 大写“X",表示16进制
print(F)
print(FF)
#0X64
#0X64


H = '%d的八进制%#o'%(123,123)   #'#"表示在八进制数前显示‘0o’
print(H)     #123的八进制0o173

HH = '%d的十六进制%#X'%(123,123)   #'#"表示在十六进制数前显示‘0X’
print(HH)    #123的十六进制0X7B    大写X

Hx = '%d的十六进制%#x'%(123,123)   #'#"表示在十六进制数前显示‘0x’
print(Hx)    #123的十六进制0x7B    小写X

016 序列

一·、列表、元组和字符串的共同点----------统称为序列

---都可以通过索引得到每一个元素

---默认索引值总是从0开始

---可以通过分片的方法得到一个范围内的元素的集合

---有很多共同的操作符(重复操作符、拼接操作符、成员关系操作符)

二、序列的内置函数BIF

1、list ()函数()    (list本身作为一个方法)

*功能:把一个可迭代对象转化为列表·        

*语法:list()产生一个空列表

             list(iterable)把可迭代项目的内容通过索引值迭代,将其变成一个列表

              迭代:重复反馈过程的活动,其目的通常事为了达到活接近所需目标或结果;每次对过程的重复称之为一次迭代;每一次迭代得到的结果都会被用作下一次迭代的初始值,可将迭代近似值看成一个FOR循环

>>> a=list()
>>> a
[]
>>> b='I Love qijng'
>>> b
'I Love qijng'
>>> b=list(b)
>>> b
['I', ' ', 'L', 'o', 'v', 'e', ' ', 'q', 'i', 'j', 'n', 'g']
>>> c = (1,1,2,3,5,8,13,21,34)
>>> c= list(c)
>>> c
[1, 1, 2, 3, 5, 8, 13, 21, 34]

2、tuple()函数

*功能:把一个可迭代对象转化为元组

*语法:tuple([iterable])

3、str()函数

*功能:把obj对象转换为字符串

*语法:str(obj)

4、len()函数

*功能:计算序列的长度并返回

*语法:len(sub)

5 、max()函数:返回序列或参数集合中的最大值,要保证序列全部参数类型事统一的

6、min()函数:返回序列或参数集合中的最小值,要保证序列参数的全部参数类型事统一的

7 、sum(interable,[,start = 0]):返回序列的interable和start的总和

        *不是数字类型的数据不能使用sum函数

>>> c
[1, 1, 2, 3, 5, 8, 13, 21, 34]
>>> sum(c)
88
>>> sum(c,10)
98

8、storted()函数,功能类似于序列的内置方法.sort(),对序列进行排序

        *注意sort()函数没有返回值,不能把他赋给一个变量,如果写成b = list.stort(),得到的b是一个空

>>> d = (7,5,1,4,8,4,0)
>>> sorted(d)
[0, 1, 4, 4, 5, 7, 8]

9、 reversed()函数,功能与list.reverse()类似,直接使用reversed(interable)他会返回一个迭代器对象,我们可以用list函数将他转换成列表

>>> d = (7,5,1,4,8,4,0)
>>> reversed(d)
<reversed object at 0x0000025DA4623070>
>>> list(reversed(d))
[0, 4, 8, 4, 1, 5, 7]

10、enumerate() 枚举,生成由每个元素的index值和item值组合成的元组

>>> d = (7,5,1,4,8,4,0)
>>> enumerate(d)
<enumerate object at 0x0000025DA4A90100>
>>> list( enumerate(d))
[(0, 7), (1, 5), (2, 1), (3, 4), (4, 8), (5, 4), (6, 0)]

11、zip 返回由不同序列同一索引下的元素组成的元组

>>> a = [1,2,3,4,5,6,7,8]
>>> b = [4,5,6,7,8]
>>> zip(a,b)
<zip object at 0x0000025DA4A901C0>
>>> list(zip(a,b))
[(1, 4), (2, 5), (3, 6), (4, 7), (5, 8)]

017函数 :python的乐高积木

一 函数的基本语言

python编程语言中最重要的三大块内容:函数、对象、模块

1 函数的概念

*编程语言中对函数的定义是:函数是逻辑结构化过程化的一种编程过程

*实际应用时是把一组语句的集合通过函数名进行封装得到的代码块

*他仅在被调用时才会运行,用户在使用函数是过程中可以将数据(参数)传递到函数中,函数运行结束后可以把数据作为结果返回

2 函数的定义

*规则:

。 函数代码块以def关键词开头,后接函数标识符号名称和括号()

。 任何传入参数和自变量必须在圆括号中间,圆括号直接可以用于定义参数

。函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None

*语法:

def functionname( parameters ):
   "函数_文档字符串"
   function_suite
   return [expression]

eg

>>> def Myfirst():
	print('这是我创建的第一个函数')
	print('我很激动!')
	print('thanks')


>>> Myfirst()
这是我创建的第一个函数
我很激动!
thanks
>>> 

后见:!!!!!!!!!!!!!!!!!!!!!!!!!!!! 



第17讲~第19讲:函数:python的乐高积木 - 洛兰123 - 博客园 (cnblogs.com)

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值