作为初学者,我使用 Thonny 这款软件,界面简洁,操作简单,容易上手。
下载可以直接百度!
大佬介绍链接(非本人):http://t.csdn.cn/Lj9QE
单行注释用:#注释内容 多行可以用 :''' 注释内容 '''
标识符:以字母和下划线开头,后跟数字,下划线,字母;区分大小写;
python是动态类型语言,不需要显示声明数据类型。可以用type()内置函数判断对象的数据类型
思考:语句 100 + ‘30’ 会不会报错 ?? 答案
>>> name=input("Input your name:")
Input your name:Mike
>>> name
'Mike'
input()只能得到 字符串 ,如果希望得到数字,则要加上 evel()
思考:字符串类型可以相加吗? 相减又如何?
默认是换行的,如果希望不换行,如下:
print(3)
print("the answer is ",end="")
print(3+3)
运行结果
// : 整数除法,向下取整
**:乘方运算
以上这些都可以复合赋值运算
使用math库这一小节,参照书本第 p24 and p25 页
引用库:import math 在使用math中的常数或函数 在前面加上 ' math. '
两个紧邻的字符串,如果中间有空格相连,则自动拼接为一个字符串
注意:字符串不可单独更改: s[1]='a' 会报错
而s1=s1+'f' 可以,这是因为又创建了一个新的字符串s1
>>> 'abc'
'abc'
>>> "hello"
'hello'
>>> print('''"python设计""C++设计"''')
"python设计""C++设计"
>>> print("""'python设计'
'C++设计'""")
'python设计'
'C++设计'
>>> "中" "国"
'中国'
字符串是一个字符序列。python中包括两种序号体系:正向递增、反向递减。
如: hello 正向:0 1 2 3 4 ;
反向:-5 -4 -3 -2 -1 示例:
>>> s='hello mike'
>>> s[0]
'h'
>>> s[-1]
'e'
>>> s[8]
'k'
因此python有区间访问方式:[头下标:尾下标],子字符串不包含尾下标(s[0:8]最后取到s[7])
另外:[头下标:尾下标:步长],步长大于0,从左向右;小于0,从右向左;每次取字符的间隔为步长的绝对值减一。
当头下标小于尾下标时,不可以反向(从右向左)取。
示例参考教材 p28
例题:输入一个1~12的整数,输出月份名称缩写
months="JanFebMarAprMayJunAugSepOctNovDec"
m=int(input("输入1~12的数字:"))
pos=(m-1)*3
monthAbbrev=months[pos:pos+3]
print(monthAbbrev)
输入1~12的数字:3
Mar
+ 表示字符串拼接
* 表示字符串复制
in 判断是否为子串 H in Hello 返回true ; h in Hello 返回false
内置的字符串处理函数:
len() str() chr()返回Unicode字符 ord():返回Unicode编码值
hex():16进制 oct():8进制
find()和rfind()是分别查找一个字符串在另一个字符串指定范围内首次和最后一次出现的位置,不存在返回-1;index()和rindex()类似,不过不存在的字符串会抛出异常。
>>> s = "The python language is a cross platform language."
>>> print(s.find('language',30))
40
>>> print(s.find('language'))
11
count()是返回字符串在另一个字符串中出现的次数。可以设置起始位置或结束位置.
str1.count(str2,x) //第x个起始位置起共有多少个str2
str1.count(str2,x,y) //输出统计从第x个起始位置起到第y个位置共有多少个str2
>>> s='ji,ni,tai,mei,IKUN'
>>> s.find('i')
1
>>> s.rfind('i')
12
>>> s.index('ikun')
ValueError: substring not found
>>> s.count('i')
4
split()和rsplit()用来指定字符为分隔符,从左端和右端开始分割成多个字符串,并返回列表(后续章节会将)没有值则默认为空白分隔,包括空格、换行、制表符
>>> s='b,a,d,f,h'
>>> s.split(',',maxsplit=2)
['b', 'a', 'd,f,h']
>>> s.rsplit(',',maxsplit=2)
['b,a,d', 'f', 'h']
>>> s.rsplit()
['b,a,d,f,h']
若要指定字符串为分隔符,则用partition()和rpartition(),若不存在,则返回原字符串和两个空串。
>>> s='a;b;c;d;f;g'
>>> s.partition('c')
('a;b;', 'c', ';d;f;g')
>>> s.partition('n')
('a;b;c;d;f;g', '', '')
join()可以将列表多个字符串连接
>>> kun=['a','b','c']
>>> '-'.join(kun)
'a-b-c'
lower() upper() capitalize() s.title() s.swapcase()
全小写 全大写 首字母大写 单词首字母大写 大小写互换
>>> s="I am a Ikun"
>>> s.lower()
'i am a ikun'
>>> s.upper()
'I AM A IKUN'
>>> s.capitalize()
'I am a ikun'
>>> s.title()
'I Am A Ikun'
>>> s.swapcase()
'i AM A iKUN'
>>> s
'I am a Ikun'
replace():替换指定的字符或子字符串,每次只能替换一个。
strip()\rstrip()\lstrip():删除两端,右端、或左端连续空白字符和指定字符的方法
>>> s='你让我怎么理智'
>>> s.replace("理智","荔枝")
'你让我怎么荔枝'
>>> s
'你让我怎么理智'
>>> s=" abc "
>>> s.strip()
'abc'
>>> s.rstrip()
' abc'
>>> s='---ikun--'
>>> s.strip('-')
'ikun'
以上处理字符串的函数均不会改变原有字符串哦!
其他一些方法不做赘述,详情参照 p33
format()可以有多个输出项,位置可以按照指定位置设置
默认位置用 {} , 可以在{}中标上序号,指定顺序,示例:
"我是{}{}班的{}".format('计科',3,'ikun')
'我是计科3班的ikun'
#数字可以不用引号
格式化字符串时,在 “{}” 中加入 “ : ” 之后分别设置
<填充字符> : *、-、=等等,但只能是一个字符,默认空格
<对齐方式>: ^(居中) <(左对齐) >(右对齐)
<宽度>: 一个整数
此外,format()也可以设置数字的保留位数。
>>> "{:*^20}".format('ikun')
'********ikun********'
>>> "{:.2f}".format(3.14145)
'3.14'
>>> "{:*20}".format('ikun')
ValueError: Invalid format specifier
>>> "{:5}".format('ikun')
'ikun '#左对齐
>>> "{:5d}".format(24)
' 24'#右对齐
---------------------------------------------------------下一段:程序流程控制