Python基础语法
一、注释
Python中的注释有单行注释和多行注释:
1.1 单行注释
Python中单行注释以 # 开头,例如
# 这是一个注释
print("Hello, World!")
1.2 多行注释
多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来
"""
这是多行注释,用三个双引号
这是多行注释,用三个双引号
这是多行注释,用三个双引号
"""
print("Hello, World!")
1.3 注释快捷键
光标所在行或者选中的多行,运行快捷键进行注释或取消注释
二、换行
当一行代码过长或者需要比较规范的格式时,需要对代码进行换行。常用代码换行有通用的反斜杠\和针对字符串起作用的三引号结构。
2.1 反斜杠
对于一般表达式来说,反斜杠后直接回车即可实现续行,使用的关键在于反斜杠后不能用空格或者其他符号。
>>> a=1;b=2;c=a+\
... b
>>> print(c)
3
对长字符串也适用
>>> print('print a long long long long long\
... very long string')
print a long long long long longvery long string
2.2 三引号
可用于多行文本的输出,会根据输入文本自动换行,单引号或双引号均可以
>>> sql="""
... select *
... from table
... where r=1;
... """
>>> print(sql)
select *
from table
where r=1;
三、输入输出
3.1 输入
3.1.1 读取键盘输入
两段代码需要逐行运行
>>> str = input("输入时提示的内容:");
输入时提示的内容:学python
>>> print ("输入的内容是: ", str)
输入的内容是: 学python
3.1.2 内部赋值
通过对变量赋值以及变量之间的运算
3.1.2 读取文件
读取完整文本f.read()
size控制读取的字符数,不填写时读取全部文本
# 读取一个已存在的文件
f = open("file.txt", "r")
size=4
str = f.read(size)
print(str)
# 关闭打开的文件
f.close()
逐行读取读取f.readline()
f = open("file.txt", "r")
while str:
str = f.readline()
print(str)
f.close()
读取所有行f.readline()
以列表的形式返回每一行的内容
>>> f = open("file.txt", "r")
>>> str = f.readlines()
>>> print(str)
['第一行:111\n', '第二行222\n']
>>> f.close()
读取文件指定行
>>> import linecache
>>> linecache.getline('file.txt', 2)
'第二行222\n'
sdf
3.2 输出
3.2.1 文件输出
>>> f = open("newfile.txt", "w")
>>> f.write("第一行:111\n第二行222\n" )
15
>>> f.close()
3.2.2 换行输出
自动换行打印
循环打印时,系统会自动换行
>>> for s in ['爱','我','中','华']:
... print(s)
爱
我
中
华
换行符
使用\n换行符
>>> print('第一行\n第二行\n第三行')
第一行
第二行
第三行
打印到文件中
使用sys.stdout进行设置,打印内容会追加到已有文件中
import sys
__console = sys.stdout #备份用于后期还原
# 把打印重定向文件
f=open('print.log',"a+")
sys.stdout=f
print('第一行\n第二行\n第三行')
print('第四行')
结果
(base) datscicn@datscicn ~ % cat print.log
第一行
第二行
第三行
第四行
打印进度条
用于大量循环时,便于了解进度
>>> from tqdm import tqdm
>>> import time
>>> for i in tqdm(range(365)):
... time.sleep(0.01)#停顿以更好地展示
...
24%|██████████▏ | 89/365 [00:09<00:28, 9.70it/s]
3.2.3 格式化输出
str和repr
部分对象需要使用repr转换成文本,例如字典:
In [40]: a={'runoob': 'runoob.com', 'google': 'google.com'}
In [41]: s1='这是一个字典:'+str(a)
Traceback (most recent call last):
File "<ipython-input-41-d3272ee908e3>", line 1, in <module>
s1='这是一个字典:'+str(a)
TypeError: 'str' object is not callable
In [42]: s2='这是一个字典:'+repr(a)
In [43]: print(s2)
这是一个字典:{'runoob': 'runoob.com', 'google': 'google.com'}
str.format()
# 1.通过变量或直接赋值
>>> explain='年龄';jd=2/29;
>>> s="当前评估的变量为{0},中文名为{explain},整体评估进度为{jd:.3%}".format('age',explain=explain,jd=jd)
>>> print(s)
当前评估的变量为age,中文名为年龄,整体评估进度为6.897%
# 2.通过字典或列表赋值
# *列表要在**字典前面
>>> names=['zq1','zq2','zq3']
>>> ren={'name':'zq','age':19.3,'score':888.882}
>>> '我的名字是{name},今年{age}岁,得分{score:.2f},下一位是{1}'.format(*names,**ren)
'我的名字是zq,今年19.3岁,得分888.88,下一位是zq2'
3.3 序列化
数据存储
>>> import pickle
>>> # 使用pickle模块将数据对象保存到文件
>>> names=['zq1','zq2','zq3']
>>> ren={'name':'zq','age':19.3,'score':888.882}
>>> output = open('data.pkl', 'wb')
>>> pickle.dump([names,ren], output)
>>> output.close()
数据读取
>>> import pickle
>>> #使用pickle模块从文件中重构python对象
>>> pkl_file = open('data.pkl', 'rb')
>>> data= pickle.load(pkl_file)
>>> names=data[0]
>>> ren=data[1]
>>> print(names,ren)
['zq1', 'zq2', 'zq3'] {'name': 'zq', 'age': 19.3, 'score': 888.882}
>>> pkl_file.close()
四、条件控制
>>> age=44;sex='男'
>>> if sex=='男' and age<=25:
... result='男青年'
... elif sex!='女':
... result='非女性'
... elif age<=10 or age>60:
... resule='老幼女性'
... else:
... result='其他女性'
>>> print(result)
非女性
五、循环语句
5.1 while循环
>>> count = 0 #初始化
>>> while count < 6:
... print (count, " 小于 6")
... count = count + 1
... else:
... print (count, " 大于或等于 6,跳出循环")
... count = count + 1
...
0 小于 6
1 小于 6
2 小于 6
3 小于 6
4 小于 6
5 小于 6
6 大于或等于 6,跳出循环
5.2 for循环
>>> for i in range(1,11):
... pr=1
... ti=1
... while ti<=i:
... pr*=ti
... ti+=1
... print((repr(i)+'的阶乘为:{0:,d}').format(pr))
...
1的阶乘为:1
2的阶乘为:2
3的阶乘为:6
4的阶乘为:24
5的阶乘为:120
6的阶乘为:720
7的阶乘为:5,040
8的阶乘为:40,320
9的阶乘为:362,880
10的阶乘为:3,628,800
网友评论