python练习100题(持续更新)9
作为一个有过编程基础的人,普通的python课已经无法满足期望值,意向尽快使用python做一些有趣的小玩意,为了尽快掌握python语法就在哔哩哔哩上看了一些练习课,链接地址是:https://www.bilibili.com/video/BV12P411c7Bf?p=4&vd_source=9fd5615f3e18c29080a5fcfc9ebfa535
ctrl + alt + l
: pycharm的格式化当前代码
Ctrl + Shift + Alt + J
: 选中全部相同字符(变量)快捷键组合:
Alt + J : 选中下一个相同字符(变量)的快捷键:
一起做下去吧~
- 逐行求和
a = 1
a = 2
a = 3
print(a + a + a)
答案 9 因为python逐行向下执行,如果遇到已声明过的变量会被覆盖 因而a终值为3,3*3得9
- 声明变量练习
# 会报什么错误
a = 1
a1 = 2
a2 = 3
a3 = 4
_a3 = 5
4a3 = 5
会报声明变量(语法)错误,python声明变量只允许字母或者下划线开头
- 赋值练习
a = 2
b = 2
print(a == b)
print(b == c)
语法错误 c未定义,pyt中变量需要先定义再使用
- 类型出错
# 修复如下代码,使其输出数字1+2结果为3
a = '1'
b = 2
print(a + b)
类型错误,pyt中不能隐式转换,需要用int(str)或者str(int)强转成同一类型后再运算,本题应使用int(a)后再相加
- 缩进错误
for letter in 'hello':
if letter == 'e'
print(letter)
缩进错误,pyt中严格缩进,在代码块中缩进标识一个作用域范围,正确做法第三行应该再缩进一个缩进单位;
tips1: for语句时,应该以冒号结尾!
tips2: if语句时,同样应以冒号结尾!
tips2: pyt的与或非分别对应and
、'or'、'not' ,而不是其他语言中的&&
、||
、!
- 结尾错误
#: 给出报错原因并修复
print(type('hey'.replace('ey','i')[-1])
尾括号少了一个
pyt中
str
类型[-1]
表示该字符串中最后一位
- 关键字错误
pass = input('input your psd')
pass是pyt关键字,pyt中的关键字不允许作为变量使用
pyt不允许在条件语句或者定义类或者函数时置为空,因而可以使用pass关键字表示当前作用域下什么都不做
在pycharm中,关键字以斜体表示
- 未定义错误
# 解释报错原因并修复 期望最终输出3
# math.sqrt:求一个数字的平方根
math.sqrt(9)
math
是内置模块之一,但是默认不会自动导入,需要手动导入
pyt的此函数默认输出float类型,且该语句没有输出值,因而在求值后还要用int强转为整数
import math
print(int(math.sqrt(9)))
- 输出指定索引序列元素
# 已知b在序列中,输出b位置
lista = ['a', 'b', 'c','d','e','f','g']
答案
# 已知b在序列中
print(lista[1])
#如果不知道b是否在序列中,需要判断一下先:
# 确认b在序列中 使用in
if('b' in lista):
bIndex = lista.index('b')
print(lista[bIndex])
# 或者:
('b' in lista) and print(lista[lista.index('b')])
# 定义了一个函数并执行:
def get_var(var_name, mylist):
return (var_name in mylist) and print(mylist[mylist.index(var_name)])
# pyt没有作用域提升,逐行执行,因而需要先定义函数在执行
get_var('b', lista)
tips1:
in
关键字用于在序列中判断是否有某个值
tips2:def
关键字用于定义函数
arr[index]用于查找序列中某个索引的第一个值,index如果超出数组最大索引会报错
- 输出子序列
前置知识
切片:将一个list分割成多个list的过程,切片是为了获得序列某个区间的元素序列,普通索引仅能取出序列的某一个索引,切片则是取出序列范围内的索引集合
子序列:序列通过切片的方式将自己内部的所有或部分元素切成了一个个序列,这些序列叫做子序列
pyt的切片包含开始位置,不包含结束位置
通过
is
比较两个变量是否是同一块内存地址,通过id()
取到两个变量的内存地址
同索引一致,切片同样有正索引与负索引的区别,正索引从下标0开始从左到右取依次取出对应值,负索引从右至左从-1开始依次向左取出对应值
以上。