我的Python初级学习20230830
Python学习20230830
Python的安装
1、官网安装IDLE,Python的环境(免费)。
2、安装PyCharm(社区版免费)。
pycharm中有个双击shift就会弹出全局搜索框,实在太麻烦了,这里直接禁用。settings---->advanced settings---->user interface---->disable double modifier key shortcuts。
3、安装Typora。
4、安装个IPython更好的交互环境,装上也不影响(有高亮等)。
5、如果python安装失败,应该是缺少底部组件,查找vs tool补件进行安装。
6、文本编辑工具Visual Studio Code(好不好用我也不知道,免费)
Python的库的安装PIP
命令中直接pip install ipyhton的话会去国外网,所以需要镜像网站(一般走豆瓣镜像,镜像网站就是将一个完全相同的站点放到几个服务器,分别有自己的URL,实际就是将国外的网站搬过来)。
所以使用(全局配置):
pip config set global.index-url https://pypi.doubanio.com/simple
————————————————————————————————
安装其他的库则在命令中编写:pip install XXX 比如 pip install ipython。
.py文件可以直接拖到命令中显示绝对路径,进行执行python xxx.py。
快捷键
(Pycharm是有代码的历史记录的)
CTRL+Y=》删除这行
CTRL+D=》复制上一行
菜单栏上CODE=>REFORMAT CODE将格式转换为标准格式,快捷键:CTRL+ALT+L(会和QQ锁定冲突,可以修改其中一个的快捷键)
CTRL+/ ===> 注释代码
CTRL+左键 ===> 点击函数,就能进到它的代码中
SHIFT+TAB ====> 取消缩进
赋值
# START_1 赋值
# 改变变量名,直接变量右键refactor,rename就可以统一修改了
# a = input('a = ') # 输入的默认是字符,int() ——integer
a, b = 1, 2
print(f'a = {a}, b = {b}')
a, b = 35, a
print(f'a = {a}, b = {b}') # 输出结果是a= 35, b= 1,右边的就是个局部变量1,而不是a
(a, b) = (3, 4)
print(f'a = {a}, b = {b}')
(a, b, c) = [5, 6, 7]
print(f'a = {a}, b = {b}, c = {c}')
(a, b, c) = ["字符串a的值", "字符串b的值", "字符串c的值"]
print(f'a = {a}, b = {b}, c = {c}')
# END_1
变量 - 数据的载体
- 变量名字母(Unicode字符)、数字、下划线,不能使用特殊字符,数字不能开头
- 变量名是区分大小写的(大小写敏感)
- 不能使用python的关键字(python代码中有特殊含义的单词)和保留字(已经被python用过的)
- 见名知意(看到变量的名字,就能知道它代表了什么意思)
- 变量的命名使用全小写,多个单词用下划线进行分隔(Snake case :比如student_age)
数据类型
python的数据类型是动态的
type(a)得到变量类型
123e-5浮点数,表示123*10^-5=0.00123
数据类型 int, float, str——string, bool——boolean, complex(3+5j)
进制
十进制转换二进制,一直除二,结果是倒着排的。
# START_4 十进制、八进制、十六进制、二进制计数法
data_decimal = 110 # 十进制计数法
data_octal = 0o110 # 八进制计数法
data_hexadecimal = 0x110 # 十六进制计数法,a表示10
data_binary = 0b110 # 二进制计数法
print(data_decimal, data_octal, data_hexadecimal, data_binary)
# bin--->十进制转换为二进制,oct--->十进制转换八进制,hex--->十进制转换十六进制
print(bin(110), oct(110), hex(110))
# END_4
初始代码添加设置
Windows中的pycharm路径为settings=>editor=>file and code templates=>python script=>添加代码模板
${}占位符里面有些是可以直接获取到的,比如NAME是代码名字,USER是系统名,DATE是时间。
"""
${NAME} -
Author: ${USER}
Date: ${DATE}
"""
格式化输出
# START 格式化输出
a = 10
b = 2.12345
print('第一种:', a, '+', b, '=', a + b)
print('第二种:%d + %.1f = %f' % (a, b, a + b)) # 使用占位符,%f表示float格式,%.1f保留一位小数
print('第二种*:%d %% %f = %f' % (a, b, a % b)) # %%转义
# f - format - 格式化字符串
print(f'第三种:{a} + {b} = {a + b}') # python3.6之后的
print(f'第三种*:{a} + {b:.3f} = {a + b:.2f}') # :.nf保留位数
# END
# START float的bug问题
print(0.1 + 0.2 + 0.3)
print(0.3 + 0.2 + 0.1)
print((0.1 + 0.2 + 0.3) == (0.3 + 0.2 + 0.1)) # 结果是false
print(round(0.1 + 0.2 + 0.3, 1) == (0.3 + 0.2 + 0.1)) # 结果是true
# END
代码
直接把全部代码也放上来,防止以后丢失~~
"""
example01 - 初步学习Python
1、赋值
2、算式运算
3、数据类型
4、进制
5、格式化输出
6、浮点数计算的bug
7、运算符以及逻辑运算的应用
Author: danlis
Date: 2023/08/30
"""
# 注释单独一行前面不需要空格,但是如果跟在后面,前面需要加两个空格。
print('hello,world', end='输出结束后续跟的内容\n') # print默认是换行,不换行的话,可以设置end值。加注释需要空格。
# START_1 赋值
# 改变变量名,直接变量右键refactor,rename就可以统一修改了
# a = input('a = ') # 输入的默认是字符,int() ——integer
a, b = 1, 2
print(f'a = {a}, b = {b}')
a, b = 35, a
print(f'a = {a}, b = {b}') # 输出结果是a= 35, b= 1,右边的就是个局部变量1,而不是a
(a, b) = (3, 4)
print(f'a = {a}, b = {b}')
(a, b, c) = [5, 6, 7]
print(f'a = {a}, b = {b}, c = {c}')
(a, b, c) = ["字符串a的值", "字符串b的值", "字符串c的值"]
print(f'a = {a}, b = {b}, c = {c}')
# END_1
# START_2 python的算式运算
a = 10
b = 2.5
print(a // b) # 整除
print(a ** b) # 求幂
print(a / b)
print(a % b) # 求余数,一般呢,都会进行空格
print(a + b)
print(a * b)
# END_2
# START_3 数据类型 int, float, str——string, bool——boolean, complex
data_int = 1 # 整数类型
data_float = 1.4 # 浮点数类型
data_str = '字符串string' # 字符串类型
data_true = True # 布尔类型
data_complex = 3 + 5j # 复数类型complex
print(data_int, type(data_int)) # 可以使用逗号隔开,输出多个值
print(data_float, type(data_float))
data_float = 123e-5
print("浮点数123e-5", data_float) # 浮点数的科学计数法,123*10^-5
print(data_str, type(data_str))
print(data_true, type(data_true))
print(data_complex, type(data_complex))
# END_3 数据类型
# START_4 十进制、八进制、十六进制、二进制计数法
data_decimal = 110 # 十进制计数法
data_octal = 0o110 # 八进制计数法
data_hexadecimal = 0x110 # 十六进制计数法,a表示10
data_binary = 0b110 # 二进制计数法
print(data_decimal, data_octal, data_hexadecimal, data_binary)
# bin--->十进制转换为二进制,oct--->十进制转换八进制,hex--->十进制转换十六进制
print(bin(110), oct(110), hex(110))
# END_4
# START_5 格式化输出
b = 2.12345
print('第一种:', a, '+', b, '=', a + b)
print('第二种:%d + %.1f = %f' % (a, b, a + b)) # 使用占位符,%f表示float格式,%.1f保留一位小数
print('第二种*:%d %% %f = %f' % (a, b, a % b)) # %%转义
# f - format - 格式化字符串
print(f'第三种:{a} + {b} = {a + b}') # python3.6之后的
print(f'第三种*:{a} + {b:.3f} = {a + b:.2f}') # :.nf保留位数
# END_5
# START_6 float的bug问题
print(0.1 + 0.2 + 0.3)
print(0.3 + 0.2 + 0.1)
print((0.1 + 0.2 + 0.3) == (0.3 + 0.2 + 0.1)) # 结果是false
print(round(0.1 + 0.2 + 0.3, 1) == (0.3 + 0.2 + 0.1)) # 结果是true
# END_6
# START_7 运算符以及逻辑运算的应用
# 赋值运算符:右边的值赋给左边(变量)---> =
# 算术运算符:+ - * / % ** //整除
# 复合的赋值运算符: = += -= *= %= **= /=
# 关系运算符: > < >= <= == != ---> 产生布尔值(True或者False)
# 逻辑运算符:把多个布尔值处理成一个布尔值 ---> and与,or或,not非。and和or两个运算符有短路功能,因此也被称为短路运算符
a, b = 4, 7
a *= b + 3 # a=a*(b+3)也就是说右边的式子是作为一体的a*=(b+3)
print(f'a = {a}, b = {b}')
# 输入一个年份,判断这个年份是不是闰年。规则:四年一闰,百年不闰,四百年又闰。
data_year = int(input("请输入年份,我将判断是否是闰年:"))
flag1 = data_year % 4 == 0 # 是4的倍数,逻辑运算大于赋值运算。
flag2 = data_year % 100 != 0 # 不能是100的倍数。
flag3 = data_year % 400 == 0 # 是400的倍数。
print(flag3 or (flag2 and flag1))
# 输入三角形的三条边的长度,判断是否构成三角形。规则:任意两边长度和大于第三边。
# END_7