Python入门基础知识(一)

一、关于安装
1.python环境安装

https://www.cnblogs.com/Yanjy-OnlyOne/p/9764143.html

2.IDE pycharm安装,用python自带的IDE IDLE也不错

https://blog.csdn.net/qq_15698613/article/details/86502371

关于pycharm的破解,试了很多方法,永久破解的方法基本都失效了,还是乖乖的用激活码吧。。http://idea.lanyus.com/

二、基础知识
先抛一段代码

from datetime import datetime

odds = [1,  3,  5,  7,  9, 11, 13, 15, 17, 19,
       21, 23, 25, 27, 29, 31, 33, 35, 37, 39,
       41, 43, 45, 47, 49, 51, 53, 55, 57, 59]

for i in range(5):
    right_this_minute = datetime.today().minute

    if right_this_minute in odds:
        print("This minute seems a little odd.")
    else:
        print("Not an odd minute.")

是不是很简单,下面知识点要记小本本啦
1.python中的变量随用随定义,不需要声明一个变量的类型。在python中为一个变量赋值时,她会自动获取相应数据的类型
2.函数+模块=标椎库,python提供了一个强大的标准库,允许你访问大量可重用的模块(datatime就是其中的一个例子)

import sys
sys.platform #操作系统内核名

import os 
os.getcwd() #获得当前目录
os.environ #访问系统的全部环境变量
os.getenv('HOME')#单独访问某一环境变量

import datetime
datetime.date.today()#获得今天日期
datetime.date.isoformat(datatime.date.today())#将今天日期转换成一个字符串

import time 
time.sleep(5)

import random
dir(random)#显示该模块的所有属性
random.randint(1,60)#获取随机数
help(random.randint)#使用heip读取python文档

#for循环
for i in[1,2,3]:
	print(i)
	
for ch in 'Hi!':
	print(ch)

for num in range(5):
	print('hello world')

for循环可以迭代固定次数,可以迭代处理任意的序列(如列表和字符串),也可以执行固定的次数(利用range函数)

再来一段简单的代码吧


word = "bottles"
for beer_num in range(99, 0, -1):
    print(beer_num, word, "of beer on the wall.")
    print(beer_num, word, "of beer.")
    print("Take one down.")
    print("Pass it around.")
    if beer_num == 1:
        print("No more bottles of beer on the wall.")
    else:
        if (beer_num - 1) == 1:
            word = "bottle"
        print(beer_num - 1, word, "of beer on the wall.")
    print()

Python中一切都是对象,而且所有对象都可以赋给变量

放一张近期看到的形象生动富有感染力的图片
Python入门基础知识(一)_第1张图片
认识四个内置的数据结构
1.列表:有序的可变对象集合[]
列表就像一个数组

vowels = ['a','e','i','o','u']
word = "Milliways"
found = []
for letter in word:
    if letter in vowels:
        if letter not in found:
            found.append(letter)
for vowel in found:
    print(vowel)
    
        
        
num = [1,2,3,4]
num.remove(3)#删除某个值
num.pop()
num.pop(0)#0是索引值
num.extend([4,5])#提供一个对象列表,追加到现有列表
num.insert(0,1)#取一个索引值和一个对象作为参数

下面这段代码能看懂吧


phrase = "Don't panic!"
plist = list(phrase)
print(phrase)
print(plist)

for i in range(4):
    plist.pop()
plist.pop(0)
plist.remove("'")
plist.extend([plist.pop(),plist.pop()])
plist.insert(2,plist.pop(3))

new_phrase = ''.join(plist)
print(plist)
print(new_phrase)

列表适合存储相关对象的集合;
列表与其他语言的数组很类似,不过列表可以根据需要动态收缩和扩展;
对象列表用中括号包围,对象之间用逗号分割,空列表表示为[]
列表的复制用copy()方法;
列表支持中括号记法:letter[start:stop:step],支持负索引,可以用中括号记法从任何列表选择单个对象


phrase = "Don't panic!"
plist = list(phrase)
print(phrase)
print(plist)

new_phrase = ''.join(plist[1:3])
new_phrase = new_phrase + ''.join([plist[5],plist[4],plist[7],plist[6]])

print(plist)
print(new_phrase)

列表的方法悔会改变一个列表的状态,而使用中括号记法和切片通常不会改变列表状态
2.元组:有序的不可变对象集合()
元组是一个不可变的列表
元组用小括号包围,而列表用中括号
只有一个对象的元组

t = ('python',)#没逗号的话是字符串

3.字典:无序的键值对集合{}
字典存储键值对;
字典不会维持插入时的顺序;
访问字典中的数据要使用中括号。将键放在中括号里可以访问与这个键关联的值;
for循环可以迭代的处理一个字典,每次迭代时,键会付给循环变量,用来访问数据值;
字典的键必须初始化。
item方法允许按行迭代处理一个字典,按键值对迭代处理。一次迭代中,items方法会向for循环返回下一个键和他的关联值。


vowels = ['a', 'e', 'i', 'o', 'u']
word = input("Provide a word to search for vowels: ")

found = {}

for letter in word:
    if letter in vowels:
        found[letter] += 1
        
for k, v in sorted(found.items()):
    print(k, 'was found', v, 'time(s).')

4.集合:无序的唯一对象集合{}
集合不允许有重复的对象

vowels = ['a','e','i','o','u'] 
vowels = set(vowels)#用set方法快速生成一个集合,可以向set函数传递任何序列,有这个序列中的对象创建一个元素集合(去除所有重复)

word = 'hello'
u = vowels.union(set(wod))#并集
d = vowels.difference(set(word))#找出不是共有的元素
i = vowels.intersevtion(set(word))#报告共有对象
sort(list())#转变为一个有序列表
vowels = set('aeiou')
word = input('provide a word to search for vowels:')
found = vowels.intersection(set(word))
for vowel in found:
    print(vowel)

美观打印

pprint()

三、函数与模块

引入函数:
1.函数引入了两个新关键字:def和return
2.函数可以接收参数数据
3.函数包括代码、(通常还有文档),要为一个代码增加一个多行注释,需要用三重引号包围注释文本

函数时命名的代码块

python允许将任何对象作为参数发送给函数,而且允许将任何对象作为返回值返回。解释器不关心也不检查这些对象的类型是什么(他只检查是否提供了参数和返回值)
函数可以接受多个命名参数,也可以没有参数


def search4vowels(phrase:str) ->set:
    """Returns the set of vowels found in 'Phrase'."""
    return set('aeiou').intersection(set(phrase))

def search4letter(phrase:str,letters:str = 'aeiou') ->set:
    """Returns the set of 'letters' found in 'phrase'."""
    return set(letetrs).intersection(phrase)

bool函数
可以向bool函数传递任何值来确定他是True还是False
严格来讲,任何非空的数据结构都计算为True

使用注解来帮助建立函数文档,并使用“help”BIF查看注解

函数出了位置赋值,还可以使用关键字。使用关键字时,任何顺序都是可以的(因为使用关键字可以去除任何二义性,位置不在重要)

函数构成模块
查看模块时,你的解释器会在三个主要模块搜索模块,分别是
1、你的当前工作目录
2、你的解释器的site-packages位置
3、标准库的位置

使用“setuptools”将模块安装到site-packages
1.创建一个发布描述
创建两个文件,一个setup.py,一个README.txt,并把这两个文件和要安装的模块放在同一个文件夹下

from setuptools import setup

setup(
    name='vsearch',  #name参数指定发布包。常见的做法事按模块命名发布包
    version='1.0', 
    description='The Head First Python Search Tools',
    author='HF Python 2e',
    author_email='[email protected]',
    url='headfirstlabs.com',
    py_modules=['vsearch'],#这是包含在这个包中的所有“.py”文件的列表
)

2.创建发布文件
在windows命令提示窗口键入如下代码

py -3 setup.py sdist

命令成功执行后,这三个文件已经合并到一个发布文件中,这是一个可安装文件,包含了你的模块的源代码,在这里这个文件名为你会在一个名为vsearch-1.0.zip,dist中找到新创建建的这个zip文件。

3.安装发布文件

py -3 -m pip install vsearch-1.0.zip

这三个步骤就可以确保把模块安装到site-packages位置了,之后你就可以import了

python的函数参数语义既支持按值调用也支持按引用调用
列表、字典和集合(都是可变的)总是按引用传入函数
字符串、整数和元组(不可变)总是按值传入参数

你可能感兴趣的:(python)