其实高考完的暑假学了python,但是现在已经全忘了。考虑到以后想研究人工智能和算法方向,于是想把Python基础语法过一遍。
吐槽一下,python的语法也太丑陋自由了吧。
标记主函数
if __name__ == '__main__':
输出 print
向控制台输出一个字符串,默认以'\n'结尾。
以下几种写法都是对的。
if __name__ == '__main__': print('a' + 'b' + 'c') print('a', 'b', 'c'); a, b = 1, 5 print('a + b = ', '%d' % (a + b)) print('a + b = ', a + b) # Wrong # print('a + b = ' + (a + b)) # format格式化输出 f = "{0}, {1}, {0}".format("零", '一') print(f)
输出结果如图
如果要取消自动换行,需要给end设定参数。
print('a + b = ', '%d' % (a + b), end='')
输入 / input
if __name__ == '__main__': # 输入单个变量 a = int(input()) # 多个变量,input().split()是一个列表,对其中每一个元素经过int函数处理转换成整型 b, c, d = map(int, input().split()) print(a, b, c, d) # 列表(数组) al = list(map(int, input().split())) print(al)
条件 / if
if __name__ == '__main__': a, b, c = map(int, input().split()) if a + b > c: print("a + b > c") elif a + b < c: print("a + b < c") else: print('a + b == c') # python print中单引号和双引号一样
循环 / for while
if __name__ == '__main__': # 斐波那契数列 a = [0] * 101 a[0] = 1 # [起点,终点),步长 # 如果要复杂的处理条件用while for i in range(1, 101, 1): a[i] = 2 * (a[i - 1] & a[i - 2]) + (a[i - 1] ^ a[i - 2]) # python同样支持位运算,上面这一坨的意思其实就是加法 print(a)
字符串 / String
python可以轻松实现字符串的拼接,切割等
if __name__ == '__main__': s = "Hello#World#Eriktse" print(s.split('#')) # result: ['Hello', 'World', 'Eriktse'] # 检测Hello是否在字符串s中 print("%s" % ("In" if "Hello" in s else "Not in")) # 拼接字符串 s += "123" print(s) # result: Hello#World#Eriktse123
列表(数组) / List
import bisect if __name__ == '__main__': a = [1,5,9,3,5,7,11,-5,7,7] # 排序并重新赋值 a = sorted(a) # 返回7两端位置,若不存在返回最后一个元素的位置 l = bisect.bisect_left(a, 7) r = bisect.bisect_right(a, 7) x = bisect.bisect(a, 99) print(a, '\n',l, r, x)
元组 / tuple
if __name__ == '__main__': # 元组是不可变序列,但是一个列表中可以出现不同长度的元组,甚至不同类型的数据 a = [(1, 2, 5, 7), (2, 4)] # python是什么神奇的语言啊我透 a[0] = "123" a.append((1,33,9)) print(a)
注意python中缩放非常重要,不要轻易压行了。
Comments 2 条评论
《不 要 轻 易 压 行》
@ChrisKim 压行容易去世