Python语言程序设计-icourse163课程总结(1-3w

2018-06-06  本文已影响0人  Ericoool
Python

第1周-Python基本语法元素

r = 25
area = 3.14*r*r
print("{:.2f}F".format(area))

Python语言的特点:语法简介(是C语言编程量的10%)、强制可读性、较少的底层语法元素、具有庞大的计算生态(13万的第三方库)

and elif import faise global
as else in return nonlocal
assert except is try Ture
break finally lambda while False
class for not with None
continue from or yield
def if pass del
>>>eval("1")
1
>>>eval("1+2")
3
>>>eval('"1+2"')
"1+2"
>>>eval('print("Hello")')
Hello

第1周编程练习-温度转换

温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fabrenheit)。
请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。
转换算法如下:(C表示摄氏度、F表示华氏度)
         C = ( F - 32 ) / 1.8
         F = C * 1.8 + 32
要求如下:
(1) 输入输出的摄氏度采用大写字母C开头,温度可以是整数或小数,如:C12.34指摄氏度12.34度;
(2) 输入输出的华氏度采用大写字母F开头,温度可以是整数或小数,如:F87.65指摄氏度87.65度;
(3) 不考虑异常输入的问题,输出保留小数点后两位;
(4) 使用input()获得测试用例输入时,不要增加提示字符串。
TempStr = input()
if TempStr[0] in ['F', 'f']:
    C = (eval(TempStr[1:]) - 32)/1.8
    print("C{:.2f}".format(C))
elif TempStr[0] in ['C', 'c']:
    F = 1.8*eval(TempStr[1:]) + 32
    print("F{:.2f}".format(F))

第2周-Python基本图形绘制

turtle海龟绘图库:>>>import turtle

turtle.setup(800,800,0,0)    //前两个参数是绘图窗体的长和宽,后两个参数是相对于屏幕左上角的坐标
turtle.setup(800,800)       //不指定位值坐标,则默认在屏幕正中心
turtle.bk(d)                //后退d距离
turtle.fd(d)                //前进d距离
turtle.circle(r,angle)      //以r为半径,圆心默认在海龟左侧,绘制angle角度的弧线
turtle.seth(angle)          //改变海龟行进方向,angle为绝对度数
turtle.left(angle)
turtle.right(angle)
turtle.cilormode(mode)      //默认采用小数值(1.0),可切换为整数值(255)
import <库名>
import <库名> as <库别名>
>>>import turtle as t
t.penup()-->t.pu()
t.pendown()-->t.pd()
t.pensize()-->t.width()
t.pencolor()      // 色彩参数可以有三种类型:1、小写颜色名称的字符串("purple");2、RGB小数值;3、RGB元组值
t.forward()-->t.fd()
t.circle()
t.setheading()-->t.seth()
for <变量> in range(<参数>)
  <被循环执行的语句>
//range()函数-产生循环计数序列
    range(N)-产生0到N-1的整数序列,共N个
    range(M,N)-产生M到N-1的整数序列,共N-M个
import turtle as t
t.setup(650,350,200,200)
t.penup()
t.fd(-250)
t.pendown()
t.pensize(25)
t.pencolor("purple")
t.seth(-40)
for i range(4):
  t.circle(40,80)
  t.circle(-40,80)
t.circle(40,80/2)
t.fd(40)
t.circle(16,180)
t.fd(40*2/3)
t.done()      //这个done()函数,是让程序运行结束时不自动退出。

第3周-基本数据类型

十进制:1010,99,-217
二进制,以0b或0B开头:0b010,-0B101
八进制,以0o123,-0O456
十六进制,以0x或0X开头:0x9a,-0X89
round(x,d):对x四舍五入,d是小数截取位数
浮点数间运算及比较用round()函数辅助
z=1.23e-4+5.6e+89j
z.real-->1.23e-4  //获得实部
z.imag-->5.6e+89  //获得虚部
操作符及使用 描述
x+y 加,x与y之和
x-y 减,x与y之差
x*y 乘,x与y之积
x/y 除,x与y之商,10/3结果是3.33333...浮点数
x//y 整数除,x与y之整数商,10//3结果是3
+x x本身
-y y的负数
x%y 余数,模运算,10%3结果是1
x**y 幂运算,x的y次幂,当y是小数时,开方运算,10**0.5结果是√(10)
abs(x) x的绝对值,abs(-10.01)结果是10.01
divmod(x,y) 商余,(x//y,x%y),同时输出商和余数,divmod(10,3)结果是(3,1)
pow(x,y[,z]) 幂余,(x**y)%z,[...]表示参数z可以省略,pow(3,pow(3,99),10000)结果是4587
round(x[,d]) 四舍五入,d是保留小数位数,默认值为0,round(-10.123,2)结果是-10.12
max(x1,x2,...,xn) 返回最大值,max(1,9,5,4)结果为9
min(x1,x2,...,xn) 返回最小值,min(1,9,5,4)结果为1
int(x) 将x变成整数,舍弃小数部分,int(123.45)结果为123;int("123")结果为123
float(x) 将x变成浮点数,增加小数部分,float(12)结果为12.0;float("1.23")结果为1.23
complex(x) 将x变成复数,增加虚数部分,complex(4)结果为4+0j
操作符及使用 描述
x+y 连接两个字符串x和y
x*n 赋值n次字符串x
x in s 如果x是s的子串,返回True,否则返回False

字符串切片操作的例子

weekStr = "星期一星期二星期三星期四星期五星期六星期日"
weekId = eval(input("请输入星期数字(1-7):"))
pos = (weekId - 1) * 3
print(weekStr[pos:pos+3])
//优化改写
weekStr = "一二三四五六日"
weekId = eval(input("请输入星期数字(1-7):"))
print("星期" + weekStr[weekId-1])
函数及使用 描述
len(x) 返回字符串x的长度
str(x) 将任意类型x转化成所对应的字符串类型,与eval()函数相对应
hex(x) 或 oct(x) 整数x的十六进制或八进制小写形式字符串
chr(x) x为Unicode编码,返回其对应的字符
ord(x) x为字符,返回其对应的Unicode编码

Unicode编码——统一字符编码,覆盖几乎所有字符的编码方式。0-1114111(0x10FFFF)空间。

for i in range(12):
    print(chr(9800+i), end="")
//输出结果是十二星座符号:♈♉♊♋♌♍♎♏♐♑♒♓
方法及使用 描述
str.lower()或str.upper() 返回字符串的副本,全部字符小写或大写
str.split(sep=None) 返回一个列表,由str根据sep被分隔的部分组成:"A,B,C".split(",")结果为['A','B','C']
str.count(sub) 返回子串sub在str中出现的次数:"a apple a day".count("a")结果为4
str.replace(old,new) 返回字符串str副本,所有old子串被替换为new
str.center(width[,fillchar]) 字符串str根据宽度width居中,fillchar可选:"python".center(20,"=")结果为'=======python======='
str.strip(chars) 从str中去掉在其左右两侧chars中列出的字符:"= pythonx= ".strip(" =x")结果为"python"
str.join(iter) 在iter变量除最后元素外,每个元素后增加一个str:",".join("12345")结果为"1,2,3,4,5" #主要用于字符串分隔
: <填充> <对齐> <宽度> <,> <.精度> <类型>
引导符号 用于填充的单个字符 <左对齐,>右对齐,^居中对齐 槽设定的输出宽度 数字的千位分隔符 浮点数小数精度或字符串最大输出长度 整数类型b(二进制),c(Unicode编码),d(十进制),o(八进制),x(十六进制),X(大写十六进制),浮点数类型e(科学计数法),E(科学计数法),f(通常非科学记数法),%(以百分号形式)
import time
time.<b>()

time库包括三类函数:

函数 描述
time() 获取当前时间戳,即计算机内部时间值,浮点数:time.time() -->1516939876.6022282
ctime() 获取当前时间并以易读方式表示,返回字符串:time.ctime() -->Fri Jan 26 12:11:16 2018
strftime(tpl,ts) tpl是格式化模板字符串,用来定义输出效果;ts是计算机内部时间类型变量:>>>t=time.gmtime() >>>time.strftime("%y-%m-%d %H:%M:%S",t) -->2018-01-26 12:55:20
strptime(str,tpl) tpl是格式化模板字符串,用来定义输出效果;str是字符串形式的时间值;将时间字符串反向输出为计算机内部可以操作的时间。
perf_counter() 返回一个CPU级别的精确时间计数器,单位为秒。由于这个计数值起点不确定,连续调用并计算差值才有意义:>>>start = time.perf_counter() >>>end = time.perf_counter() >>>end - start
sleep(s) s为拟休眠的时间,单位是秒,可以是浮点数:>>>def wait(): time.sleep(3.3) >>>wait() #程序将等待3.3秒后再退出

实例:文本进度条

import time
scale = 10
print("------执行开始------")
for i in range(scale+1):
    a = '*' * i
    b = '.' * (scale - i)
    c = (i/scale)*100
    print("{:^3.0f}%[{}->{}]".format(c,a,b))  //c槽显示百分比,3表示3个字符宽度,.0表示没有小数
    time.sleep(0.1)
print("------执行结束------")

------执行开始------
 0 %[->..........]
10 %[*->.........]
20 %[**->........]
30 %[***->.......]
40 %[****->......]
50 %[*****->.....]
60 %[******->....]
70 %[*******->...]
80 %[********->..]
90 %[*********->.]
100%[**********->]
------执行结束------

实例:单行动态刷新进度条

import time
scale = 50
print("执行开始".center(scale//2, "-"))
start = time.perf_counter()
for i in range(scale+1):
  a = '*' * i
  b = '.' * (scale - i)
  c = (i/scale)*100
  dur = time.perf_counter() - start
  print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end="")
print("执行结束".center(scale//2, "-"))
上一篇下一篇

猜你喜欢

热点阅读