学习永远都是“理论”与“实践”相结合效果最好。

这里有python入门的120个基础练习(1~40),希望对你有用。

01-Hello World python的语法逻辑完全靠缩进,建议缩进4个空格。 如果是顶级代码,那么必须顶格书写,哪怕只有一个空格也会有语法错误。 下面示例中,满足if条件要输出两行内容,这两行内容必须都缩进,而且具有相同的缩进级别。 print('hello world!')

if 3 > 0:
    print('OK')
    print('yes')

x = 3; y = 4   # 不推荐,还是应该写成两行
print(x + y)

02-print print('hello world!') print('hello', 'world!') # 逗号自动添加默认的分隔符:空格 print('hello' + 'world!') # 加号表示字符拼接 print('hello', 'world', sep='***') # 单词间用***分隔 print('#' * 50) # *号表示重复50遍 print('how are you?', end='') # 默认print会打印回车,end=''表示不要回车

03-基本运算 运算符可以分为:算术运算符、比较运算符和逻辑运算符。优先级是:算术运算符>比较运算符>逻辑运算符。最好使用括号,增加了代码的可读性。

print(5 / 2)  # 2.5
print(5 // 2)  # 丢弃余数,只保留商
print(5 % 2)  # 求余数
print(5 ** 3)  # 5的3次方
print(5 > 3)  # 返回True
print(3 > 5)  # 返回False
print(20 > 10 > 5)  # python支持连续比较
print(20 > 10 and 10 > 5)  # 与上面相同含义
print(not 20 > 10)  # False

04-input number = input("请输入数字: ") # input用于获取键盘输入 print(number) print(type(number)) # input获得的数据是字符型

print(number + 10)  # 报错,不能把字符和数字做运算
print(int(number) + 10)  # int可将字符串10转换成数字10
print(number + str(10))  # str将10转换为字符串后实现字符串拼接

05-输入输出基础练习 username = input('username: ') print('welcome', username) # print各项间默认以空格作为分隔符 print('welcome ' + username) # 注意引号内最后的空格

06-字符串使用基础 python中,单双引号没有区别,表示一样的含义 sentence = 'tom's pet is a cat' # 单引号中间还有单引号,可以转义 sentence2 = "tom's pet is a cat" # 也可以用双引号包含单引号 sentence3 = "tom said:"hello world!"" sentence4 = 'tom said:"hello world"' # 三个连续的单引号或双引号,可以保存输入格式,允许输入多行字符串 words = """ hello world abcd""" print(words)

py_str = 'python'
len(py_str)  # 取长度
py_str[0]  # 第一个字符
'python'[0]
py_str[-1]  # 最后一个字符
# py_str[6]  # 错误,下标超出范围
py_str[2:4]  # 切片,起始下标包含,结束下标不包含
py_str[2:]  # 从下标为2的字符取到结尾
py_str[:2]  # 从开头取到下标是2之前的字符
py_str[:]  # 取全部
py_str[::2]  # 步长值为2,默认是1
py_str[1::2]  # 取出yhn
py_str[::-1]  # 步长为负,表示自右向左取

py_str + ' is good'  # 简单的拼接到一起
py_str * 3  # 把字符串重复3遍

't' in py_str  # True
'th' in py_str  # True
'to' in py_str  # False
'to' not in py_str  # True

07-列表基础 列表也是序列对象,但它是容器类型,列表中可以包含各种数据 alist = [10, 20, 30, 'bob', 'alice', [1,2,3]] len(alist) alist[-1] # 取出最后一项 alist[-1][-1] # 因为最后一项是列表,列表还可以继续取下标 [1,2,3][-1] # [1,2,3]是列表,[-1]表示列表最后一项 alist[-2][2] # 列表倒数第2项是字符串,再取出字符下标为2的字符 alist[3:5] # ['bob', 'alice'] 10 in alist # True 'o' in alist # False 100 not in alist # True alist[-1] = 100 # 修改最后一项的值 alist.append(200) # 向列表中追加一项

08-元组基础 元组与列表基本上是一样的,只是元组不可变,列表可变。 atuple = (10, 20, 30, 'bob', 'alice', [1,2,3]) len(atuple) 10 in atuple atuple[2] atuple[3:5] # atuple[-1] = 100 # 错误,元组是不可变的

09-字典基础 # 字典是key-value(键-值)对形式的,没有顺序,通过键取出值 adict = {'name': 'bob', 'age': 23} len(adict) 'bob' in adict # False 'name' in adict # True adict['email'] = 'bob@tedu.cn' # 字典中没有key,则添加新项目 adict['age'] = 25 # 字典中已有key,修改对应的value

10-基本判断 单个的数据也可作为判断条件。 任何值为0的数字、空对象都是False,任何非0数字、非空对象都是True。 if 3 > 0: print('yes') print('ok')

if 10 in [10, 20, 30]:
    print('ok')

if -0.0:
    print('yes')  # 任何值为0的数字都是False

if [1, 2]:
    print('yes')  # 非空对象都是True

if ' ':
    print('yes')  # 空格字符也是字符,条件为True

11-条件表达式、三元运算符 a = 10 b = 20

if a < b:
    smaller = a
else:
    smaller = b

print(smaller)

s = a if a < b else b  # 和上面的if-else语句等价

print(s)

12-判断练习:用户名和密码是否正确 import getpass # 导入模块

username = input('username: ')
# getpass模块中,有一个方法也叫getpass
password = getpass.getpass('password: ')

if username == 'bob' and password == '123456':
    print('Login successful')
else:
    print('Login incorrect')

13-猜数:基础实现 import random

num = random.randint(1, 10) # 随机生成1-10之间的数字
answer = int(input('guess a number: '))  # 将用户输入的字符转成整数
if answer > num:
    print('猜大了')
elif answer < num:
    print('猜小了')
else:
    print('猜对了')

print('the number:', num)

14-成绩分类1 score = int(input('分数: '))

if score >= 90:
    print('优秀')
elif score >= 80:
    print('好')
elif score >= 70:
    print('良')
elif score >= 60:
    print('及格')
else:
    print('你要努力了')

15-成绩分类2 score = int(input('分数: '))

if score >= 60 and score < 70:
    print('及格')
elif 70 <= score < 80:
    print('良')
elif 80 <= score < 90:
    print('好')
elif score >= 90:
    print('优秀')
else:
    print('你要努力了')

16-石头剪刀布 import random

all_choices = ['石头', '剪刀', '布']
computer = random.choice(all_choices)
player = input('请出拳: ')

# print('Your choice:', player, "Computer's choice:", computer)
print("Your choice: %s, Computer's choice: %s" % (player, computer))
if player == '石头':
    if computer == '石头':
        print('平局')
    elif computer == '剪刀':
        print('You WIN!!!')
    else:
        print('You LOSE!!!')
elif player == '剪刀':
    if computer == '石头':
        print('You LOSE!!!')
    elif computer == '剪刀':
        print('平局')
    else:
        print('You WIN!!!')
else:
    if computer == '石头':
        print('You WIN!!!')
    elif computer == '剪刀':
        print('You LOSE!!!')
    else:
        print('平局')

17-改进的石头剪刀布 import random

all_choices = ['石头', '剪刀', '布']
win_list = [['石头', '剪刀'], ['剪刀', '布'], ['布', '石头']]
prompt = """(0) 石头
(1) 剪刀
(2) 布
请选择(0/1/2): """
computer = random.choice(all_choices)
ind = int(input(prompt))
player = all_choices[ind]

print("Your choice: %s, Computer's choice: %s" % (player, computer))
if player == computer:
    print('\033[32;1m平局\033[0m')
elif [player, computer] in win_list:
    print('\033[31;1mYou WIN!!!\033[0m')
else:
    print('\033[31;1mYou LOSE!!!\033[0m')

18-猜数,直到猜对 import random

num = random.randint(1, 10)
running = True

while running:
    answer = int(input('guess the number: '))
    if answer > num:
        print('猜大了')
    elif answer < num:
        print('猜小了')
    else:
        print('猜对了')
        running = False

19-猜数,5次机会 import random

num = random.randint(1, 10)
counter = 0

while counter < 5:
    answer = int(input('guess the number: '))
    if answer > num:
        print('猜大了')
    elif answer < num:
        print('猜小了')
    else:
        print('猜对了')
        break
    counter += 1
else:  # 循环被break就不执行了,没有被break才执行
    print('the number is:', num)

20-while循环,累加至100 因为循环次数是已知的,实际使用时,建议用for循环 sum100 = 0 counter = 1

while counter < 101:
    sum100 += counter
    counter += 1

print(sum100)

21-while-break break是结束循环,break之后、循环体内代码不再执行。 while True: yn = input('Continue(y/n): ') if yn in ['n', 'N']: break print('running...')

22-while-continue 计算100以内偶数之和。 continue是跳过本次循环剩余部分,回到循环条件处。 sum100 = 0 counter = 0

while counter < 100:
    counter += 1
    # if counter % 2:
    if counter % 2 == 1:
        continue
    sum100 += counter

print(sum100)

23-for循环遍历数据对象 astr = 'hello' alist = [10, 20, 30] atuple = ('bob', 'tom', 'alice') adict = {'name': 'john', 'age': 23}

for ch in astr:
    print(ch)

for i in alist:
    print(i)

for name in atuple:
    print(name)

for key in adict:
    print('%s: %s' % (key, adict[key]))

24-range用法及数字累加 # range(10) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # >>> list(range(10)) # range(6, 11) # [6, 7, 8, 9, 10] # range(1, 10, 2) # [1, 3, 5, 7, 9] # range(10, 0, -1) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] sum100 = 0

for i in range(1, 101):
    sum100 += i

print(sum100)

25-列表实现斐波那契数列 列表中先给定两个数字,后面的数字总是前两个数字之和。 fib = [0, 1]

for i in range(8):
    fib.append(fib[-1] + fib[-2])

print(fib)

零基础免费学python,加我微信17706130227