2018-04-03周2课程笔记

2018-04-03周2课程笔记

缩进格式

说明:python的缩进代表向上包含一个内置或自定义函数,并以冒号结尾,换行后,使用缩进来区分不同的层级函数。

def hello(name):# 这里代表了自定义一个名字为“hello”的函数,函数的内部参数名为“name”
    print("hello {0}".format(name))# 当函数执行时,输出“hello ”带上参数

print("hello world")# 这里按序提现了缩进执行的前后关系,输出中应该为首位

for i in range(1,10):# 这里使用了内置函数for,通过缩进可以观察到
    hello(i)# 当函数执行时,调用上述自定义“hello”函数,并使用内部参数“i”传参
    print(i)# 当函数执行时,输出内部参数“i”
# 以下为输出内容
hello world
hello 1
1
hello 2
2
hello 3
3
hello 4
4
hello 5
5
hello 6
6
hello 7
7
hello 8
8
hello 9
9

If条件判断

有事没事 a.strip() 一下,避免无意义的空格和判断空值

if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else(也支持if嵌套),所以,请测试并解释为什么下面的程序打印的是teenager:

# if <条件判断1>:
#     <执行1>
# elif <条件判断2>:
#     <执行2>
# elif <条件判断3>:
#     <执行3>
# else:
#     <执行4>
age = 20
if age >= 6:
    print('teenager')
elif age >= 18:
    print('adult')
else:
    print('kid')
teenager
d = dict(a=1)
print(type(d))
if type(d) == dict:
    print("{0} is dict".format(d))
# 鉴于tpye判断不了子类继承的父类属性,推荐用以下代码
if isinstance(d, dict):
    print("{0} is dict".format(d))
# {0}大括号的0不建议省略
# 强制类型转换:问题:字典和字符串相加,怎么搞
print(str(d) + "hello world")
m = [x for x in range(1,10)]# 前开后闭
print(len(m))
<class 'dict'>
{'a': 1} is dict
{'a': 1} is dict
{'a': 1}hello world
9
age = input("Please input your age: ")# a18
print(type(age))
if age.strip():
    if int(age)>18:# 这里肯定报错
        print("成年人")
    else:
        print("未成年")
else:
    print("输入不是数字")
Please input your age: 18
<class 'str'>
未成年
age = input("Please input your age: ")# a18
print(type(age))
if age.strip():
    if age.isdigit():
        if int(age)>18:
            print("成年人")
        else:
            print("未成年")
    else:
        print("输入不是数字")
else:
    print("输入只有空格")
Please input your age: 18
<class 'str'>
未成年
number = input("Please input a number: ")# 123
if int(number)>0:
    print("{0} 是正数!".format(number))
elif int(number)<0:
    print("{0} 是负数!".format(number))
else:
    print("输入数字是{0}".format(number))
Please input a number: 123
123 是正数!

while循环

# while 判断条件:
#     执行语句
# while 1:
# 这种代码的效率高,因为计算机底层回归到0和1
# 在pycharm中因为是管理着python.exe,python.exe不会跑满cpu
sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 2
print(sum)
2500

break:跳出循环

continue:跳到下一次循环

while 1:
    age = input("Please input your age: ")# a18
    print(type(age))
    if age.strip():
        if age.isdigit():
            if int(age)>18:
                print("成年人")
                break
            else:
                print("未成年")
                break
        else:
            print("输入不是数字")
            continue# 等于直接跳到while 1:
            print("数字")
    else:
        print("输入只有空格")
        continue
        print("空格")
print("break")
Please input your age: 18
<class 'str'>
未成年
break

for 循环

# for item in sequence:
#     执行语句
for i in range(1, 10):# >=1,<10
    print("{0} x {1} = {2}".format(i, i, i*i))
1 x 1 = 1
2 x 2 = 4
3 x 3 = 9
4 x 4 = 16
5 x 5 = 25
6 x 6 = 36
7 x 7 = 49
8 x 8 = 64
9 x 9 = 81
#1 1x1=1 
#2 1x2=2 2x2=4 
#3 1x3=3 2x3=6 3x3=9 
#4 1x4=4 2x4=8 3x4=12 4x4=16 
# a x b = a*b
# a 最小为1,最大为行号
# b 等于行号
for b in range(1, 10):
    for a in range(1,b+1):# 前开后闭,只能取到b
        # python2的不换行是“,”,python3的不换行是“,end=" "”
        # 可以点进去看print的函数内容,查看到end=的用法 
        if len(str(a*b))==1:
            print("{0} x {1} = {2}".format(a, b, a*b),end="  ")
        elif len(str(a*b))==2:
            print("{0} x {1} = {2}".format(a, b, a*b),end=" ")
        else:
            print("err")
        if a == b:
            print()# 换行
1 x 1 = 1  
1 x 2 = 2  2 x 2 = 4  
1 x 3 = 3  2 x 3 = 6  3 x 3 = 9  
1 x 4 = 4  2 x 4 = 8  3 x 4 = 12 4 x 4 = 16 
1 x 5 = 5  2 x 5 = 10 3 x 5 = 15 4 x 5 = 20 5 x 5 = 25 
1 x 6 = 6  2 x 6 = 12 3 x 6 = 18 4 x 6 = 24 5 x 6 = 30 6 x 6 = 36 
1 x 7 = 7  2 x 7 = 14 3 x 7 = 21 4 x 7 = 28 5 x 7 = 35 6 x 7 = 42 7 x 7 = 49 
1 x 8 = 8  2 x 8 = 16 3 x 8 = 24 4 x 8 = 32 5 x 8 = 40 6 x 8 = 48 7 x 8 = 56 8 x 8 = 64 
1 x 9 = 9  2 x 9 = 18 3 x 9 = 27 4 x 9 = 36 5 x 9 = 45 6 x 9 = 54 7 x 9 = 63 8 x 9 = 72 9 x 9 = 81 

range和xrange的区别

python range() 函数可创建一个整数列表,一般用在 for 循环中。函数语法

range(start, stop[, step])

参数说明:
  • start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
  • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
  • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
实例

>>> range(10) # 从 0 开始到 10

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> range(1, 11) # 从 1 开始到 11

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> range(0, 30, 5) # 步长为 5

[0, 5, 10, 15, 20, 25]

>>> range(0, 10, 3) # 步长为 3

[0, 3, 6, 9]

>>> range(0, -10, -1) # 负数

[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

>>> range(0)

[]

>>> range(1, 0)

[]

# 以下是 range 在 for 中的使用,循环出runoob 的每个字母:
x = 'runoob'
for i in range(len(x)):
    print(x[i])
r
u
n
o
o
b
描述

xrange() 函数用法与 range 完全相同,所不同的是生成的不是一个数组,而是一个生成器。

语法

xrange 语法:

xrange(stop)

xrange(start, stop[, step])

参数说明:

  • start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
  • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
  • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
返回值

返回生成器

实例

以下实例展示了 xrange 的使用方法:

>>>xrange(8)

xrange(8)

>>> list(xrange(8))

[0, 1, 2, 3, 4, 5, 6, 7]

>>> range(8) # range 使用

[0, 1, 2, 3, 4, 5, 6, 7]

>>> xrange(3, 5)

xrange(3, 5)

>>> list(xrange(3,5))

[3, 4]

>>> range(3,5) # 使用 range

[3, 4]

>>> xrange(0,6,2)

xrange(0, 6, 2) # 步长为 2

>>> list(xrange(0,6,2))

[0, 2, 4]

Python的练习题

题目1:get

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

程序分析:利用while语句,条件为输入的字符不为'\n'.

#用isdigit函数判断是否数字

#用isalpha判断是否字母

#isalnum判断是否数字和字母的组合

'''
判断一个字符串数字有多少个
字母有多少个
空格有多少个
其他字符
'''



while 1:
    strings = input("Please inpur a string(quit will be exit):")
    alpha, dig, space, other = 0, 0, 0, 0
    if strings.strip() == "quit":
        exit(1)
    for i in strings:
        if i.isdigit():
            dig += 1
        elif i.isspace():
            space += 1
        elif i.isalpha():
            alpha += 1
        else:
            other += 1
    print("alpha = {0}".format(alpha))
    print("dig = {0}".format(dig))
    print("space = {0}".format(space))
    print("other = {0}".format(other))
Please inpur a string(quit will be exit):123qwe   +_
alpha = 3
dig = 3
space = 3
?other?

题目6:get

0! + 1! + 2! + 3! + 4! + 5! + 6!+ n!

  • 0! = 1
  • 1! = 1
  • 2! = 2*1=2
  • 3! = 321=6
'''
0! +1! +2! + 3! +4! + 5! + n!
1 + 1 + 2 + 6 + …… + n*(n-1)*(n-2)……*1
'''

def jc(n):
    result = 1
    if n == 0:
        return result
    else:
        for i in range(1, n+1):
            result *= i
        return result


n = input("Plese inpurt number n:")
count = 0
for i in range(0, int(n)+1):
    count += jc(i)

print("count = {0}".format(count))
Plese inpurt number n:3
count = 10



















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值