입출력
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이 내부 세트를 말하고. .
특징 :
- 중복 제거
- 관계 시험 : 교차로, 차이, 노동 조합 등
# -*- 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)
파일 작업
운영 절차
파일을 열고 파일 핸들을 얻고 변수에 할당
파일 핸들 = 개방 ( '파일 경로', '모드')
파일 핸들에서 작동
독서
작성한 Readline
파일을 닫습니다
닫기
모드
- 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