pycharm基础使用入门

输出

  1. print函数

    print('hello world')

    右键选择run或者右上角的三角形运行,可以运行出结果

    "E:\all sorts of learning programme software\python\anaconda\python.exe" "E:/code/python code/Python编程基础/python_1.py
    hello world Process finished with exit code 0

入门例子:

  1. 利用open函数将输出写入txt

    # print('hello world')
    string = 'hello world'
    f = open('hello.txt', 'w') # 以写的方式打开文件
    f.write(string) # 将字符串写入被打开的文件中
    f.close() # 关闭文件

    ​ 在项目文件夹中就能得到一个txt文件

  2. 循环

    机器学习 = ['决策树', '神经网络', '支持向量机']
    for i in 机器学习:
    print(i)
    print(i)
  3. 注意:

    1. 代码块以Tab或空格缩进限制,缩进是python的灵魂,一旦代码块不对齐就会发生报错
    2. 中文可以作为变量名称但不推荐
    3. python变量不需要提前声明,只需要直接赋值

练习1:求y=sin(x)从0到2*pi,与x轴围成的面积

  1. python标准数据类型

    1. number(数字)

      • int

      • float

      • bool

        • True
        • False
        • 注意记得大写
      • complex

      1. 变量无需提前声明是整型还是浮点型,直接赋值就行。

      2. 使用例子

        import math # 导入相应的数学模块
        import random # 导入random包
        a = -3.5
        res = abs(a)
        print(res)
        res = math.sin(res) # 调用math包里的sin函数
        math.acos(res)
        print(res)
        choice = random.choice(range(1, 10))
        print(choice)

        导包之后再使用对应函数

        math包的常用函数

        函数 返回值 ( 描述 )
        abs(x) 返回数字的绝对值,如abs(-10) 返回 10
        ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5
        exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
        fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0
        floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4
        log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
        log10(x) 返回以10为基数的x的对数,如math.log10(100)返回 2.0
        max(x1, x2,...) 返回给定参数的最大值,参数可以为序列。
        min(x1, x2,...) 返回给定参数的最小值,参数可以为序列。
        modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
        pow(x, y) x**y 运算后的值。
        [round(x ,n]) 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
        sqrt(x) 返回数字x的平方根,返回类型为实数,如math.sqrt(4)返回 2+0j
    2. string(字符串)

    3. list(列表)

      • 列表中每个元素都是可变的;

      • 列表中的元素是有序的,每个元素对应一个位置;

      • 列表可以容纳Python中的任何对象。

      • 具体操作

        # 列表
        all_in_list = [0.3, 'hello', True]
        print(all_in_list) res = all_in_list[0] # 列表的索引
        res = all_in_list[-3] # 列表从右往左的顺序 res = all_in_list[0:1] # 列表的切片,左闭右开区间
        print(res)

        注意:

        • 这是list中的顺序,要注意从右往左的负值的取法

      • 列表的增删改插

        all_in_list.append('hello world')   # 新增元素
        all_in_list.insert(0,'pre-hello')
        print(all_in_list) all_in_list.remove('hello world') # 删除元素
        del all_in_list[:2]
        print(all_in_list) all_in_list[0] = 100 # 列表元素的修改
        print(all_in_list)

        注意:

        • 列表的切片操作,冒号左边不填数字默认为0,右边数字不填默认为list的尾部index
      • 列表的常用方法

        名称 函数说明
        list.append(obj) 在列表末尾添加新的对象
        list.count(obj) 统计某个元素在列表中出现的次数
        list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
        list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
        list.insert(index, obj) 将对象插入列表
        list.pop(obj=list[-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
        list.remove(obj) 移除列表中某个值的第一个匹配项
      • 简单介绍for语句循环

        # for循环
        x = []
        for i in range(10):
        x.append(i)
        print(x)
        print(x)

        注意:

        • x = [] 就可以建一个list
        • range(int x) 取值也是左闭右开,没有特殊说明起点将从0开始
      • 列表推导式

        # 列表推导式
        b = [i for i in range(1, 11)] # 列表推导式
        c = [i**2 for i in range(1, 11)]
        d = [i**2 for i in range(1, 11) if i % 2 == 0]
        print(b)
        print(c)
        print(d)

        注意:

        • 第一个值为输入到表中的值
        • i**x 指i的x次方
        • 接下来为for语句的写法
        • 若有限制条件就在继续写一个if语句,对i进行限制
      • 完成练习1:利用列表推导式和积分知识得到结果

        # 练习1:求曲边图形的面积
        # 利用列表推导式构建核心数据结构
        import math
        n = 900000
        width = 2*math.pi/n
        y = [abs(math.sin(i*width))*width for i in range(n)]
        res = sum(y)
        print(res)
    4. dictionary(字典)

      # 字典
      dic = {
      'h': 'hello',
      0.5: [0.3, 0.2],
      'w': 'world'
      }
      # dic = {
      # 'h': 'hello',
      # 0.5: [0.3, 0.2],
      # 'w': 'world',
      # [0]: 0.5
      # }
      #
      print(dic)
      # res = dic[0]
      # print(res)
      res = dic['h'] # 字典中的元素无先后顺序,通过键来访问值
      print(res)

      注意:

      1. 字典中的键不能是可变的值,因此使用列表当作键会报错
      2. 字典中的每个键是只能对应一个值,如果出现相同键的赋值则会发生覆盖
      dic['h'] = 100
      print(dic['h'])
      dic['hw'] = 'hello world' # 新增键值对
      print(dic)
      dic.update({1: 2, 3: 4}) # 新增多对键值对
      print(dic)
      del dic['h'] # 删除单个键值对
      print(dic)
      # del dic # 删除字典
      # print(dic)

      字典推导式

      a = {i: i**2 for i in range(10)}
      print(a)

      注意:

      • 其实用法和for的推导式是一样的,只需要换成键值对形式
    5. sets(集合)

    6. tuple(元组)

程序流程控制语句

  1. 算术运算符

    操作符 描述 实例
    + 加法-返回两操作数相加的结果 3+2返回5
    - 减法-返回左操作数减去右操作数的结果 3-2返回1
    ***** 乘法-返回两操作数相乘的结果 3*2返回6
    / 除法-返回右操作数除左操作数的结果 3/2返回1但3.0/2返回1.5
    % 模-返回右操作数对左操作数取模的结果 5%3返回2
    ** 指数-执行对操作指数的计算 3**2返回9
    // 取商-返回右操作数对左操作数取商的结果 3.0//2返回1.0
  2. 赋值操作符

    操作符 描述 例子
    = 简单的赋值运算符,赋值从右侧操作数左侧操作数 c=a+b将 a和b相加的值赋值给 c
    += 加法AND赋值操作符,它增加了右操作数左操作数和结果赋给左操作数 c += a 相当于 c = c + a
    -= 减法AND赋值操作符,它减去右边的操作数从左边操作数,并将结果赋给左操作数 c -= a 相当于 c = c - a
    *= 乘法AND赋值操作符,它乘以右边的操作数与左操作数,并将结果赋给左操作数 c *= a 相当于 c = c * a
    /= 除法AND赋值操作符,它把左操作数与正确的操作数,并将结果赋给左操作数 c /= a 相当于c = c / a
    %= 模量AND赋值操作符,它需要使用两个操作数的模量和分配结果左操作数 c %= a相当于c = c % a
    **= 指数AND赋值运算符,执行指数(功率)计算操作符和赋值给左操作数 c **= a 相当于 c = c ** a
    //= 取商,并分配一个值,执行取商并将结果赋值给左操作数 c //= a 相当于 c = c // a
  3. 比较操作符

    操作符 描述 实例
    == 如果两个操作数的值相等则返回True,否则返回False 3==2返回False
    != 如果两个操作数的值不等则返回True,否则返回False 3!=2返回True
    <> 与!=效果相同(3.x版本中无此功能) 3<>2返回True
    > 如果左操作数大于右操作数则返回True,否则返回False 3>2返回True
    < 如果左操作数小于右操作数则返回True,否则返回False 3<2返回False
    >= 如果左操作数大于或等于右操作数则返回True,否则返回False 3>=3返回True
    <= 如果左操作数小于或等于右操作数则返回True,否则返回False 2<=2返回True
  4. 逻辑运算符

    操作符 描述 实例
    and 逻辑与运算符。当且仅当两个操作数为真则返回真,否则返回假。 True and False返回False
    or 逻辑或运算符。当且仅当有两个操作数至少一个为真则返回真,否则返回假 True or False返回True
    not 逻辑非运算符。用于反转操作数的逻辑状态。 not True 返回False
  5. 逻辑控制符的小案例

    # python逻辑控制符
    res = 1 < 2
    print(res) # True
    res = 1 < 2 < 3
    print(res) # True
    res = 'Name' == 'name'
    print(res) # False
    res = 'M' in 'Magic'
    print(res) # True

    注意:

    1. python可以连续比较得出结果
    2. python比较字符串区分大小写
    3. python寻找字串不区分大小写

练习2:冒泡排序

对序列[1,2,6,0.3,2,0.5,-1,2.4]按从小到大顺序进行排列。

  1. 条件判断语句

    # 条件判定语句
    if 1 < 2:
    print('hello') # out:hello if 1 < 0:
    print('hello')
    else:
    print('world') # out:world if 1 < 0:
    print('hello')
    elif 2 < 1:
    print('world')
    else:
    print('hehe') # out:hehe
  2. 冒泡排序

    # 冒泡排序
    x = [1, 2, 6, 0.3, 2, 0.5, -1, 2.4]
    n = len(x)
    print(n)
    for i in range(n):
    for j in range(i):
    if x[j] > x[i]:
    x[i], x[j] = x[j], x[i]
    print(x)

    注意:x[i], x[j] = x[j], x[i]交换语句不需要自己建立临时变量,这样写就能交换值

    字符串

    # 字符串
    # string = "My name"
    # string = '''My
    #
    #
    # name'''
    string = 'My name '
    res = string[0] # 字符串的索引
    print(res)
    res = string[:2] # 切片
    print(res)
    res = string * 2 # 重复
    print(res)
    res = string + 'is xxx'
    print(res)

    注意:

    1. 字符串的索引和切片操作和list相似
    2. 字符串可以用单引号,可以用双引号,也可以用3引号(3个引号,不论是单引号还是双引号,三引号可以任意换行)
    3. + 可以将字符串拼接起来,* 可以重复字符串
    res = string.split()
    print(res)
    res = string.split(',')
    print(res)
    print(string)
    res = string.lower()
    print(res)
    # string[0] = 'y'
    # print(string)

    注意:

    1. split默认以空格作为分隔符,除非用户指定了分割符
    2. string是不可变的数据类型,分割操作没有对原字符串进行操作,而是新建了一个list副本,并且也不可以直接修改string的数据

    string的常用方法

    名称 说明
    split(sep="",num=string.count(str)) num=string.count(str)) 以 sep 为分隔符截取字符串,如果 num 有指定值,则仅截取 num 个子字符串
    S.strip([chars]) 返回字符串的一个副本,删除前导和尾随字符。chars参数是一个字符串,指定要移除的字符集。如果省略或为None,则chars参数默认为删除空白字符。
    S.lower() 将字符串所有大写字符变为小写
    S.isalnum() 如果字符串至少有一个字符,并且所有字符都是数字或者字母,则返回true,否则返回false。
    S.count(sub[,start[,end]]) 返回在[start, end]范围内的子串sub非重叠出现的次数。可选参数start和end都以切片表示法解释。
    replace(old, new [, max]) 将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。

文件操作

# 文件操作
f = open('Walden.txt', 'r') # 以读的方式打开文件
txt = f.read() # 读取文件内容
# txt_line = f.readlines()
f.close() # 关闭文件 print(txt)
  1. 打开文件

    访问模式 说明
    r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
    w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
    wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
  2. 进阶打开模式

    访问模式 说明
    r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
    w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
    rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
    wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
  3. 文件操作方法

    模式 说明
    f.close() 关闭文件,记住用open()打开文件后需得关闭它,否则会占用系统的可打开文件句柄数。
    f.flush() 刷新输出缓存。
    f.read([count]) 读出文件全。若有count值,则读取count个字符
    f.readline() 读出一行信息。
    f.readlines() 读出所有行,也就是读出整个文件的信息。
    f.write(string) 把string字符串写入文件。
    f.writelines(list) 把list中的字符串一行一行地写入文件,是连续写入文件,没有换行。

练习3:统计小说词频

# 练习3: 统计小说中的单词频次
import re
f = open("Walden.txt", 'r')
txt = f.read()
f.close()
txt = txt.lower()
txt = re.sub('[!,.?:;"\'-]', '', txt) # 去除小说中的标点符号
words = txt.split() # 单词分割
word_sq = {}
for i in words:
if i not in word_sq.keys():
word_sq[i] = 1
else:
word_sq[i] += 1
res = sorted(word_sq.items(), key=lambda x: x[1], reverse=True) # 排序
print(res)

函数

# 函数自定义
def Sum(x, y=1):
return x + y y = lambda x: x ** 2
y1 = lambda x: x[1] res = Sum(1, 2)
print(res)
res = y(10)
print(res)
res = y1(['hello', 10])
print(res)

注意:

  1. 定义函数的时候,前面的函数定义了x=1 那往后的参数都要定义类似的格式,但如果是后面的的定义了y=1 则前面的无需定义成相同的格式
  2. lambda用于快速定义函数,实现一个简单的return 功能

练习4:自定义求序列偶数个数的函数

def coulpe(x):
z = 0
for i in x:
if i % 2 == 0:
z += 1
return z res = coulpe([1, 2, 3, 4, 5, 6])
print(res)

注意:

  1. python的函数不需要定义函数的返回值类型。有return就有返回值并且无需理会是什么类型的返回值,没有return就对应着各大语言的void。

面向对象

all_in_list = [2.5, 'hello', 'world', 3]
all_in_list.append('hehe') # 对于字符串而言,没有append方法操作
print(all_in_list) string = 'My name'
res = string.split() # 对于列表而言,没有split方法操作
print(res)

有点编程基础的可以明白,什么是面向对象,什么叫方法~

python和一般的语言定义类不同

# 面向对象
class Human:
def __init__(self, age=None, sex=None):
self.age = age # 属性
self.sex = sex def square(self, x): # 方法
return x**2 zhangfei = Human(age=23, sex='男')
res = zhangfei.square(10) print(res)
res = zhangfei.age
print(res)
res = zhangfei.sex
print(res)

注意:

  1. def __init__(): python的类的构造方法要重写这个函数
  2. 初始化对象的时候,zhangfei = Human(age=23, sex='男') 要用类似的初始化格式

python模块使用

模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py

import numpy as np
from numpy import array
from numpy import * # 一般不建议这样

想要下载第三方库:打开cmd,运行下面的命令

pip install xxxx(第三方库名)

获取工作路径

import os
path = os.getcwd()
print(path)

如果不确定,懒得去确定工作路径,可以用这个方式直接获取工作路径的字符串

注意:py文件起名尽量不要与库文件重名,会有未知的错误发生

pycharm基础使用入门的更多相关文章

  1. Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 1. 神秘朋友

    Python (Windows 下) 自带了一个非常有趣的 海龟绘图程序 (turtle),它是本系列课程的主角. 在 PyCharm 中,新建一个项目,然后在代码编辑器中输入 import turt ...

  2. Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 0. 准备工作

    一.关于 Python Python 是全球使用人数增长最快的编程语言!它易于入门.功能强大,从 Web 后端 到 数据分析.人工智能,到处都能看到 Python 的身影. Python 有两个主要的 ...

  3. Linux基础知识入门

    [Linux基础]Linux基础知识入门及常见命令.   前言:最近刚安装了Linux系统, 所以学了一些最基本的操作, 在这里把自己总结的笔记记录在这里. 1,V8:192.168.40.10V1: ...

  4. cmd 与 bash 基础命令入门

    身为一个程序员会用命令行来进行一些简单的操作,不是显得很装逼嘛!?嘿嘿~ ヾ(>∀<) cmd 与 bash 基础命令入门       简介       CMD 基础命令          ...

  5. IM开发者的零基础通信技术入门(二):通信交换技术的百年发展史(下)

    1.系列文章引言 1.1 适合谁来阅读? 本系列文章尽量使用最浅显易懂的文字.图片来组织内容,力求通信技术零基础的人群也能看懂.但个人建议,至少稍微了解过网络通信方面的知识后再看,会更有收获.如果您大 ...

  6. IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)

    [来源申明]本文原文来自:微信公众号“鲜枣课堂”,官方网站:xzclass.com,原题为:<通信交换的百年沧桑(上)>,本文引用时已征得原作者同意.为了更好的内容呈现,即时通讯网在收录时 ...

  7. 序言 - PHP零基础快速入门

    我为什么要写<PHP零基础快速入门>? 原因: PHP 真心简单,适合零基础的人快速入门掌握,身边的人学习一两周上手开发的比比皆是: 市面上的文章或书籍对初学者并不友好,多半枯燥乏味,我相 ...

  8. Java基础语法入门01

    Java基础语法入门01 学习java你要先进行去了解JDK,JRE,JVM JDK Java开发工具包 JRE Java语言开发的运行环境 JVM Java虚拟机,用于Java语言的跨平台所用. 当 ...

  9. 贝叶斯公式由浅入深大讲解—AI基础算法入门

    1 贝叶斯方法 长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大.而且概率虽然未知,但最起码是一个确定 ...

随机推荐

  1. MySQL笔记04(黑马)

    今日内容 多表查询 事务 DCL 多表查询 * 查询语法: select 列名列表 from 表名列表 where.... * 准备sql # 创建部门表 CREATE TABLE dept( id ...

  2. jquery给动态生成的元素绑定事件,on函数

    首先先解释一下什么是动态生成的元素:动态生成的元素即我们用jquery的内部插入函数append()所生成的html代码.相对的也有静态生成的元素:即直接编写在页面的html代码. 下面通过例子来讲解 ...

  3. selenium 鼠标事件操作

    1.操作鼠标事件的类:ActionChains  perform()  执行所有ActionChains中存储的行为 context_click()  右击 double_click()   双击 d ...

  4. 徒手用 Go 写个 Redis 服务器(Godis)

    作者:HDT3213 今天给大家带来的开源项目是 Godis:一个用 Go 语言实现的 Redis 服务器.支持: 5 种数据结构(string.list.hash.set.sortedset) 自动 ...

  5. OOP第三次总结Blog

    1. 前言 相比于前一次Blog题目集,此次七八九题目集偏重于类的继承.多态性使用方法以及接口的应用;在设计层面,强调模式复用,不断的迭代,若前期设计不合理,则后续的题目增加新的功能(即可扩展性)将会 ...

  6. 【模拟7.27】单(liu_runda学长的神题)

    好像用到一些高中数学知识...... 满分做法: case 0:已知a数组求b数组 因为是树状结构,设当前节点x 儿子to 我们从任意一点出发可求出b[root]来,之后我们可以通过寻找两两相连节点的 ...

  7. noip2010 总结

    机器翻译 题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 题目描述 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换.对于每个英文单词 ...

  8. 数位dp从会打模板到不会打模板

    打了几个数位$dp$,发现自己除了会打模板之外没有任何长进,遇到非模板题依然什么都不会 那么接下来这篇文章将介绍如何打模板(滑稽) 假设我们要处理$l----r$ 采用记忆化搜索的方式,枚举$< ...

  9. Linux安装界面简介

    1.安装欢迎界面:install or upgrade an exsiting system:安装或升级现有系统 install system with basic video driver:安装过程 ...

  10. Linux操作系统(一)

    计算机本身就是一堆硬件,这些硬件中最核心的就是CPU(运算器,控制器) 和存储器设备. 为了能够实现计算机获取数据,数据的输入输出等等需要输入设备和输出设备. 计算机体系内部:主要是通过桥接接入当前系 ...