[파이썬] 길 - 기본

입출력

a = input():用户从电脑输入一些字符,放到a中
a是一个变量,随便起什么名字都可以

print():
在括号中加上字符串,就可以向屏幕上输出指定的文字
print("这里写字符串")

接受多个字符串,用逗号“,”隔开,就可以连成一串输出
print("this","is","python")
    

들여 쓰기

탭 : 4 개 공간

데이터 유형 및 변수

정수 : 어떤 크기의 정수입니다. 어떤 크기 제한은 , 정수 연산은 항상 정확하지 않습니다.

플로트 : 진수를. 쓰기 : 1.23,3.14로 작성 수학, 과학 표기법 : 1.23x10 ^ 9 작성 1.23e9, 부동 소수점 연산은 프로그램의 오류를 반올림 할 수있다

문자열 : 작은 따옴표 '나 큰 따옴표 "텍스트는 동봉.

부울 값 : 참, 거짓. 첫 글자는 대문자로 . 작업 : AND, OR,하지

빈 값 : 없음

변수 : 프로그램이 변수 이름을 사용하는 것입니다, 변수 이름은 대문자와 소문자, 숫자 여야합니다 _숫자로 시작할 수 없습니다, 조합.

상수 : 변수 이름은 모두 대문자의 같은 상수를 나타낼PI=3.14159265359

참고 :

파이썬 등호는 =, 데이터 종류가 변수에 할당 할 수있는 할당 문은 동일한 변수 할당을 반복 할 수 있고, 예를 들면 변수의 종류 일 수있다 :

a = 123 # a是整数
print(a)
a = 'ABC' # a变为字符串
print(a)

고정되지 않은 변수 자체가 이러한 유형의 언어 동적 언어라고, 대응하는 언어는 정적이다. 정적 언어는 변수 변수 유형을 정의 할 때, 시간 할당은 형식이 일치하지 않는 경우,이 오류가 발생하지 지정해야합니다. (// 코멘트를 의미)는 다음과 같이 자바와 같은 정적 언어, 할당 문은 다음과 같습니다

int a = 123; // a是整数类型变量
a = "ABC"; // 错误:不能把字符串赋给整型变量

요약 :

/:

10 / 3  # 3.3333333333333335

/심지어 완전히 나누어 두 정수 부동 소수점 나눗셈 연산 결과는 소수점 결과 부동이다 :

//:호출 바닥 부문뿐만 아니라 정수 플로어하기 //에도 항상 불가분의 정수, 수.

10 // 3 # 3

나머지 작업은 %두 개의 정수의 나눗셈의 나머지를 얻을 수 있습니다 :

10 % 3 # 1

코딩

연혁

ASCII코드는 : 컴퓨터가 미국의 발명이기 때문에, 따라서 첫 번째 127 개 문자는 같은 대문자와 소문자, 숫자 및 일부 기호, 컴퓨터로 코딩 A은 IS 코드를 65소문자 z코드입니다 122.

Unicode코딩 : 유니 코드 모든 언어는 코딩의 집합으로 통합되어, 코딩 미국은 쓰레기 문제는 동일한 결과를하지 않습니다 해결합니다. 그러나 많은 저장 공간;

UTF-8인코딩 : 1-6 일반적으로 사용되는 문자는 일반적으로 3 바이트 만 드문 문자가 4로 인코딩 된 바이트 문자로 인코딩하는 인코딩 된 바이트의 크기에 따라 숫자로 유니 코드 문자 것 -6 바이트.

공간을 절약 할 수 있습니다.

ASCII 코드는 실제로 UTF-8 인코딩의 일환으로 볼 수있다

쓰기 파일의 트랜스 코딩 과정

메모리의 필요성은 시간을 절약하거나 하드 디스크를 전송하고자하는 경우, 유니 코드 인코딩을 사용은 UTF-8 인코딩으로 변환됩니다.

시간을 편집 메모장을 사용하여,

읽기 : UTF-8 ==> 유니 코드를. 메모리에 하드 디스크

저장 : 유니 코드 ==> UTF-8. 하드 디스크에 메모리

파이썬 3는 문자열 유니 코드, 여러 언어에 대한 직접 지원을 사용합니다.

특징 : 비 수정

관련 방법

ord()함수는 정수 표현의 특성을 얻을 수

chr()해당 문자 변환 기능

>>> ord('A')
65
>>> ord('中')
20013

len(): 계산 문자열 길이

name.capitalize()  首字母大写
name.casefold()   大写全部变小写
name.center(50,"-")  输出 '---------------------Alex Li----------------------'
name.count('lex') 统计 lex出现次数
name.encode()  将字符串编码成bytes格式
name.endswith("Li")  判断字符串是否以 Li结尾
 "Alex\tLi".expandtabs(10) 输出'Alex      Li', 将\t转换成多长的空格 
 name.find('A')  查找A,找到返回其索引, 找不到返回-1 

msg.index('a')  返回a所在字符串的索引
'9aA'.isalnum()   True

'9'.isdigit() 是否整数
name.isnumeric  
name.isprintable
name.isspace
name.istitle
name.isupper
 "|".join(['alex','jack','rain'])
'alex|jack|rain'


maketrans
    >>> intab = "aeiou"  #This is the string having actual characters. 
    >>> outtab = "12345" #This is the string having corresponding mapping character
    >>> trantab = str.maketrans(intab, outtab)
    >>> 
    >>> str = "this is string example....wow!!!"
    >>> str.translate(trantab)
    'th3s 3s str3ng 2x1mpl2....w4w!!!'

 msg.partition('is')   输出 ('my name ', 'is', ' {name}, and age is {age}') 

 >>> "alex li, chinese name is lijie".replace("li","LI",1)
     'alex LI, chinese name is lijie'

 msg.swapcase 大小写互换


 >>> msg.zfill(40)
'00000my name is {name}, and age is {age}'



>>> n4.ljust(40,"-")
'Hello 2orld-----------------------------'
>>> n4.rjust(40,"-")
'-----------------------------Hello 2orld'


>>> b="ddefdsdff_哈哈" 
>>> b.isidentifier() #检测一段字符串可否被当作标志符,即是否符合变量命名规则
True

체재

%디 정수
%에프 플로트
%에스
%엑스 진수 정수

%s모든 데이터 형식은 문자열로 변환

포맷 문자열 :.format

print("{} is eating {}.".format('benjie','meat'))
print("{a} is eating {b}.".format(a = 'benjie',b = 'meat'))
print('{0} is eating {1}.'.format('benjie','meat'))

바이트 변환 STR

파이썬 문자열 타입 때문에 str유니 메모리에 문자 바이트의 복수의 대응. 네트워크를 통해 전송하거나 디스크에 저장하려는 경우, 당신은 필요 str의 바이트가 될bytes

bytes입력 : 함께 b접두사가 단일 또는 이중 인용 부호를 나타냅니다 :

x = b'ABC'

바이트로 문자열 : "문자열"함수 .encode ()

B "바이트".decode () : 문자열 바이트

가 UTF-8 인코딩 후 중국 문자는 일반적으로 3 바이트를 차지하며 영어 문자는 한 바이트를 차지합니다.

파이썬 소스 코드를 텍스트 파일, 그래서 때문에 소스 코드 중국 포함되어 있으며, 소스 코드를 저장할 때, 당신은 UTF-8 인코딩으로 저장 지정해야 할 필요가있을 때. 파이썬 인터프리터 소스 코드를 읽을 때 우리가 일반적으로 파일의 시작 부분에 두 줄 쓰기, UTF-8 코드 판독에 따라 만들려면 :

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

첫 번째 줄은 Windows가 코멘트를 무시하는 파이썬 실행 파일이 리눅스 / OS X의 시스템을 알려주는 주석입니다;

코멘트 두 번째 줄은 소스 코드를 읽거나 다른, 중국어 출력의 소스 코드가 왜곡 될 수 있습니다 작성하기 위해 UTF-8 인코딩에 따라, 파이썬 인터프리터를 이야기하는 것입니다.

목록, 세트, ​​사전

목록 (리스트)

특징 : 주문한

  • 요소의 액세스리스트 :리스트 [인덱스, 인덱스 내지 0초 :

    names = ['benjie','jack','alex']
    print(names[0])  # benjie
    print(names[1])  # jack
    print(names[2])  # alex
    # print(names[3])# IndexError: list index out of range
  • 슬라이스

    >>> names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
    >>> names[1:4]  #取下标1至下标4之间的数字,包括1,不包括4
    ['Tenglan', 'Eric', 'Rain']
    >>> names[1:-1] #取下标1至-1的值,不包括-1
    ['Tenglan', 'Eric', 'Rain', 'Tom']
    >>> names[0:3] 
    ['Alex', 'Tenglan', 'Eric']
    >>> names[:3] #如果是从头开始取,0可以忽略,跟上句效果一样
    ['Alex', 'Tenglan', 'Eric']
    >>> names[3:] #如果想取最后一个,必须不能写-1,只能这么写
    ['Rain', 'Tom', 'Amy'] 
    >>> names[3:-1] #这样-1就不会被包含了
    ['Rain', 'Tom']
    >>> names[0::2] #后面的2是代表,每隔一个元素,就取一个
    ['Alex', 'Eric', 'Tom'] 
    >>> names[::2] #和上句效果一样
    ['Alex', 'Eric', 'Tom']
  • 추가

    >>> names = ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy']
    >>> names.append("我是新来的")
    >>> names
    ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
  • 삽입

    (인덱스, p_object)를 삽입 :

    names = ['benjie','jack','alex']
    names.insert(2,"新人")
    print(names)  #  ['benjie', 'jack', '新人', 'alex']
  • 삭제

    del names[0]  # 删第一个元素['jack', '新人', 'alex']
  • 수정

    names = ['benjie','jack','alex']
    names[1] = "新换的" # ['benjie', '新换的', 'alex']
  • 전파

    L.extend(iterable) -> None -- extend list by appending elements from the iterable
  • 복사

    names = ['benjie', 'jack', 'alex']
    name_copy = names.copy()
    print(name_copy) #  ['benjie', 'jack', 'alex']
  • 통계

    L.count(value) -> integer -- return number of occurrences of value 
  • 정렬 및 플립

    >>> names
    ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
    >>> names.sort() #排序
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: unorderable types: int() < str()   #3.0里不同数据类型不能放在一起排序了,擦
    >>> names[-3] = '1'
    >>> names[-2] = '2'
    >>> names[-1] = '3'
    >>> names
    ['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']
    >>> names.sort()
    >>> names
    ['1', '2', '3', 'Alex', 'Amy', 'Amy', 'Tenglan', 'Tom']
    
    >>> names.reverse() #反转
    >>> names
    ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']
  • 첨자 받기

    names = ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']
    >>> names.index("Amy")
    2 #只返回找到的第一个下标

튜플 (튜플)

읽기 전용 목록. 주문

특징 : 당신은 수정할 수 없습니다 만들면. 튜플이 원하는 값이 변경되지 않고 저장하는 데 사용된다.

두 가지 방법, 인덱스를 계산

tuple_test = ("alex","ben","alex","benjie")
print(tuple_test.index("alex"))  # 0  获取该元素第一次出现的位置
print(tuple_test.count("alex"))  # 2

컬렉션 (설정)

정렬되지 않은, 요소는 반복되지 않습니다.

s = set([1, 2, 3])
>>> s
{1, 2, 3}

전달 된 인수는 [1, 2, 3]보여줍니다 목록입니다 {1, 2, 3}단지가 주문한 설정 의미하지 않습니다 같이 당신에게 순서대로 3 개 가지 요소를 1,2,3이 내부 세트를 말하고. .

특징 :

  1. 중복 제거
  2. 관계 시험 : 교차로, 차이, 노동 조합 등
# -*- coding: utf-8 -*-
# Author:benjamin
# Date: 3.3

'''
list_1 = [1,4,5,7,6,7,8,3]
list_1 = set(list_1)
list_2 = set([2,5,6,0,66,22,8])
print(list_1 | list_2)#并
print(list_1 & list_2)#交
print(list_1 - list_2)#差集
print(list_1 ^ list_2)#对称差集
'''

list_1 = [10,7,5,7,6,7,8,3,2]
list_1 = set(list_1)
# 打印集合,自动去重;
print(list_1,type(list_1))
# {2, 3, 5, 6, 7, 8, 10} <class 'set'>

# 无序
list_2 = set([2,5,6,0,66,22,8])
print(list_1,list_2)
# {2, 3, 5, 6, 7, 8, 10} {0, 2, 66, 5, 6, 8, 22}

# 交集
print(list_1.intersection(list_2))  # {8, 2, 5, 6}

# 并集
print(list_1.union(list_2))  # {0, 2, 3, 66, 5, 6, 7, 8, 10, 22}
# 差集 in list_1 but not in list_2
print(list_1.difference(list_2))  # {10, 3, 7}
# 子集
print('list_1 is subset list-2',list_1.issubset(list_2))  # False
print('list_1 is superset list_2',list_1.issuperset(list_2))  # False

list_3 = set([2,7])
print(list_3.issubset(list_1))  # True
print(list_1.issuperset(list_3))  # True

# 对称差集 返回一个新的 set 包含 list1和 list2中不重复的元素
print(list_1.symmetric_difference(list_2))  # {0, 66, 3, 7, 22, 10}

# Return True if two sets have a null intersection.
print(list_2.isdisjoint(list_3))  # False

# 增
list_1.add(99)
print(list_1)
# 增一组
list_1.update([33,22,56])
print(list_1)  # {33, 2, 3, 99, 5, 6, 7, 8, 10, 22, 56}

# 判断元素是否在集合中,用于条件判断
print('元素在list_1', {3333} in list_1)

print(list_1)  # {33, 2, 3, 99, 5, 6, 7, 8, 10, 22, 56}
print(list_1.pop())  # 33
print(list_1.discard('7'))  # None
print(list_1.discard('ssss'))  # None
print(list_1.remove(8))  # None

사전 (DICT)

장애의 형태로 키 - 값, 키 독특한.

  • 증가

  • 삭제

    사용 키를 삭제하려면 pop(key)방법을, 해당 값은 DICT에서 삭제됩니다 :

  • 변화

  • 수색

    1. key in dict
    2. dict.get(key):方法不存在返回none 推荐使用
  • 삽입

# -*- coding: utf-8 -*-
# Author:benjamin
# Date:
# 字典是无序的,输出不一定,通过key来取出。
#
info = {
    'n1': '小明',
    'n2': '小红',
    'n3': '小张'
}
info1 = info
# 增
info['n4'] = '小来'
print(info)
# 删
info.pop('n4')
print(info)
# del 删
del info['n2']
print(info)
# 随机删
info.popitem()
print(info)

info = {'n1': '小明', 'n2': '小红', 'n3': '小张'}
# 改
info['n3'] = '呵呵'
print(info)

# 查
print('n3' in info)  # True
print(info.get('n4'))  # None get方法不存在返回none
# print(info['n6'])#Traceback (most recent call last): KeyError: 'n6' key不存在会报错

# 遍历
for i in info:
    print(i, info[i])
# 会先把dict转成list,数据大时莫用
for k, v in info.items():
    print(k, v)

# values
print(info.values())  # dict_values(['小红', '小明', '呵呵'])
# keys
print(info.keys())  # dict_keys(['n2', 'n1', 'n3'])
# setdefault
# D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
info.setdefault('n10', 'alex')
print(info)

# update
b = {
    1: 2,
    3: 4,
    'stu1101': 'tenglan wu'
}
info.update(b)
print(info)

파일 작업

운영 절차

  1. 파일을 열고 파일 핸들을 얻고 변수에 할당

    파일 핸들 = 개방 ( '파일 경로', '모드')

  2. 파일 핸들에서 작동

    독서

    작성한 Readline

  3. 파일을 닫습니다

    닫기

모드

  • R, 읽기 전용 모드 (기본값).
  • , w 쓰기 전용 모드. [읽을 수없는, 존재하지 않는, 생성, 삭제 내용이]
  • A, 모드를 추가합니다. [읽을]이 존재하지 않고, 생성에만 추가 콘텐츠가]

"+"파일을 읽고 동시에 쓸 수 있습니다 나타냅니다

  • r에 +, 파일을 읽고 쓸 수 있습니다. [읽기, 쓰기, 추가 기록]
  • + 승, 읽기 - 쓰기
  • a + 동 a

"U"는 판독 시간 R \ r에 \ n을 자동적으로 (동일한 또는 R + R 모드를 사용) N \ 없음 \ \로 전환 될 수 나타낸다

  • RU
  • R + U

"B"는 이진 파일을 나타낸다 (예 : 이진 취급시 FTP 업로드 ISO 파일 무시할 리눅스를 전송 창을 표시하여야한다) UTF-8 : 부호화를 첨가하지 않고 B (RB, WB, AB)은 모드

  • RB
  • WB
  • 부터

파일을 연 후 닫습니다 잊지 않도록하려면 즉, 컨텍스트를 관리 할 수 ​​있습니다 :

with open("文件名","打开方式") as f:
    操作

파일 수정

import os
with open('a.txt','r',encoding='utf-8') as read_f,\
        open('a.txt.swap','w',encoding='utf-8') as write_f:
    for line in read_f:
        write_f.write(line)

os.remove('a.txt')
os.rename('.a.txt.swap','a.txt')

참조 링크

https://docs.pythontab.com/python/python3.4/index.html

https://www.cnblogs.com/haiyan123/p/8387770.html#lable2

https://www.cnblogs.com/alex3714/articles/5885096.html

추천

출처www.cnblogs.com/benjieqiang/p/11407919.html