跟教程用了 Pycharm 做 IDE,默认的语法要求就很严格,一些缩进都会报错。。

格式化输出

可以指定打印结尾字符。

a = 10
print('a ->', a)

age = 18
print('年龄:%d 岁' % age)
print('年龄:%d 岁,国籍:%s,以上' % (age, '中国'))
print('www', 'baidu', 'com', sep='.')

print('hello', end='')
print('world', end='\t')
print('python', end='\n')
print('end')

基本输入输出

password = input('请输入密码:')
print('密码:', password)

判断数据类型

a = 10
print(type(a))

——所有输入都按字符串处理。

a = int('123')
a = int(input('请输入密码:'))

——强制类型转换

运算符

基本和 c 一样。。

条件判断

非0非空为 True,0 或 none 为 False。。 (大小写敏感,只有大写会被判断为布尔类型)

if True:
    print('true')
else:
    print('false')

缩进要统一。。

for

for 的循环简化很多,可以有数字的范围和步长,也可以遍历列表。

# 1
for i in range(5):
    print(i)

# 5
a = ['aa', 'bb', 'cc', 'dd']

for i in range(len(a)):
    print(i, a[i])

while

python 的 while 可以加 else,不满足条件执行。

# 8
count = 0
while count < 5:
    print(count, '小于5')
    count += 1
else:
    print(count, '大于等于5')

break

实际上是 break、continue、pass,跳出循环、跳至下次循环、什么也不干。。

字符串

str = "chengdu"
print(str)
print(str[0:6])
print(str[1:7:2])

print(str[:5])
print(str[5:])

print(str + ", hello")
print(r"hello\nchengdu")

列表

list 的概念类似于数组,但 list 可以储存混合的类型,然后是基础的增删改查。

a.append(b)
a.extend(b)

——增,可以追加为元素,或者扩展数组。

del movie_list[1]
movie_list.pop()
movie_list.remove("like")

——删,可以删除指定位置、末尾,或者移除指定元素。 然后列表可以出现重复数据,但 remove() 只移除找到的第一个目标。

movie_list[0] = "like2"

——改,直接指定就好了

if find_name in movie_list:
    print(a.index("a", 0, 4))
    print(a.count("a"))

——查,有 in 和 not in,另外 index 可以查找下标范围内的内容,有的话返回下标,没有就报错,有多个值时只返回找到的第一个下标,然后 count() 计数。

a.reverse()
a.sort()
a.sort(reverse=True)

——排序,正序、逆序。。

元组、字典

元组可以看做不可修改的列表,但可以进行简单的运算:

print(tup1 + tup2)  # 连接起来
del tup1  # 直接把tup1删掉

字典就是键值对了:

info = {"name": "x", "age": 18}

print(info["name"])  # 直接打印对应的值
print(info.get("gender"))  # 如果访问可能不存在的键,要用get,不然可能会报错
print(info.get("gender", "m"))  # 设定默认值

增删改:

info = {"name": "x", "age": 18}

new_id = input("新学号:")
info["id"] = new_id
print(info["id"])

del info["name"]
print(info.get("name"))  # 删除删的是整个键值对

info.clear()
print(info)  # 清空是清空内容

查:

for key in info.keys():
    print(key)

for key, value in info.items():
    print("key=%s, value=%s" % (key, value))

mylist = ["a", "b", "c"]

for i, x in enumerate(mylist):
    print(i, x)

终于说枚举了,不要太方便。。 然后 set 就是只有键的 dict,可以做快速去重,不过基本略过了,不是那么重要。

函数

直接 def xxx(),可以返回多个值,实际上是以元组的形式。

def divid(a, b):
    shang = a // b
    yushu = a % b
    return shang, yushu

文件操作

可以直接指定读取类型,并进行操作,记得关闭连接:

f = open("text.txt", "w")
f.write("hello")
f.close

每次读取是自动接续的,类似于 rpg 的换页:

content = f.read(5)
print(content)

可以整行读取,或者已行为元素读取为列表:

content = f.readline()
content = f.readlines()

异常处理

异常可以被 try、except 捕获,finally 最后都会执行。

try:
    print("test1")
    f = open("123.txt", "r")
    print("test2")
except Exception as result:
    print("有错误")
    print(result)
finally:
    print("end")